(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-18
(45)【発行日】2025-03-27
(54)【発明の名称】予測のための方法及び装置
(51)【国際特許分類】
H04N 19/593 20140101AFI20250319BHJP
H04N 19/117 20140101ALI20250319BHJP
H04N 19/157 20140101ALI20250319BHJP
H04N 19/176 20140101ALI20250319BHJP
【FI】
H04N19/593
H04N19/117
H04N19/157
H04N19/176
(21)【出願番号】P 2021514316
(86)(22)【出願日】2019-09-13
(86)【国際出願番号】 RU2019050153
(87)【国際公開番号】W WO2020055292
(87)【国際公開日】2020-03-19
【審査請求日】2021-04-28
【審判番号】
【審判請求日】2023-09-08
(32)【優先日】2018-09-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-03-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-03-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フィリッポフ,アレクセイ コンスタンティノヴィッチ
(72)【発明者】
【氏名】ルフィツキー,ヴァシリー アレクセーヴィッチ
(72)【発明者】
【氏名】チェン,ジェンレェ
【合議体】
【審判長】畑中 高行
【審判官】圓道 浩史
【審判官】高橋 宣博
(56)【参考文献】
【文献】High efficiency video coding, Recommendation ITU-T H.265, H.265 (04/2013), ITU-T, 2013年04月, pp.101-111
【文献】KOO, Moonmo et al., Description of SDR video coding technology proposal by LG Electronics, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, CA, 10-20 April 2018, [JVET-J0017-v1], JVET-J0017 (version 2), ITU-T, 2018年04月12日, <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0017-v2.zip>: JVET-J0017_r1.docx: p.19
【文献】SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video, Recommendation ITU-T H.264 (04/2017) Advanced video coding for generic audiovisual services, ITU-T, 2017年, pp.131-136
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
現在のコーディング・ブロックのイントラ予測処理を実行するためのビデオ・コーディングの方法であって、前記方法は、
前記現在のコーディング・ブロックのイントラ予測モードを取得するステップと、
前記現在のコーディング・ブロックの前記イントラ予測モードが対角モードである場合に、前記現在のコーディング・ブロックの参照サンプルに関して参照サンプル・フィルタリング処理を実行することにより、前記現在のコーディング・ブロックの前記イントラ予測モードに従って前記現在のコーディング・ブロックのイントラ予測処理を実行するステップ
であって、前記対角モードは45度の倍数である角度を表し、前記対角モードは垂直モード及び水平モードを含まず、前記参照サンプル・フィルタリング処理は、3タップの[1,2,1]フィルタリングに基づいて実行される、ステップと、
前記現在のコーディング・ブロックの前記イントラ予測モードが、方向性モードではあるが、以下の方向性イントラ予測モード:垂直モード、水平モード及び対角モードのうちの1つではない場合に、前記現在のコーディング・ブロックの参照サンプルに関して補間フィルタリング処理を実行することにより、前記現在のコーディング・ブロックの前記イントラ予測モードに従って前記現在のコーディング・ブロックのイントラ予測処理を実行するステップであって、前記補間フィルタリング処理は、イントラ予測のための補間フィルタのセットから選択された補間フィルタを使用して実行され、前記補間フィルタのセットはガウス・フィルタ及びキュービック・フィルタを含
み、前記方向性イントラ予測モードは、インデックス2ないし66の角度モードである、ステップと、
前記現在のコーディング・ブロックの前記イントラ予測モードと前記現在のコーディング・ブロックの参照サンプルとに従って、前記現在のコーディング・ブロックのイントラ予測処理を実行するステップであって、前記現在のコーディング・ブロックの前記イントラ予測モードが垂直モード又は水平モードである場合には、前記現在のコーディング・ブロックの前記参照サンプルにフィルタリング処理は適用されない、ステップと
を含む方法。
【請求項2】
前記補間フィルタリング処理は、参照サンプル間の分数又は整数位置に該当する予測されたサンプルを生成するために実行される、請求項
1に記載の方法。
【請求項3】
請求項1
又は2に記載の方法をコンピュータに実行させるためのプログラム・コードを含むコンピュータ・プログラム。
【請求項4】
ビデオの符号化又は復号化における現在のコーディング・ブロックのイントラ予測のための装置であって、処理回路を含み、前記処理回路は:
前記現在のコーディング・ブロックのイントラ予測モードを取得するステップと、
前記現在のコーディング・ブロックの前記イントラ予測モードが対角モードである場合に、前記現在のコーディング・ブロックの参照サンプルに関して参照サンプル・フィルタリング処理を実行することにより、前記現在のコーディング・ブロックの前記イントラ予測モードに従って前記現在のコーディング・ブロックのイントラ予測処理を実行するステップ
であって、前記対角モードは45度の倍数である角度を表し、前記対角モードは垂直モード及び水平モードを含まず、前記参照サンプル・フィルタリング処理は、3タップの[1,2,1]フィルタリングに基づいて実行される、ステップと、
前記現在のコーディング・ブロックの前記イントラ予測モードが、方向性モードではあるが、以下の方向性イントラ予測モード:垂直モード、水平モード及び対角モードのうちの1つではない場合に、前記現在のコーディング・ブロックの参照サンプルに関して補間フィルタリング処理を実行することにより、前記現在のコーディング・ブロックの前記イントラ予測モードに従って前記現在のコーディング・ブロックのイントラ予測処理を実行するステップであって、前記補間フィルタリング処理は、イントラ予測のための補間フィルタのセットから選択された補間フィルタを使用して実行され、前記補間フィルタのセットはガウス・フィルタ及びキュービック・フィルタを含
み、前記方向性イントラ予測モードは、インデックス2ないし66の角度モードである、ステップと、
前記現在のコーディング・ブロックの前記イントラ予測モードと前記現在のコーディング・ブロックの参照サンプルとに従って、前記現在のコーディング・ブロックのイントラ予測処理を実行するステップであって、前記現在のコーディング・ブロックの前記イントラ予測モードが垂直モード又は水平モードである場合には、前記現在のコーディング・ブロックの前記参照サンプルにフィルタリング処理は適用されない、ステップと
を行うように構成されている、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像及び/又はビデオ・コーディング及び復号化の技術分野、特にイントラ/インター予測のための方法及び装置に関連する。
【背景技術】
【0002】
ビデオ・コーディング(ビデオ符号化及び復号化)は、広範囲のデジタル・ビデオ・アプリケーション、例えば放送デジタルTV、インターネット及びモバイル・ネットワークを介したビデオ伝送、ビデオ・チャットのようなリアルタイムの会話アプリケーション、ビデオ会議、DVD及びブルーレイ・ディスク、ビデオ・コンテンツの取得及び編集システム、並びにセキュリティ・アプリケーションのカムコーダで使用されている。
比較的短いビデオでさえ描写するために必要とされるビデオ・データの量は相当なものになる可能性があり、これは、限られた帯域幅容量を有する通信ネットワークを介して、データがストリーミングされるか又は別の方法で通信される場合に困難を生じさせる可能性がある。従って、ビデオ・データは、一般に、現代の電気通信ネットワークを介して通信される前に圧縮される。また、メモリ・リソースが限られているかもしれないことに起因して、ビデオがストレージ・デバイスに記憶される場合には、ビデオのサイズも問題となる可能性がある。ビデオ圧縮デバイスは、しばしば、ソースにおいてソフトウェア及び/又はハードウェアを使用して、伝送又は記憶の前にビデオ・データをコーディングし、それによってデジタル・ビデオ画像を表すために必要とされるデータ量を減少させる。次いで、圧縮されたデータは、ビデオ・データを復号化するビデオ圧縮解除デバイスによって宛先で受信される。限られたネットワーク・リソース、及びより高いビデオ品質の絶えず増加する要請により、画質にほとんど犠牲を払わずに圧縮比を改善する改良された圧縮及び圧縮解除技術が望まれている。
【0003】
デジタル・ビデオは、DVDディスクの導入以来、広く使用されてきた。伝送の前にビデオは符号化され、伝送媒体を用いて伝送される。視聴者はビデオを受信し、視聴デバイスを使用してビデオを復号化し、表示する。長年にわたって、ビデオの品質は、例えばより高い解像度、色の深度、及びフレーム・レートのために改善されてきた。これは、今日、インターネット及び移動通信ネットワークを介して一般的に転送される、より大きなデータ・ストリームを招いている。
【0004】
しかしながら、より高い解像度のビデオは、典型的には、より多くの情報を有するので、より多くの帯域幅を必要とする。帯域幅要件を低減するために、ビデオの圧縮を含むビデオ・コーディング規格が導入されている。ビデオが符号化される場合、帯域幅要件(又はストレージの場合は対応するメモリ要件)が低減される。しばしば、この低減は品質を犠牲にして行われる。従って、ビデオ・コーディング規格は、帯域幅要件と品質との間のバランスを見出すことを試みる。
【0005】
高効率ビデオ・コーディング(HEVC)は、当業者に一般的に知られているビデオ・コーディング規格の一例である。HEVCでは、コーディング・ユニット(CU)を予測ユニット(PU)又は変換ユニット(TU)に分割する。汎用ビデオ・コーディング(VVC)次世代規格は、ITU-Tビデオ・コーディング・エキスパート・グループ(VCEG)とISO/IEC動画エキスパート・グループ(MPEG)標準化機構との最新の共同ビデオ・プロジェクトであり、共同ビデオ探索チーム(JVET)として知られるパートナーシップにおいて共に機能している。VVCは、ITU-T H.266/次世代ビデオ・コーディング(NGVC)規格とも呼ばれる。VVCでは、最大変換長のために長すぎるサイズを有するCUに対して必要とされることを除いて、複数のパーティション・タイプの概念、即ちCU、PU及びTUの概念の区別が削除されるものとされており、CUパーティション形状に対して、より柔軟性をサポートする。
【0006】
これらのコーディング・ユニット(CU)(ブロックとも呼ばれる)の処理は、エンコーダによって指定されるそれらのサイズ、空間位置、及びコーディング・モードに依存する。コーディング・モードは、予測のタイプに従って、イントラ予測及びインター予測モードの2つのグループに分類することができる。イントラ予測モードは、同じ画像のサンプル(フレーム又は画像とも呼ばれる)を使用して参照サンプルを生成し、再構成されるブロックのサンプルの予測値を計算する。イントラ予測は、空間予測とも呼ばれる。インター予測モードは、時間的予測のために設計されており、現在のピクチャのブロックのサンプルを予測するために、以前の又は次のピクチャの参照サンプルを使用する。
【0007】
ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC規格のものを大幅に上回る圧縮能力を有する将来のビデオ・コーディング技術(スクリーン・コンテンツ・コーディング及びハイ・ダイナミック・レンジ・コーディングのための現行の拡張及び短期的な拡張を含む)の標準化のための潜在的ニーズを研究している。グループは、この分野の専門家によって提案された圧縮技術設計を評価するために、共同ビデオ探索チーム(JVET)として知られる共同作業において、この探査活動で共に機能している。
【0008】
VTM(Versatile Test Model)規格は35個のイントラ・モードを使用する一方、BMS(Benchmark Set)は67個のイントラ・モードを使用する。
現在BMSで記述されているイントラ・モード・コーディング方式は複雑と考えられており、選択されていないモード・セットの欠点は、インデックス・リストが常に一定であり、現在のブロック特性(例えば、その隣接するブロックのINTRAモード)に基づいて適応的でないことである。
【発明の概要】
【0009】
本願の実施形態は独立請求項による符号化及び復号化のための装置及び方法を提供する。
上記及び他の目的は、独立請求項の対象事項によって達成される。更なる実装形式は、従属請求項、明細書及び図面から明らかである。
【0010】
第1態様によれば、本発明はビデオ符号化又は復号化における現在のブロックのイントラ予測のための方法に関連し、方法は、方向性イントラ予測モードに従って現在のブロックのイントラ予測処理を実行するステップであって、1つ以上の参照ブロックにおける参照サンプルに適用される参照サンプル・フィルタリング又はサブピクセル補間フィルタリングを含み、方向性イントラ予測モードは、以下のグループ:(A)垂直又は水平モード、(B)45度の倍数である角度を表す対角モードを含む方向性モード、(C)残りの方向性モードのうちの1つに分類される、ステップを含み、方向性イントラ予測モードがグループBに属していると分類される場合には、参照サンプル・フィルタが参照サンプルに適用され、方向性イントラ予測モードがグループCに属していると分類される場合には、イントラ参照サンプル補間フィルタが参照サンプルに適用される。
【0011】
実施形態において、方向性イントラ予測モードがグループAに属していると分類される場合には、イントラ予測器を生成するために参照サンプルにフィルタは適用されない。
実施形態において、方向性イントラ予測モードがグループBに属していると分類される場合には、方向性イントラ予測モードに従って、フィルタリングされた値をイントラ予測器にコピーするために参照サンプルに参照サンプル・フィルタが適用され、及び方向性イントラ予測モードがグループCに属していると分類される場合には、方向性イントラ予測モードに従って、参照サンプル間の分数又は整数位置に該当する予測されたサンプルを生成するために、参照サンプルにイントラ参照サンプル補間フィルタが適用される。
【0012】
実施形態において、参照サンプル・フィルタ又はイントラ予測処理は3タップ・フィルタである。例えば、イントラ予測処理の参照サンプル・フィルタは[1,2,1]の3タップ・フィルタである。
【0013】
実施形態において、所与のサブピクセル・オフセットに対するイントラ予測処理の補間フィルタは、フィルタのセットから選択され、そのうちの1つはインター予測処理に対するフィルタと同じである。
【0014】
実施形態において、補間フィルタは、4タップの長さ、及び6ビットの係数の精度を有する。
実施形態において、グループBは、広角整数勾配モードを更に含む。
【0015】
例えば、広角整数勾配モードは、水平、垂直及び対角以外の方向性イントラ予測モードであり、現在のブロックの予測されるサンプル各々の参照サンプル位置は、非分数である。
【0016】
実施形態において、グループBは、イントラ予測角度パラメータの値が32の非ゼロ倍数であるイントラ予測モードを更に含む。
実施形態において、グループBは、イントラ予測モード:[-14,-12,-10,-6,2,34,66,72,76,78,80]のうちの1つ又は全てを含む。
【0017】
第2態様によれば、本発明は、ビデオ符号化又は復号化における現在のブロックのイントラ予測のための装置に関連し、装置は、方向性イントラ予測モードに従って現在のブロックのイントラ予測処理を実行するように構成された処理回路であって、1つ以上の参照ブロックにおける参照サンプルに適用される参照サンプル・フィルタリング又はサブピクセル補間フィルタリングを含み、方向性イントラ予測モードは、以下のグループ:(A)垂直又は水平モード、(B)45度の倍数である角度を表す対角モードを含む方向性モード、(C)残りの方向性モードのうちの1つに分類される、処理回路を含み、方向性イントラ予測モードがグループBに属していると分類される場合には、参照サンプル・フィルタが参照サンプルに適用され、方向性イントラ予測モードがグループCに属していると分類される場合には、イントラ参照サンプル補間フィルタが参照サンプルに適用される。
【0018】
本発明の第2態様による装置の更なる特徴及び実装形式は、本発明の第1態様による装置の特徴及び実装形式に対応する。
【0019】
第3態様によれば、本発明は、コンピュータ又はプロセッサで実行される場合に上記の方法の何れか1つを実行するためのプログラム・コードを含むコンピュータ・プログラム製品に関連する。
【0020】
1つ以上の実施形態の詳細は、添付の図面及び以下の説明において述べられる。他の特徴、目的、及び利点は、明細書、図面、及び特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【0021】
以下の実施形態は添付の図及び図面に関連してより詳細に説明される。
【
図1】本発明の実施形態を実現するように構成されたビデオ・コーディング・システムの一例を示すブロック図である。
【
図2】本発明の実施形態を実現するように構成されたビデオ・エンコーダの一例を示すブロック図である。
【
図3】本発明の実施形態を実現するように構成されたビデオ・デコーダの例示的な構造を示すブロック図である。
【
図4】67個のイントラ予測モードを示す概略図を示す。
【
図5】イントラ及びインター予測における異なる補間フィルタの第1使用例を示す。
【
図6】イントラ及びインター予測における異なる補間フィルタの第2使用例を示す。
【
図7】イントラ及びインター予測における異なる補間フィルタの第3使用例を示す。
【
図8】イントラ及びインター予測サンプルに使用される共通補間フィルタの利用を示す。
【
図9】動き補償におけるクロミナンス・サンプルの予測、及びイントラ予測を実行する際のルミナンス及びクロミナンス・サンプルの予測に係わるフィルタリング・モジュールを使用する実施形態を示す。
【
図10】ハードウェア・フィルタリング・モジュールがROMに記憶された係数をロードする実施形態を示す。
【
図11】複数のイントラ予測モードの概略図を示す。
【
図12】非正方形ブロックの場合に対角より小さい及び大きいモードに対する補間フィルタ選択の例を示す。
【
図13】四分木プラス二分木(QTBT)ブロック・パーティショニングを示す。
【
図15】非正方形ブロックのための補間フィルタの選択を概略的に示す。
【
図16】非正方形ブロックのための参照サンプル補間フィルタ選択の実施形態を示す。
【
図17】非正方形ブロックのための参照サンプル補間フィルタ選択のための代替的な実施形態を示す。
【
図18】93個のイントラ予測方向を示す概略図を示す。
【
図20】別の実施形態による装置のブロック図を示す。
【
図21】イントラ予測モードを使用して予測されるブロックを示す。
【発明を実施するための形態】
【0022】
以下の説明では、本開示の一部を形成し、本発明が置かれる可能性のある特定の態様を例示として示す、添付図面に対する参照が行われる。本発明の実施形態は、他の態様で使用されてもよく、図面に示されていない構造的又は論理的な変更を含んでもよいことが理解される。従って、以下の詳細な説明は、限定的な意味で捉えられるべきではなく、本発明の範囲は、添付の特許請求の範囲によって規定される。
【0023】
例えば、説明される方法に関連する開示は、方法を実行するように構成された対応するデバイス又はシステムについても当てはまり、その逆もまた真である可能性があることが理解される。
例えば、1つ又は複数の特定の方法ステップが説明される場合、対応するデバイスは、たとえそのような1つ以上のユニットが明示的に説明も図中に図示もされていなかったとしても、説明された1つ又は複数の方法ステップを実行するために、1つ又は複数のユニット、例えば機能ユニット(例えば、1つ又は複数のステップを実行する1つのユニット、又は複数のステップのうちの1つ以上を各々が実行する複数のユニット)を含む可能性がある。一方、例えば、1つ又は複数のユニット、例えば機能ユニットに基づいて、特定の装置が記載される場合、対応する方法は、たとえそのような1つ又は複数のステップが明示的に説明も図中に図示もされていなかったとしても、1つ又は複数のユニットの機能を実行するために1つのステップ(例えば、1つ又は複数のユニットの機能を実行する1つのステップ、又は複数のユニットのうちの1つ以上の機能をそれぞれが実行する複数のステップ)を含む可能性がある。更に、本願で説明される種々の例示的な実施形態及び/又は態様の特徴は、特に断らない限り、互いに組み合わせられる可能性があることが理解される。
【0024】
ビデオ・コーディングは、典型的には、ビデオ又はビデオ・シーケンスを形成する一連のピクチャの処理を指す。ピクチャ、画像、又はフレームという用語は、ビデオ・コーディングの分野においてだけでなく本願においても同義に使用される可能性がある/使用される。各ピクチャは、典型的には、重複しないブロックのセットに区分けされる。ピクチャの符号化/復号化は典型的にはブロック・レベルで実行され、例えば、インター・フレーム予測又はイントラ・フレーム予測は、予測ブロックを生成し、予測ブロックを現在のブロック(現在処理されている/処理されるべきブロック)から減算して残差ブロックを取得し、これは更に変換及び量子化されて、伝送されるべきデータの量を削減(圧縮)するために使用される一方、デコーダ側では、逆の処理が、符号化/圧縮されたブロックに適用されて、表現のためのブロックを再構成する。
【0025】
ロスレス・ビデオ・コーディングの場合、オリジナル・ビデオ・ピクチャが再構成されることが可能であり、即ち、再構成されたビデオ・ピクチャは、オリジナル・ビデオ・ピクチャと同じ品質を有する(記憶又は伝送の間の伝送損失又はその他のデータ損失は無いことを仮定している)。ロスレスでないビデオ・コーディングの場合、デコーダで完全には再構成することができないビデオ・ピクチャを表すデータ量を削減するために、例えば量子化による更なる圧縮が実行され、即ち、再構成されたビデオ・ピクチャの品質は、オリジナル・ビデオ・ピクチャの品質よりも低いか又は劣化している。
【0026】
幾つかのビデオ・コーディング規格は「ロスレスでないハイブリッド・ビデオ・コーデック」のグループに属する(即ち、サンプル・ドメインにおける空間的及び時間的予測と、変換ドメインにおける量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオ・シーケンスの各ピクチャは、典型的には、重複しないブロックのセットに区分けされ、コーディングは典型的にはブロック・レベルで実行される。換言すれば、エンコーダにおいて、ビデオは、典型的には、ブロック(ビデオ・ブロック)レベルで、例えば、空間(イントラ・ピクチャ)予測及び/又は時間(インター・ピクチャ)予測を用いて予測ブロックを生成すること、現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、残差ブロックを変換すること、及び伝送されるべきデータ量を削減(圧縮)するために、変換ドメインにおいて残差ブロックを量子化することにより、処理される、即ち符号化される一方、デコーダでは、表現用に現在のブロックを再構成するために、エンコーダと比較して逆の処理が、符号化された又は圧縮されたブロックに適用される。更に、エンコーダはデコーダ処理ループを複製し、その結果、両者が同一の予測(例えば、イントラ及びインター予測)、及び/又は後続のブロックを処理、即ちコーディングするための再構成を生成するであろう。
【0027】
ビデオ・コーディング・システム10の以下の実施形態において、ビデオ・エンコーダ20及びビデオ・デコーダ30が
図1-3に基づいて説明される。
【0028】
図1は、例示的なコーディング・システム10、例えば本願(本開示)の技術を利用することが可能なビデオ・コーディング・システムを示す概念的又は概略的なブロック図である。ビデオ・コーディング・システムのエンコーダ20(例えば、ビデオ・エンコーダ20)及びデコーダ30(例えば、ビデオ・デコーダ30)は、本願で説明される種々の例に従って技術を実行するように構成されることが可能なデバイスの例を表す。
図1に示すように、コーディング・システムは、符号化されたデータ13、例えば符号化されたピクチャ13を、例えば、符号化されたデータ13を復号化する宛先デバイス14に提供するように構成されたソース・デバイス12を含む。
【0029】
ソース・デバイス12は、エンコーダ20を含み、追加的に、即ちオプションとして、ピクチャ・ソース16、前処理ユニット18、例えばピクチャ前処理ユニット18、通信インターフェース又は通信ユニット22を含むことが可能である。
【0030】
ピクチャ・ソース16は、例えば、現実世界のピクチャを捕捉するための任意の種類のピクチャ捕捉デバイス、及び/又は、任意の種類のピクチャ又はコメント(スクリーン・コンテンツ符号化のために、スクリーン上の幾つかのテキストはまた、符号化されるべき画像又は画像の一部とみなされる)を生成するデバイス、例えばコンピュータ・アニメーション・ピクチャを生成するためのコンピュータ・グラフィックス・プロセッサ、又は、現実世界のピクチャ、コンピュータ・アニメーション・ピクチャ(例えば、スクリーン・コンテンツ、バーチャル・リアリティ(VR)ピクチャ)を取得及び/又は提供するための任意の種類のデバイス、及び/又はそれらの任意の組み合わせ(例えば、拡張リアリティ(AR)ピクチャ)を含んでもよいし、或いはそれらであってもよい。
【0031】
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのように考えることが可能である。アレイ中のサンプルは、ピクセル(ピクセル・エレメントの短縮形)又はペルとも言及されることが可能である。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を規定する。色の表現に関し、典型的には、3つの色成分が使用され、即ち、ピクチャは、3つのサンプル・アレイで表現されるか、又はそれを含むことが可能である。RBGフォーマット又は色空間において、ピクチャは、対応する赤、緑及び青のサンプル・アレイを含む。しかしながら、ビデオ・コーディングにおいて、各ピクセルは、典型的には、ルミナンス/クロミナンス・フォーマット又は色空間、例えば、Yで示されるルミナンス成分(しばしば、Lも代わりに使用される)と、Cb及びCrで示される2つのクロミナンス成分とを含むYCbCrで表現される。ルミナンス(又は略称、ルマ)成分Yは、輝度又はグレー・レベル強度(例えば、グレー・スケール・ピクチャ等におけるもの)を表す一方、2つのクロミナンス(又は略称、クロマ)成分Cb及びCrは色度又は色情報成分を表す。従って、YCbCrフォーマットにおけるピクチャは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(Cb及びCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットにおけるピクチャは、YCbCrフォーマットにコンバージョン又は変換されことが可能であり、その逆も可能であり、この処理は色変換又はコンバージョンとしても知られている。ピクチャがモノクロである場合、ピクチャは、ルミナンス・サンプル・アレイのみを含むことが可能である。
【0032】
ピクチャ・ソース16(例えば、ビデオ・ソース16)は、例えばピクチャを捕捉するカメラ、以前に捕捉した又は生成したピクチャを含む又は記憶するメモリ、例えばピクチャ・メモリ、及び/又はピクチャを取得又は受信する任意の種類のインターフェース(内部又は外部)であるとすることが可能である。カメラは、例えば、ソース・デバイスに一体化されたローカルな又は一体化されたカメラであってもよく、メモリは、例えばソース・デバイスに一体化された、ローカルな又は一体化されたメモリであってもよい。インターフェースは、例えば、外部ビデオ・ソース、例えばカメラのような外部ピクチャ捕捉デバイス、外部メモリ、又は外部ピクチャ生成デバイス、例えば外部コンピュータ・グラフィックス・プロセッサ、コンピュータ又はサーバーから、ピクチャを受信するための外部インターフェースであってもよい。インターフェースは、任意のプロプライエタリの又は標準化されたインターフェース・プロトコルに従う任意の種類のインターフェース、例えば有線又は無線インターフェース、光インターフェースであるとすることが可能である。ピクチャ・データ17を取得するためのインターフェースは、通信インターフェース22と同じインターフェースであるか又はその一部であってもよい。
【0033】
前処理ユニット18及び前処理ユニット18によって実行される処理との区別において、ピクチャ又はピクチャ・データ17(例えば、ビデオ・データ16)は、処理前ピクチャ又は処理前ピクチャ・データ17と言及される場合もある。
【0034】
前処理ユニット18は、(処理前)ピクチャ・データ17を受信し、ピクチャ・データ17に対して前処理を実行し、前処理されたピクチャ19又は前処理されたピクチャ・データ19を取得するように構成されている。前処理ユニット18によって実行される前処理は、例えば、トリミング、カラー・フォーマット変換(例えば、RGBからYCbCrへ)、カラー補正、又はノイズ除去を含んでもよい。前処理ユニット18は、オプション的な構成要素であってもよいことを理解することができる。
【0035】
エンコーダ20(例えば、ビデオ・エンコーダ20)は、前処理されたピクチャ・データ19を受信し、符号化されたピクチャ・データ21を提供するように構成される(例えば、
図2に基づいて、更なる詳細が以下において説明されるであろう)。
【0036】
ソース・デバイス12の通信インターフェース22は、符号化されたピクチャ・データ21を受信し、それを他のデバイス、例えば宛先デバイス14又は任意の他のデバイスへ、記憶又は直接的な再構成のために伝送し、又は、符号化されたデータ13を記憶し及び/又は符号化されたデータ13を他のデバイス、例えば宛先デバイス14又は任意の他のデバイスへ復号化又は記憶のために伝送する前に、符号化されたピクチャ・データ21をそれぞれ処理するように構成されることが可能である。
【0037】
宛先デバイス14は、デコーダ30(例えば、ビデオ・デコーダ30)を含み、通信インターフェース又は通信ユニット28、後処理ユニット32、及び表示デバイス34を追加的に、即ちオプション的に含んでもよい。
【0038】
宛先デバイス14の通信インターフェース28は、符号化されたピクチャ・データ21又は符号化されたデータ13を、例えばソース・デバイス12から直接に、又は他の任意のソース、例えばストレージ・デバイス、例えば符号化されたピクチャ・データのストレージ・デバイスから受信するように構成される。
【0039】
通信インターフェース22及び通信インターフェース28は、ソース・デバイス12と宛先デバイス14との間の直接的な通信リンク、例えば直接的な有線若しくは無線接続を介して、又は任意の種類のネットワーク、例えば有線若しくは無線ネットワーク若しくはそれらの任意の組み合わせ、又は任意の種類の私的及び公的なネットワーク、又はそれらの任意の種類の組み合わせを介して、符号化されたピクチャ・データ21又は符号化されたデータ13を送信又は受信するように構成されることが可能である。
【0040】
通信インターフェース22は、例えば、通信リンク又は通信ネットワークを介して伝送するために、符号化されたピクチャ・データ21を、適切なフォーマット、例えばパケットにパッケージングするように構成されることが可能である。
【0041】
通信インターフェース22の対応物を形成する通信インターフェース28は、例えば、符号化されたピクチャ・データ21を取得するために、符号化されたデータ13のパッケージングを解除するように構成されることが可能である。
【0042】
通信インターフェース22及び通信インターフェース28は、双方とも、ソース・デバイス12から宛先デバイス14を指し示す
図1Aにおける符号化されたピクチャ・データ13の矢印によって示されるように、一方向通信インターフェースとして構成されることが可能であり、且つ例えば、通信リンク及び/又はデータ伝送、例えば符号化されたピクチャ・データの伝送に関連する任意の他の情報を確認及び交換するために、例えばメッセージを送信及び受信する、例えば接続をセットアップするように構成されることが可能である。
【0043】
デコーダ30は、符号化されたピクチャ・データ21を受信し、復号化されたピクチャ・データ31又は復号化されたピクチャ31を提供するように構成される(例えば、
図3に基づいて、更なる詳細が以下において説明されるであろう)。
【0044】
宛先デバイス14の後処理プロセッサ32は、復号化された画像データ31(再構成されたピクチャ・データとも呼ばれる)、例えば復号化されたピクチャ31を後処理して、後処理されたピクチャ・データ33、例えば後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、例えば、カラー・フォーマット変換(例えば、YCbCrからRGBへ)、カラー補正、トリミング、又は再サンプリング、又は、任意の他の処理、例えば表示デバイス34による表示のために、復号化されたピクチャ・データ31を準備するためのものを含むことが可能である。
【0045】
宛先デバイス14の表示デバイス34は、ピクチャを表示するために、例えばユーザー又は視聴者に対して、後処理されたピクチャ・データ33を受信するように構成される。表示デバイス34は、再構成されたピクチャを表現するための任意の種類のディスプレイ、例えば、統合された又は外部のディスプレイ又はモニタであってもよいし、又はそれらを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマ・ディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オン・シリコン(LCoS)、デジタル光プロセッサ(DLP)、又は任意の他の種類のディスプレイを含むことができる。
【0046】
図1は、ソース・デバイス12と宛先デバイス14とを別々のデバイスとして描いているが、デバイスの実施形態はまた、双方又は双方の機能、ソース・デバイス12又は対応する機能、及び宛先デバイス14又は対応する機能を含む可能性がある。そのような実施形態では、ソース・デバイス12又は対応する機能と宛先デバイス14又は対応する機能とは、同じハードウェア及び/又はソフトウェアを使用して、又は別個のハードウェア及び/又はソフトウェア、又はそれらの任意の組み合わせにより実現されてもよい。
【0047】
明細書に基づいて当業者には明らかであるように、
図1に示すソース・デバイス12及び/又は宛先デバイス14における機能又は様々なユニットの機能の存在及び(厳密な)分割は、実際のデバイス及び用途によって異なる可能性がある。
【0048】
エンコーダ20(例えば、ビデオ・エンコーダ20)及びデコーダ30(例えば、ビデオ・デコーダ30)は、それぞれ、種々の任意の適切な回路、例えば1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ハードウェア、又はそれらの任意の組み合わせとして実現されることが可能である。技術がソフトウェアで部分的に実現される場合、デバイスは、ソフトウェアの命令を、適切な非一時的なコンピュータ読み取り可能な記憶媒体に記憶することが可能であり、本開示の技術を実行するために1つ以上のプロセッサを使用して、ハードウェアで命令を実行することが可能である。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせ等を含む)上記の何れも、1つ以上のプロセッサであると考えられてもよい。ビデオ・エンコーダ20及びビデオ・デコーダ30の各々は、1つ以上のエンコーダ又はデコーダに含まれる可能性があり、何れも個々のデバイス内の組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
【0049】
ソース・デバイス12及び宛先デバイス14は、任意の種類のハンドヘルド又はステーショナリ・デバイスを含む広範囲に及ぶ任意のデバイス、例えば、ノートブック又はラップトップ・コンピュータ、携帯電話、スマートフォン、タブレット又はタブレット・コンピュータ、カメラ、デスクトップ・コンピュータ、セット・トップ・ボックス、テレビ、表示デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイス(コンテンツ・サービス・サーバー又はコンテンツ配信サーバー等)、放送受信デバイス、放送送信デバイス等を含む可能性があり、任意の種類のオペレーティング・システムを使用してもよいし、又は使用しなくてもよい。場合によっては、ソース・デバイス12及び宛先デバイス14は無線通信用に装備されてもよい。従って、ソース・デバイス12及び宛先デバイス14は、無線通信デバイスであってもよい。
【0050】
場合によっては、
図1に示すビデオ・コーディング・システム10は単なる一例に過ぎず、本願の技術は、符号化デバイスと復号化デバイスとの間で如何なるデータ通信も含む必要のないビデオ・コーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用される可能性がある。他の例において、データは、ローカル・メモリから検索され、ネットワークを介してストリーミング等される。ビデオ符号化デバイスは、データを符号化してメモリに格納することが可能であり、及び/又はビデオ復号化デバイスは、データをメモリから検索して復号化することが可能である。幾つかの例では、符号化及び復号化は、互いに通信しないが、メモリへのデータを符号化し及び/又はメモリからデータを検索して復号化するだけのデバイスによって実行される。
【0051】
図2は、本願の技術を実現するように構成された例示的なビデオ・エンコーダ20の概略的/概念的なブロック図を示す。
図2の例では、ビデオ・エンコーダ20は、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、バッファ216と、ループ・フィルタ・ユニット220と、復号化されたピクチャのバッファ(DPB)230と、予測処理ユニット260と、エントロピー符号化ユニット270とを含む。予測処理ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、モード選択ユニット262とを含むことが可能である。インター予測ユニット244は、動き推定ユニットと、動き補償ユニット(不図示)とを含むことが可能である。
図2に示すビデオ・エンコーダ20はまた、ハイブリッド・ビデオ・エンコーダ又はハイブリッド・ビデオ・コーデックによるビデオ・エンコーダと言及されてもよい。
【0052】
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成し、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、復号化されたピクチャのバッファ(DPB)230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路は、デコーダの信号経路に対応する(
図3のデコーダ30を参照されたい)。
【0053】
エンコーダ20は、例えば入力202、ピクチャ201、又はピクチャ201のブロック203によって、例えばビデオ又はビデオ・シーケンスを形成するピクチャのシーケンスのうちのピクチャを受信するように構成される。ピクチャ・ブロック203はまた、現在のピクチャ・ブロック又はコーディングされるべきピクチャ・ブロックとも言及され、ピクチャ201は、現在のピクチャ又はコーディングされるべきピクチャと言及される(特に、ビデオ・コーディングにおいて、現在のピクチャを他のピクチャから、例えば同じビデオ・シーケンス、即ち現在のピクチャも含むビデオ・シーケンスの以前に符号化された及び/又は復号化されたピクチャから区別する)。
【0054】
予測処理ユニット260はまた、ブロック予測処理ユニット260とも言及され、ブロック203(現在のピクチャ201の現在のブロック203)及び再構成されたピクチャ・データ、例えばバッファ216からの同じ(現在の)ピクチャの参照サンプル、及び/又は復号化されたピクチャのバッファ230からの1つ以上の以前に復号化されたピクチャからの参照ピクチャ・データ231を受信又は取得し、そのデータを予測のために処理し、即ち、インター予測ブロック245又はイントラ予測ブロック255である可能性がある予測ブロック265を提供するように構成される。
【0055】
モード選択ユニット262は、残差ブロック205の計算のために及び再構成されたブロック215の再構成のために、予測モード(例えば、イントラ又はインター予測モード)及び/又は予測ブロック265として使用されるべき対応する予測ブロック245又は255を選択するように構成されることが可能である。
【0056】
モード選択ユニット262の実施形態は、予測モードを(例えば、予測処理ユニット260によりサポートされるものから)選択するために構成されてもよく、予測モードは、最良の一致又は言い換えれば最小の残差(最小の残差は、伝送又は記憶に対して、より良い圧縮を意味する)、又は最小のシグナリング・オーバーヘッド(最小のシグナリング・オーバーヘッドは、伝送又は記憶に対する、より良い圧縮を意味する)を提供し、或いは両者を考慮する又はバランスをとる。モード選択ユニット262は、レート歪最適化(RDO)に基づいて予測モードを決定するように、即ち、最小レート歪最適化を提供する予測モード、又は関連するレート歪が少なくとも予測モード選択基準を満たす予測モードを選択するように構成されてもよい。
【0057】
イントラ予測ユニット254は、イントラ予測パラメータ、例えば選択されたイントラ予測モード、イントラ予測ブロック255に基づいて決定するように更に構成される。何れにせよ、ブロックに対するイントラ予測モードを選択した後、イントラ予測部254はまた、イントラ予測パラメータ、即ちブロックに対する選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット270に提供するようにも構成されている。一例において、イントラ予測ユニット254は、後述するイントラ予測技術の任意の組み合わせを実行するように構成されてもよい。
【0058】
エンコーダ20の実施形態は、ピクチャを、複数の(典型的には重複しない)ピクチャ・ブロックに区分けするように構成されたピクチャ・パーティショニング・ユニット(
図2には示されていない)を含むことが可能である。これらのブロックはまた、ルート・ブロック、マクロ・ブロック(H.264/AVC)又はコーディング・ツリー・ブロック(CTB)又はコーディング・ツリー・ユニット(CTU)(H.265/HEVC及びVVC)と言及される場合もある。ピクチャ・パーティショニング・ユニットは、ビデオ・シーケンスの全てのピクチャに対して同一のブロック・サイズとブロック・サイズを規定する対応するグリッドとを使用するように、又は、ピクチャ、サブセット、又はピクチャのグループ間でブロック・サイズを変更し、各ピクチャを対応するブロックに区分けするように構成されることが可能である。
【0059】
ピクチャ201と同様に、ピクチャ・ブロックは、再び、ピクチャよりも小さな寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ又はマトリクスであるか、又はそれらとして考えることが可能である。換言すると、ブロックは、例えば、1つのサンプル・アレイ(例えば、モノクロ・ピクチャの場合におけるルマ・アレイ、又はカラー・ピクチャの場合におけるルマ又はクロマ・アレイ)又は3つのサンプル・アレイ(例えば、カラー・ピクチャの場合におけるルマ及び2つのクロマ・アレイ)、又は適用されるカラー・フォーマットに依存する任意の他の数量及び/又は種類のアレイを含んでもよい。ブロックの水平及び垂直方向(又は軸)のサンプルの数は、ブロックのサイズを規定する。従って、ブロックは、例えば、サンプルのMxN(M列N行)アレイ、又は変換係数のMxNアレイであってもよい。
【0060】
図2に示すように、エンコーダの実施形態は、ブロック毎にピクチャを符号化するように構成されることが可能であり、例えば符号化及び予測はブロック毎に実行される。
【0061】
図2に示すビデオ・エンコーダの実施形態は、更に、スライス(ビデオ・スライスとも呼ばれる)を使用することによってピクチャを区分け及び/又は符号化するように構成されることが可能であり、ピクチャは、(典型的には、重複しない)1つ以上のスライスに区分けされ、各スライスは、1つ以上のブロック(例えば、CTU)を含むことが可能である。
【0062】
図2に示すビデオ・エンコーダの実施形態は、タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用することによって、ピクチャを区分けする及び/又は符号化するように更に構成されることが可能であり、ピクチャは、(典型的には、重複しない)1つ以上のタイル・グループに区分けされることが可能であり、各タイル・グループは、例えば1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含むことが可能であり、各タイルは、例えば矩形の形状であってもよく、1つ以上のブロック(例えば、CTU)、例えば完全な又は断片的なブロックを含む可能性がある。
【0063】
図3は、本件出願の技術を実現するように構成された例示的なビデオ・デコーダ30を示す。ビデオ・デコーダ30は、符号化されたピクチャ・データ(例えば符号化されたビットストリーム)21、例えばエンコーダ100によって符号化されたものを受信して、復号化されたピクチャ131を得るように構成される。復号化処理の間に、ビデオ・デコーダ30は、ビデオ・データ、例えば符号化されたビデオ・スライスのピクチャ・ブロック及び関連するシンタックス要素を表す符号化されたビデオ・ビットストリームを、ビデオ・エンコーダ100から受信する。
【0064】
図3の例では、デコーダ30は、エントロピー復号化ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループ・フィルタ320、復号化されたピクチャのバッファ330、及び予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含んでもよい。ビデオ・デコーダ30は、幾つかの例において、
図2によりビデオ・エンコーダ100に関して説明した符号化パスと概ね逆の復号化パスを実行することが可能である。
【0065】
エントロピー復号化ユニット304は、符号化されたピクチャ・データ21に対するエントロピー復号化を実行して、例えば量子化係数309及び/又は復号化されたコーディング・パラメータ(
図3には示されていない)、例えば(復号化された)インター予測パラメータ、イントラ予測パラメータ、ループ・フィルタ・パラメータ、及び/又は他のシンタックス要素の何れか又は全てを取得するように構成される。エントロピー復号化ユニット304は、更に、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するように構成される。ビデオ・デコーダ30は、ビデオ・スライス・レベル及び/又はビデオ・ブロック・レベルでシンタックス要素を受信することができる。
【0066】
逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は、逆変換処理ユニット112と機能的に同一であってもよく、再構成ユニット314は、再構成ユニット114と機能的に同一であってもよく、バッファ316は、バッファ116と機能的に同一であってもよく、ループ・フィルタ320は、ループ・フィルタ120と機能的に同一であってもよく、復号化されたピクチャのバッファ330は、復号化されたピクチャのバッファ130と機能的に同一であってもよい。
【0067】
予測処理ユニット360は、インター予測ユニット344とイントラ予測ユニット354とを含む可能性があり、インター予測ユニット344は機能的にはインター予測ユニット144と類似していてもよく、イントラ予測ユニット354は機能的にはイントラ予測ユニット154と類似していてもよい。予測処理ユニット360は、典型的には、ブロック予測を実行し、及び/又は符号化されたデータ21から予測ブロック365を取得して、予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えばエントロピー復号化ユニット304から(明示的又は暗示的に)受信又は取得するように構成される。
【0068】
ビデオ・スライスがイントラ符号化(I)スライスとして符号化されると、予測処理ユニット360のイントラ予測ユニット354は、現在のフレーム又はピクチャの以前の復号化されたブロックからのデータ及びシグナリングされたイントラ予測モードに基づいて、現在のビデオ・スライスのピクチャ・ブロックに対する予測ブロック365を生成するように構成される。ビデオ・フレームが、インター・コーディングされた(即ち、B又はP)スライスとしてコーディングされると、予測処理ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号化ユニット304から受信した動きベクトル及び別のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックに対する予測ブロック365を生成するように構成される。インター予測に関し、予測ブロックは、1つの参照ピクチャ・リスト内の1つの参照ピクチャから生成されてもよい。ビデオ・デコーダ30は、DPB330に記憶された参照ピクチャに基づくデフォルトの構成技術を使用することによって、参照フレーム・リスト、List0及びList1を構成することができる。
【0069】
予測処理ユニット360は、動きベクトル及び他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックに対する予測情報を決定し、その予測情報を使用して、復号化される現在のビデオ・ブロックに対する予測ブロックを生成するように構成される。例えば、予測処理ユニット360は、受信したシンタックス要素の一部を使用して、ビデオ・スライスのビデオ・ブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライス・タイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスに対する参照ピクチャ・リストのうちの1つ以上に対する構成情報、スライスのインター符号化されたビデオ・ブロック各々に対する動きベクトル、スライスのインター符号化されたビデオ・ブロック各々に対するインター予測ステータス、及び現在のビデオ・スライス内のビデオ・ブロックを復号化するための他の情報を決定する。
【0070】
逆量子化ユニット310は、ビットストリームにおいて提供され、エントロピー復号化ユニット304によって復号化される量子化変換係数を逆量子化、即ち非量子化するように構成される。逆量子化処理は、ビデオ・スライスにおける各ビデオ・ブロックについてビデオ・エンコーダ100によって計算される量子化パラメータを使用して、量子化の程度、及び、同様に適用されるべき逆量子化の程度を決定することを含む可能性がある。
【0071】
逆変換処理ユニット312は、逆変換、例えば逆DCT、逆整数変換、又は概念的に類似する逆変換処理を変換係数に適用して、ピクセル・ドメインにおいて残差ブロックを生成するように構成される。
【0072】
再構成ユニット314(例えば、加算器314)は、逆変換ブロック313(即ち、再構成された残差ブロック313)を予測ブロック365に追加して、サンプル・ドメインにおける再構成されたブロック315を、例えば再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを追加することによって、取得するように構成される。
【0073】
ループ・フィルタ・ユニット320(符号化ループ内又は符号化ループの後の何れか)は、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得し、例えばピクセル遷移を平滑化し、又は別の方法でビデオ品質を改善するように構成される。一例において、ループ・フィルタ・ユニット320は、後述するフィルタリング技術の任意の組み合わせを実行するように構成されることが可能である。ループ・フィルタ・ユニット320は、デブロッキング・フィルタ、サンプル・アダプティブ・オフセット(SAO)フィルタ、又は他のフィルタ、例えばバイラテラル・フィルタ又は適応ループ・フィルタ(ALF)、鮮鋭化若しくは平滑化フィルタ又は協調フィルタのような1つ以上のループ・フィルタを表すように意図されている。ループ・フィルタ・ユニット320は、
図3ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット320は、ポスト・ループ・フィルタとして実現されてもよい。
【0074】
次いで、所与のフレーム又はピクチャにおける復号化されたビデオ・ブロック321は、以後の動き補償に使用される参照ピクチャを格納する、復号化されたピクチャのバッファ330内に格納される。
【0075】
デコーダ30は、復号化されたピクチャ331を、ユーザーに提示又は表示するために、例えば出力332を介して出力するように構成される。
【0076】
ビデオ・エンコーダ30の他の変形が、圧縮されたビットストリームを復号化するために使用されることが可能である。例えば、デコーダ30は、ループ・フィルタリング・ユニット320なしに出力ビデオ・ストリームを生成することが可能である。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームに対して、逆変換処理ユニット312なしに直接的に残差信号を逆量子化することができる。別の実装において、ビデオ・デコーダ30は、逆量子化ユニット310及び逆変換処理ユニット312を単一のユニットに結合させることができる。
【0077】
図3に示すビデオ・デコーダ30の実施形態は、スライス(ビデオ・スライスとも呼ばれる)を使用することによってピクチャを区分け及び/又は復号化するように構成されることが可能であり、ピクチャは、(典型的には、重複しない)1つ以上のスライスに区分け又は復号化されることが可能であり、各スライスは、1つ以上のブロック(例えば、CTU)を含むことが可能である。
【0078】
図3に示すビデオ・デコーダ30の実施形態は、タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及びタイル(ビデオ・タイルとも呼ばれる)を使用することにより、ピクチャを区分け及び/又は復号化するように構成されることが可能であり、ピクチャは、(典型的には、重複しない)1つ以上のタイル・グループに区分け又は復号化されることが可能であり、各タイル・グループは、例えば1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含むことが可能であり、各タイルは、例えば矩形の形状であってもよく、1つ以上のブロック(例えば、CTU)、例えば完全な又は断片的なブロックを含む可能性がある。
【0079】
エンコーダ及びデコーダでは、現在のステップの処理結果は更に処理され、そして、次のステップに出力される可能性があることは理解されるべきである。例えば、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの後に、クリップ又はシフトなどの更なる処理が、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの処理結果に対して実行されてもよい。
【0080】
HEVC/H.265規格によると、35個のイントラ予測モードが利用可能である。このセットは、以下のモード:平面モード(イントラ予測モード・インデックスは0である)、DCモード(イントラ予測モード・インデックスは1である)、及び、180°のレンジをカバーし且つ2ないし34のイントラ予測モード・インデックス値レンジを有する方向性(角度)モードを含む。自然なビデオに存在する任意のエッジ方向を捕捉するために、方向性イントラ・モードの数は、HEVCで使用されるような33から、65に拡張される。追加的な方向性モードは
図4に示されており、平面及びDCモードは同じまま残る。イントラ予測モードでカバーされるレンジが180°より広くなり得ることは注目に値する。特に、3ないし64のインデックス値を有する62個の方向性モードは、約230°のレンジをカバーし、即ち、幾つかのペアのモードは、反対の方向性を有する。HEVC参照モデル(HM)及びJEMプラットフォームの場合、
図4に示すように、唯1つのペアの角度モード(即ちモード2及び66)が、反対の方向性を有する。予測子を構成するために、従来の角度モードは、参照サンプルを取り、(必要であれば)それらをフィルタリングしてサンプル予測子を得る。予測子を構成するために必要な参照サンプルの数は、補間に使用されるフィルタの長さに依存する(例えば、バイリニア・フィルタ及びキュービック・フィルタはそれぞれ2及び4の長さを有する)。
【0081】
図4は、例えばVVCに対して提案される67個のイントラ予測モードの例を示し、67個のイントラ予測モードの複数のイントラ予測モードは、平面モード(インデックス0)、dcモード(インデックス1)、及びインデックス2ないし66を有する角度モードを含み、
図4の左下角度モードはインデックス2を指し、インデックスの番号付けは、インデックス66が
図4の最も右上の角度モードになるまでインクリメントされる。
【0082】
H.264/AVC及びHEVCのようなビデオ・コーディング方式は、ブロック・ベースのハイブリッド・ビデオ・コーディングの功を奏した原理に沿って設計されている。この原理を用いて、ピクチャは先ず、ブロックに区分けされ、次いで各ブロックは、イントラ・ピクチャ又はインター・ピクチャ予測を用いることによって予測される。
【0083】
本願で使用されるように、用語「ブロック」は、ピクチャ又はフレームの一部であってもよい。説明の便宜上、本発明の実施形態は、ITU-Tビデオ・コーディング・エキスパート・グループ(VCEG)及びISO/IEC動画エキスパート・グループ(MPEG)のビデオ・コーディングに関する共同コラボレーション・チーム(JCT-VC)により開発された、高効率ビデオ・コーディング(HEVC)又は汎用ビデオ・コーディング(VVC)の参照ソフトウェアを参照して本願では説明される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解するであろう。それはCU、PU、及びTUを指す可能性がある。HEVCでは、CTUは、コーディング・ツリーとして示される四分木構造を使用することによりCUに分割される。インター・ピクチャ(時間的)又はイントラ・ピクチャ(空間的)予測を使用してピクチャ・エリアをコーディングするかどうかの決定は、CUレベルで行われる。各CUは更に、PU分割タイプに応じて、1つ、2つ、又は4つのPUに分割されることが可能である。1つのPU内では、同じ予測処理が適用され、関連情報はPUベースでデコーダに伝送される。PU分割タイプに基づいて予測処理を適用することにより残差ブロックを取得した後に、CUは、CUのコーディング・ツリーに類似する別の四分木構造に従って、変換ユニット(TU)に区分けされることが可能である。ビデオ圧縮技術の最新の開発では四分木及び二分木(QTBT)パーティショニングが、コーディング・ブロックを区分けするために使用される。QTBTブロック構造では、CUは正方形又は長方形のいずれかの形状を有することが可能である。例えば、コーディング・ツリー・ユニット(CTU)は先ず四分木構造によって区分けされる。四分木リーフ・ノードは、二分木構造によって更に区分けされる。二分木リーフ・ノードは、コーディング・ユニット(CU)と呼ばれ、更なる如何なるパーティショニングも行わずに、予測及び変換処理のためにそのセグメンテーションが使用される。これは、CU、PU、及びTUがQTBTコーディング・ブロック構造において同じブロック・サイズを有することを意味する。と同時に、複数パーティション、例えば三分木パーティションも、QTBTブロック構造と共に使用されるように提案された。
【0084】
ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC規格のものを大幅に上回る圧縮能力を有する将来のビデオ・コーディング技術(スクリーン・コンテンツ・コーディング及びハイ・ダイナミック・レンジ・コーディングのための現行の拡張及び近い将来の拡張を含む)の標準化のための潜在的ニーズを研究している。グループは、この分野の専門家によって提案される圧縮技術設計を評価するために、共同ビデオ探索チーム(JVET)として知られる共同作業における探査活動で共に機能している。
【0085】
VTM(Versatile Test Model)は35個のイントラ・モードを使用するが、BMS(Benchmark Set)は67個のイントラ・モードを使用する。イントラ予測は、所与のフレームのみが関与し得る場合に圧縮効率を増加させるために、多くのビデオ・コーディング・フレームワークで使用されるメカニズムである。
【0086】
図4に示すように、JEMの最新バージョンは、スキュー・イントラ予測方向に対応する幾つかのモードを有する。これらの内の任意のモードに関し、ブロック内のサンプルを予測するために、ブロック側の内にある対応する位置が分数である場合に、隣接する参照サンプルのセットの補間が実行されるべきである。HEVC及びVVCは、隣接する2つの参照サンプルの間で線形補間を使用する。JEMは、より高度な4タップ補間フィルタを使用する。フィルタ係数は、幅又は高さの値に応じて、ガウシアン又はキュービックの何れかであるように選択される。幅又は高さを使用するかどうかの決定は、主要な参照側の選択に関する決定と調和し、即ち、イントラ予測モードが対角モードより大きいか又は等しい場合には、参照サンプルの上側が、主要な参照側であるとして選択され、幅の値は、使用する補間フィルタを決定するために選択される。そうではない場合、主要な参照側は、ブロックの左側から選択され、高さはフィルタ選択処理を制御する。具体的には、選択された側の長さが8サンプル以下である場合、キュービック補間4タップが適用される。そうではない場合、補間フィルタは4タップ・ガウシアンのものである。
【0087】
JEMで使用される特定のフィルタ係数が表1に示されている。予測されるサンプルは、次のように、サブピクセル・オフセット及びフィルタ・タイプに従って、表1から選択される係数で畳み込むことによって計算される:
【数1】
この式において、“>>”はビットワイズ右シフト演算を示す。
【0088】
キュービック・フィルタが選択される場合、予測されるサンプルは、SPSで規定されるか又は選択された成分のビット深度から導出される許容される値のレンジに更にクリップされる。
表1.イントラ予測補間フィルタ
【表1】
【0089】
動き補償処理はまた、参照ブロックのピクセルの変位が分数である場合に、サンプル値を予測するためにフィルタリングを使用する。JEMでは、8タップ・フィルタリングがルミナンス成分について使用され、4タップ長フィルタリングがクロミナンス成分について使用される。動き補間フィルタは、先ず水平に適用され、水平フィルタリングの出力は、更に垂直にフィルタされる。4タップのクロミナンス・フィルタの係数は、表2に与えられている。
【0090】
表2.クロミナンス動き補間フィルタ係数
【表2】
最先端のビデオ・コーディング解決策は、イントラ及びインター予測で異なる補間フィルタを使用する。特に、
図5ないし7は、補間フィルタの様々な例を示す。
【0091】
図5は、JEMで使用される補間フィルタを概略的に示す。図から分かるように、動き補償補間、インター予測における分数位置に関し、6ビット係数を有する8タップ補間フィルタがルマについて使用され、6ビット係数を有する4タップ補間フィルタがクロマについて使用される。更に、イントラ予測におけるイントラ参照サンプル補間に関し、8ビット係数を有するガウシアン4タップ補間フィルタ又は8ビット係数を有するキュービック4タップ補間フィルタが使用される。
【0092】
図6は、コア実験CE3 3.1.3(G. Van der Auwera et al: JVET K1023 “Description of Core Experiment 3 (CE3): Intra Prediction and Mode Coding”, version 2)に対して提案される補間フィルタを概略的に示す。図から分かるように、動き補償補間、インター予測における分数位置に関し、6ビット係数を有する8タップ補間フィルタがルマについて使用され、6ビット係数を有する4タップ補間フィルタがクロマについて使用される。更に、イントラ予測におけるイントラ参照サンプル補間に関し、8ビット係数を有するガウシアン6タップ補間フィルタ又は8ビット係数を有するキュービック4タップ補間フィルタが使用される。
【0093】
図7は、G. Van der Auwera et al.: JVET K0064 “CE3-related: On MDIS and intra interpolation filter switching”, version 2において提案される補間フィルタを概略的に示す。図から分かるように、動き補償補間、インター予測における分数位置に関し、6ビット係数を有する8タップ補間フィルタがルマについて使用され、6ビット係数を有する4タップ補間フィルタがクロマについて使用される。更に、イントラ予測におけるイントラ参照サンプル補間に関し、8ビット係数を有するガウシアン6タップ補間フィルタ又は8ビット係数を有するキュービック6タップ補間フィルタが使用される。
【0094】
本開示によれば、クロマ動き補償サブ・ペル・フィルタのルック・アップ・テーブル及びハードウェア・モジュールは、参照サンプル間の分数位置に該当する場合に、イントラ予測器内でピクセル値を補間するために再利用される。同じハードウェアが、インター及びイントラ予測の両方で使用されるように意図されているので、フィルタ係数の精度は一貫しているべきであり、即ち、イントラ参照サンプル補間のためのフィルタ係数を表すビット数は、動きサブ・ペル動き補償補間フィルタリングの係数精度と整合しているべきである。
【0095】
図8は、提供される開示のアイディアを示す。破線の「クロマについては6ビット係数を有する4タップ補間フィルタ」(更に、「統一されたイントラ/インター・フィルタ」と呼ばれる)は、両方の処理:イントラ及びインター予測サンプルの補間に使用されることが可能である。この設計を利用する実施形態は
図9に示される。この実装では、フィルタリング・モジュールは、動き補償におけるクロミナンス・サンプルの予測とイントラ予測を実行する際のルミナンス及びクロミナンス・サンプルの予測との両方に従事する別個のユニットとして実装されている。この実装では、ハードウェア・フィルタリング部は、イントラ及びインター予測処理の両方で使用されている。
【0096】
別の実施形態は、
図10に示すように、フィルタ係数のLUTのみが再利用される場合の実装を示す。この実施形態では、ハードウェア・フィルタリング・モジュールは、ROMに格納されたLUTから係数をロードする。イントラ予測処理で示されるスイッチは、イントラ予測処理のために選択される主要な側の長さに応じて、使用されるフィルタ・タイプを決定する。
【0097】
提供される本願の実施形態は、以下の係数を使用することができる(表3参照)。
表3:イントラ及びインター補間フィルタ
【表3】
【0098】
イントラ予測されたサンプルは、次のように、サブピクセル・オフセット及びフィルタ・タイプに従って、表1から選択される係数を有する畳み込みによって計算されることが可能である:
【数2】
この式において、“>>”はビットワイズ右シフト演算を示す。
【0099】
「統一されたイントラ/インター・フィルタ」のフィルタが選択される場合、予測されるサンプルは、SPSで規定されるか又は選択された成分のビット深度から導出される許容される値のレンジに更にクリップされる。
【0100】
イントラ参照サンプル補間及びサブ・ペル動き補償補間の場合、ハードウェア・モジュールを再利用するため、及び必要なメモリの全体のサイズを削減するために、同じフィルタを使用することが可能である。
【0101】
再利用されるフィルタに加えて、イントラ参照サンプル補間に使用されるフィルタ係数の精度は、上記の再利用されるフィルタの係数の精度と整合しているべきである。
【0102】
動き補償におけるルマ処理は、必ずしも8タップ・フィルタリングを使用するわけではなく、4タップ・フィルタリングで動作する可能性もあることに留意されたい。この場合、統一されるために、4タップ・フィルタが選択されることが可能である。
【0103】
方法は、補間を含む可能性があるイントラ予測処理の異なる部分に適用されることが可能である。特に、主要な参照サンプルを拡張する場合、参照側サンプルもまた、統一された補間フィルタを使用してフィルタリングされてもよい(詳細については、V. Drugeon: JVET-K0211 “CE3: DC mode without divisions and modifications to intra filtering (Tests 1.2.1, 2.2.2 and 2.5.1)” version 1を参照されたい)。
【0104】
イントラ・ブロック・コピー動作はまた、提案される方法を使用する可能性がある補間ステップを含む(イントラ・ブロック・コピーの説明については、[Xiaozhong Xu, Shan Liu, Tzu-Der Chuang, Yu-Wen Huang, Shawmin Lei, Krishnakanth Rapaka, Chao Pang, Vadim Seregin, Ye-Kui Wang, Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6(4): 409-419 (2016)]を参照されたい)。イントラ予測のための方法が提供され、方法は、ブロックのイントラ予測のための補間フィルタとして、クロミナンス成分の補間フィルタを使用することを含む。
【0105】
実施形態において、クロミナンス成分に対する補間フィルタのルック・アップ・テーブルは、イントラ予測のための補間フィルタのルック・アップ・テーブルと同じである。
【0106】
実施形態において、クロミナンス成分に対する補間フィルタのルック・アップ・テーブルは、イントラ予測のための補間フィルタのルック・アップ・テーブルと同じではない。
【0107】
実施形態において、補間フィルタは4タップ・フィルタである。
【0108】
実施形態において、クロミナンス成分に対する補間フィルタのルック・アップ・テーブルは、以下のとおりである。
【表4】
【0109】
イントラ予測のための方法が提供され、方法は、ブロックのイントラ予測のために、補間フィルタのセットから補間フィルタを選択することを含む。
【0110】
実施形態において、補間フィルタのセットは、ガウス・フィルタ及びキュービック・フィルタを含む。
【0111】
実施形態において、選択された補間フィルタのルック・アップ・テーブルは、クロミナンス成分に対する補間フィルタのルック・アップ・テーブルと同じである。
【0112】
実施形態において、選択された補間フィルタは4タップ・フィルタである。
【0113】
実施形態において、選択された補間フィルタはキュービック・フィルタである。
【0114】
実施形態において、選択された補間フィルタのルック・アップ・テーブルは、以下のとおりである。
【表5】
【0115】
実施形態において、選択された補間フィルタのルック・アップ・テーブルは、以下のとおりである。
【表6】
【0116】
上記方法の任意の1つを実行するための処理回路を含むエンコーダが提供される。
【0117】
上記方法の任意の1つを実行するための処理回路を含むデコーダが提供される。
【0118】
上記方法の任意の1つを実行するためのプログラム・コードを含むコンピュータ・プログラム製品が提供される。
【0119】
1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含むデコーダが提供され、プログラミングは、プロセッサによって実行されると、上記方法の任意の1つを実行するようにデコーダを構成する。
【0120】
1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含むエンコーダが提供され、プログラミングは、プロセッサによって実行されると、上記方法の任意の1つを実行するようにエンコーダを構成する。
【0121】
例えば、説明される方法に関連する開示は、方法を実行するように構成された対応するデバイス又はシステムについても当てはまり、その逆もまた真である可能性があることは理解される。例えば、特定の方法ステップが説明される場合、対応するデバイスは、たとえそのようなユニットが明示的に説明も図中に図示もされていなかったとしても、説明された方法ステップを実行するためのユニットを含むことが可能である。更に、本願で説明される種々の例示的な態様の特徴は、特に断らない限り、互いに組み合わせられる可能性があることは理解される。
【0122】
イントラ予測のためのアスペクト比依存性フィルタリングの方法が提供され、方法は、ブロックのアスペクト比に応じて、予測されるブロックに対する補間フィルタを選択することを含む。
【0123】
一例において、補間フィルタは、予測されるブロックのイントラ予測モードを閾値処理する方向に応じて選択される。
【0124】
一例において、方向は、予測されるブロックの主要な対角の角度に対応する。
【0125】
一例において、方向の角度は、
【数3】
として計算され、ここで、W,Hはそれぞれ予測されるブロックの幅及び高さである。
【0126】
一例において、アスペクト比は
RA=log2(W)-log2(H)
であり、ここで、W,Hはそれぞれ予測されるブロックの幅及び高さである。
【0127】
一例において、予測されるブロックの主要な対角の角度は、アスペクト比に基づいて決定される。
【0128】
一例において、ブロックのイントラ予測モードの閾値は、予測されるブロックの主要な対角の角度に基づいて決定される。
【0129】
一例において、補間フィルタは、使用される参照サンプルがどの側に属するかに応じて選択される。
【0130】
一例において、イントラ方向に対応する角度を有する直線は、ブロックを2つのエリアに分割する。
【0131】
一例において、異なるエリアに属する参照サンプルは、異なる補間フィルタを使用して予測される。
【0132】
一例において、フィルタは、キュービック補間フィルタ又はガウス補間フィルタを含む。
【0133】
本願の一実装形式において、フレームはピクチャと同じである。
【0134】
本開示の一実装形式において、VER_IDXに対応する値は50であり、HOR_IDXに対応する値は18であり、VDIA_IDXに対応する値は66であり、この値は角度モードに対応する値の最大値である可能性があり、イントラ・モード2に対応する値2は、角度モードに対応する値の最小値である可能性があり、DIA_IDXに対応する値は34である。
【0135】
本開示は、イントラ・モード・シグナリング方式における改善を目標としている。本開示では、ビデオ復号化方法及びビデオ・デコーダが提案される。
【0136】
本開示の別の態様において、処理回路を含むデコーダは、上記復号化方法を実行するように開示され構成されている。
【0137】
本開示の別の態様において、上記復号化方法の任意の1つを実行するためのプログラム・コードを含むコンピュータ・プログラム製品が提供される。
【0138】
本開示の別の態様において、ビデオ・データを復号化するためのデコーダが提供され、デコーダは、1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含み、プログラミングは、プロセッサによって実行されると、上記復号化方法の任意の1つを実行するようにデコーダを構成する。
【0139】
処理回路は、ハードウェアで、又は、ハードウェアとソフトウェアの組み合わせで、例えばソフトウェア・プログラマブル・プロセッサ等によって実現することが可能である。
【0140】
処理回路は、ハードウェアで、又は、ハードウェアとソフトウェアの組み合わせで、例えば、ソフトウェア・プログラマブルプロセッサ等によって実現することが可能である。
【0141】
図11は、HEVC UIP方式で使用される複数のイントラ予測モードの概略図を示す。ルミナンス・ブロックに関し、イントラ予測モードは36個までのイントラ予測モードを含むことが可能であり、これは3つの非方向性モードと33個の方向性モードとを含むことが可能である。非方向性モードは、平面予測モード、平均(DC)予測モード、及びクロマ・フロム・ルマ(LM)予測モードを含む可能性がある。平面予測モードは、ブロックの境界から導出された水平及び垂直勾配を有するブロック振幅表面を仮定することによって、予測を実行することができる。DC予測モードは、ブロック境界の平均値に一致する値を有する平坦なブロック表面を仮定することによって、予測を実行することができる。LM予測モードは、ブロックに対するクロマ値がブロックに対するルマ値と一致することを仮定することによって、予測を実行することができる。方向モードは、
図11に示すように、隣接するブロックに基づいて予測を実行することができる。
【0142】
H.264/AVC及びHEVCは、イントラ予測処理で使用される前に、参照サンプルにローパス・フィルタが適用され得ることを規定している。参照サンプル・フィルタを使用するか否かの決定は、イントラ予測モード及びブロック・サイズによって決定される。このメカニズムはモード依存イントラ平滑化(MDIS)と呼ばれることがある。また、MDISに関連する複数の方法が存在する。例えば、適応参照サンプル平滑化(ARSS)法は、明示的に(即ち、フラグがビットストリームに含まれる)、又は暗黙に(即ち、例えば、データの隠蔽を利用してビットストリームにフラグを置くことを回避し、シグナリング・オーバーヘッドを削減する)、予測サンプルがフィルタリングされるかどうかを合図する。この場合、エンコーダは、全ての潜在的なイントラ予測モードについてレート歪(RD)コストを検査することによって、平滑化に関する決定を行うことができる。
【0143】
図11に示すように、JEM(JEM-7.2)の最新バージョンは、スキュー・イントラ予測方向に対応する幾つかのモードを有する。これらの内の任意のモードに関し、ブロック内のサンプルを予測するために、ブロック側の内にある対応する位置が分数である場合に、隣接する参照サンプルのセットの補間が実行されるべきである。HEVC及びVVCは、隣接する2つの参照サンプルの間で線形補間を使用する。JEMは、より高度な4タップ補間フィルタを使用する。フィルタ係数は、幅又は高さの値に応じて、ガウシアン又はキュービックの何れかであるように選択される。幅又は高さを使用するかどうかの決定は、主要な参照側の選択に関する決定と調和し:イントラ予測モードが対角モードより大きいか又は等しい場合には、参照サンプルの上側が、主要な参照側であるとして選択され、幅の値は、使用する補間フィルタを決定するために選択される。そうではない場合、主要な参照側は、ブロックの左側から選択され、高さはフィルタ選択処理を制御する。具体的には、選択された側の長さが8サンプル以下である場合、キュービック補間4タップが適用される。そうではない場合、補間フィルタは4タップ・ガウシアンのものである。
【0144】
32×4ブロックの場合において、対角のもの(45°として示されている)より小さい及び大きいモードに対する補間フィルタ選択の例が
図12に示されている。
【0145】
VVCでは、QTBTとして知られる、四分木及び二分木双方に基づくパーティショニング・メカニズムが使用される。
図13に示されるように、QTBTパーティショニングは、正方形だけではなく、長方形ブロックも提供することが可能である。もちろん、幾らかのシグナリング・オーバーヘッド及びエンコーダ側での計算の複雑さの増加は、HEVC/H.265規格で使用される従来の四分木ベースのパーティショニングと比較した場合のQTBTパーティショニングの代償である。それにもかかわらず、QTBTベースのパーティショニングは、より良いセグメンテーション特性を与え、従って、従来の四分木よりもかなり高いコーディング効率を示す。
【0146】
しかしながら、現在の状態においてVVCは、参照サンプルの両側(左側及び上側)に同じフィルタを適用する。たとえブロックが垂直であろうと水平であろうと、参照サンプル・フィルタは、両方の参照サンプルの側で同じであろう。
【0147】
この文書において、「垂直方向ブロック」(「ブロックの垂直方向」)及び「水平方向ブロック」(「ブロックの水平方向」)という用語は、QTBTのフレームワークで生成される矩形ブロックに適用される。これらの用語は、
図14に示されるものと同じ意味を有する。
【0148】
本開示は、ブロックの向きを考慮するために、異なる参照サンプル・フィルタを選択するメカニズムを提供する。具体的には、ブロックの幅及び高さが独立して検査され、その結果、異なる参照サンプル・フィルタが、予測されるブロックの異なる側に位置する参照サンプルに適用される。
【0149】
先行技術の検討において、補間フィルタの選択は主要な参照側の選択に関する決定と調和することが説明された。これら双方の決定は、現在、イントラ予測モードと対角(45度)方向との比較に依存している。
【0150】
しかしながら、この設計は細長いブロックに対する重大な欠陥を有することを認めることができる。
図15から、たとえモード比較基準を用いて、より短い側が主要な参照として選択されたとしても、予測されるピクセルの大部分は、依然として、より長い側の参照サンプル(破線エリアとして示されている)から導かれるであろう、ということが観察される。
【0151】
本開示は、補間フィルタ選択処理の間に、イントラ予測モードを閾値処理するために別の方向を使用することを提案する。具体的には、方向は、予測されるブロックの主要な対角の角度に対応する。例えば、サイズ32×4及び4×32のブロックに対して、参照サンプル・フィルタを決定するために使用される閾値モードmTは、
図16に示されるように規定される。
【0152】
閾値イントラ予測角度の特定の値は、以下の式を用いて計算されることが可能である。
【数4】
ここで、W,Hはそれぞれブロックの幅及び高さである。
【0153】
本開示の別の実施形態は、使用される参照サンプルがどちらの側に属するかに応じて、異なる補間フィルタを使用するものである。この決定の一例は
図17に示されている。
【0154】
イントラ方向mに対応する角度を有する直線は、予測されるブロックを、2つのエリアに分割する。異なるエリアに属するサンプルは、異なる補間フィルタを用いて予測される。
【0155】
mTの例示的な値(BMS1.0で規定されるイントラ予測モードのセットに対するもの)及び対応する角度は、表4に与えられている。角度αは
図16に示されるように与えられる。
表4.mTの例示的な値(BMS1.0で規定されるイントラ予測モードのセットに対するもの)
【表7】
【0156】
既存の技術及び解決策と比較して、本開示は、異なる補間フィルタを使用して予測されるブロック内のサンプルを使用しており、サンプルを予測するために使用される補間フィルタは、ブロックの形状、水平又は垂直である方向、及びイントラ予測モード角度に従って選択される。
【0157】
本開示は、参照サンプル・フィルタリングの段階で適用される可能性がある。特に、補間フィルタ選択処理に対して上述した同様の規則を使用して、参照サンプル平滑化フィルタを決定することが可能である。
【0158】
補間フィルタリングに加えて、参照サンプル・フィルタリングは、イントラ予測器内でサンプルを予測する直前の参照サンプルに適用することも可能である。参照サンプル・フィルタリングの後に取得されるフィルタリングされた参照サンプルは、イントラ予測モードの選択された方向に従ってイントラ予測器内で対応するサンプルにそれらをコピーするため、又は更なる補間フィルタリングのため、の何れかに使用されることが可能である。以下のフィルタは、この方法で参照サンプルに適用されることが可能である。
表5.例示的な参照サンプル・フィルタ
【表8】
【0159】
図21は、サンプル1120を含む、周囲の太枠で示された現在のブロック1130を示す。更に、図面は、隣接するブロックの参照サンプル1110を示す。例えば、参照サンプルは、上ブロック又は左ブロックのサンプルであってもよい。
【0160】
実施形態によれば、提供される方法は、以下のステップを含む:
1.選択された方向性イントラ予測モードの各々は、以下のグループのうちの1つに分類される:
A.垂直又は水平モード、
B.45度の倍数である角度を表す対角モード、
C.残りの方向性モード;
2.方向性イントラ予測モードがグループAに属していると分類される場合には、フィルタは、イントラ予測器に属するサンプル1120を生成するために参照サンプル1110には適用されない。参照サンプル1110は、
図11に示すように、ブロック境界1130を用いて予測されるブロック(イントラ予測器)内でサンプル1120から分離される;
3.モードがグループBに該当する場合には、参照サンプル・フィルタ(表5に示されている任意の参照サンプル・フィルタ、例えば[1,2,1])が参照サンプルに適用され、選択された方向に従ってこれらのフィルタリングされた値をイントラ予測器に更にコピーするが、補間フィルタは適用されない;
4.モードがグループCに属していると分類される場合には、選択された方向に従って参照サンプルの間の分数又は整数位置に該当する予測されたサンプルを生成するために、参照サンプルに、イントラ参照サンプル補間フィルタ(例えば、表3に示されたフィルタ)のみが適用される(参照サンプル・フィルタリングは実行されない)。
【0161】
実施形態によれば、提供される方法は、以下のステップを提供する:
1.現在のブロックのイントラ予測処理に対する方向性イントラ予測モードは、以下のグループのうちの1つに分類される:
A.垂直又は水平モード、
B.45度の倍数である角度を表す対角モードを含む方向性モード、
C.残りの方向性モード;
2.方向性イントラ予測モードがグループBに属していると分類される場合には、参照サンプル・フィルタが参照サンプルに適用される;
3.方向性イントラ予測モードがグループCに属していると分類される場合には、イントラ参照サンプル補間フィルタが参照サンプルに適用される。
【0162】
換言すれば、現在のブロックのイントラ予測に使用されるべきイントラ予測モードの分類に応じて、参照サンプルが適用されるか(分類B)、又は参照サンプル補間フィルタが適用される(分類C)。
【0163】
特に、実施形態によれば、サンプル・フィルタ又はサンプル補間フィルタの何れかが適用される。特に、方向性イントラ予測モードによる参照サンプル・フィルタが分数サンプルでない場合には、補間フィルタは適用されない。換言すれば、予測方向による参照サンプルが整数サンプルに該当する場合、補間フィルタは使用されることを要しない。
【0164】
更に、分類に従って、フィルタは全く使用されない可能性がある。例えば、現在のブロックのイントラ予測に使用されるイントラ予測モードの分類Aの場合、参照サンプル・フィルタ又は参照サンプル補間フィルタの何れも使用されない可能性がある。
【0165】
予測されるサンプルは、
図21に示されるように、参照サンプルの左及び上ラインから取得されることが可能である。イントラ予測モードに応じて、予測されたサンプルの各々について、参照サンプルの対応する位置が決定される。モードが非整数勾配を有する場合、参照サンプルの位置は分数であり、参照サンプル値は、この分数位置に隣接する参照サンプルのサブセットに、補間フィルタを適用することによって取得される。
【0166】
参照サンプルのライン内のこの参照サンプルの位置は、予測されるサンプル位置に対して水平(イントラ予測モードがDIA_IDXより大きい場合)又は垂直(イントラ予測モードがDIA-IDXより小さい場合)オフセットを有する。このオフセットの値は、モードの角度と、予測されるサンプルから参照サンプルのラインまでの距離とに依存する。イントラ予測モードが2又はVDIA_IDXである場合、予測の角度は45度に等しく、オフセットの値は参照サンプルのラインまでの距離の値に等しい。
【0167】
グループBの対角モードは、整数勾配広角モードを含むことも可能である。この場合、モードDIA_IDX及びVDIA_IDXと同様に、オフセットの値は参照サンプルのラインまでの距離の倍数であり、予測されるサンプル各々に対する参照サンプル位置は非分数である。
【0168】
例えば、マルチ参照ライン予測が使用されず(参照ライン・インデックスはゼロに等しい)、ブロック内の予測されるサンプルの位置が、位置(0,0)を有する左上の予測されるサンプルに対して(1,3)に等しい場合、イントラ予測モードがDIA_IDXより大きい場合には、参照サンプルのラインまでの距離は4サンプルに等しい。イントラ予測モードがDIA_IDXより小さい場合、この距離は2に等しい。
【0169】
イントラ予測モードが広角モードであり、その勾配が整数である場合、予測されるサンプルの値は、次のように計算することが可能である:
イントラ予測モードがDIA_IDXより大きい場合には
predSamples[x,y]=p[ x +Δ] [ -1],
Δ=N * (y+1)
であり、そうではない場合には
predSamples[x,y]=p[-1][ y +Δ],
Δ= N * (x+1)
である。ここで、Δはオフセットの値を示す。
45角度モード2及びVDIA_IDXに対する値Nは1に等しい。
【0170】
45度の倍数である角度を表すモードは、予測されるサンプル“predSamples[x][y]”を決定するために同じ式を使用するが、Nの値は1より大きな整数であろう。45度の倍数である角度を表すモードは、必ずしも水平及び垂直モードを含まないことに留意されたい。
【0171】
広角整数勾配モードのオフセットの値Δは、モード2及びモードVDIA_IDXに対するオフセットの倍数であることが分かる。
【0172】
一般に、オフセットの値は、パラメータ“intraPredAngle”を使用して、イントラ予測モード(predModeIntra)にマッピングされることが可能である。このパラメータのイントラ予測モードへの特定のマッピングは、以下の表6に示されている。
表6-intraPredAngleの仕様
【表9】
【0173】
逆角度パラメータinvAngleは、intraPredAngleに基づいて次のように導出される:
invAngle = Round(256*32/intraPredAngle)
【0174】
予測サンプルの例示的な導出が以下において説明される:
予測サンプルpredSamples[x][y],x=0..nTbW-1,y=0..TbH-1の値は、次のように導出される:
- predModeIntraが34以上である場合、以下の順序ステップが適用される:
1.参照サンプル・アレイref[x]は、次のように指定される:
- 以下が適用される:
ref[ x ] = p[ -1 - refIdx + x ][ -1 - refIdx ], x = 0..nTbW + refIdx
- intraPredAngleが0より小さい場合、主要な参照サンプル・アレイは、次のように拡張される:
- (nTbH * intraPredAngle)>>5が-1より小さい場合、
ref[ x ]=p[ -1 - refIdx ][ -1 - refIdx + ( ( x * invAngle + 128 ) >> 8) ], x = -1..( nTbH * intraPredAngle ) >> 5
ref[ ( ( nTbH * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbH * intraPredAngle ) >> 5 ]
ref[ nTbW + 1 + refIdx ] = ref[ nTbW + refIdx ]
- そうではない場合
ref[ x ] = p[ -1 - refIdx + x ][ -1 - refIdx ], x = nTbW + 1 + refIdx..refW + refId
ref[ -1 ] = ref[ 0 ]
- 追加サンプルref[ refW + refIdx +x ], x = 1..( Max( 1, nTbW / nTbH ) * refIdx + 1) は、次のように導出される:
ref[ refW + refIdx +x ] = p[ -1 + refW ][ -1 - refIdx ]
【0175】
2.予測サンプルの値predSamples[ x ][ y ], x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- インデックス変数iIdx及び乗算因子iFactは、次のように導出される:
iIdx = ( ( y + 1 + refIdx ) * intraPredAngle ) >> 5 + refIdx
iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31
- cIdxが0に等しい場合、以下が適用される:
- 補間フィルタ係数fT[j],j=0..3は、次のように導出される:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- 予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
【数5】
- そうではない場合(cIdxが0に等しくない)、iFactの値に依存して、以下が適用される:
- iFactが0に等しくない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ]= ( ( 32 - iFact ) * ref[ x + iIdx + 1 ] + iFact * ref[ x + iIdx + 2 ] + 16 ) >> 5
- そうではない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ref[ x + iIdx + 1 ]
- そうではない場合(predModeIntraが34より小さい)、以下の順序ステップが適用される:
【0176】
3.参照サンプル・アレイref[x]は、次のように指定される:
- 以下が適用される:
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + x ], x = 0..nTbH + refIdx
- intraPredAngleが0より小さい場合、主要な参照サンプル・アレイは、次のように拡張される:
- ( nTbW * intraPredAngle ) >> 5が-1より小さい場合、
ref[ x ] = p[ -1 - refIdx + ( ( x * invAngle + 128 ) >> 8 ) ][ -1 - refIdx ], x = -1..( nTbW * intraPredAngle ) >> 5
ref[ ( ( nTbW * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbW * intraPredAngle ) >> 5 ]
ref[ nTbG + 1 + refIdx ] = ref[ nTbH + refIdx ]
- そうではない場合
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + x ], x = nTbH + 1 + refIdx..refH + refIdx
ref[ -1 ] = ref[ 0 ]
- 追加サンプルref[ refH + refIdx +x ],x = 1..( Max( 1, nTbW / nTbH ) * refIdx + 1)は、次のように導出される:
ref[ refH + refIdx +x ] = p[ -1 + refH ][ -1 - refIdx ]
【0177】
4.予測サンプルの値predSamples[ x ][ y ], x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- インデックス変数iIdx及び乗算因子iFactは、次のように導出される:
iIdx = ( ( x + 1 + refIdx ) * intraPredAngle ) >> 5
iFact = ( ( x + 1 + refIdx ) * intraPredAngle ) & 31
- cIdxが0に等しい場合、以下が適用される:
- 補間フィルタ係数fT[ j ], j = 0..3は、次のように導出される:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- 予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
【数6】
- そうではない場合(cIdxは0に等しくない)、iFactの値に依存して、以下が適用される:
- iFactが0に等しくない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ( ( 32 - iFact ) * ref[ y + iIdx + 1 ] + iFact * ref[ y + iIdx + 2 ] + 16 ) >> 5
- そうではない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ref[ y + iIdx + 1 ]
【0178】
上記の例及び上記の表から、幾つかのモードに対する補間の呼び出しは冗長であることが分かる。具体的には、これは、32の倍数である対応するintraPredAngleパラメータを有するモードに対して生じる。値32は、整数の45度の勾配を有するモードに対応する。実際、predAngleの値は、参照サンプルのラインに隣接する予測されるサンプルに使用されるであろうオフセットの値に対する5ビット固定小数点の整数表現である。
【0179】
具体的には、モード[-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80]に関し、予測されるサンプルの計算は補間を必要としない。予測されるサンプルの値は、参照サンプルをコピーすることによって得ることができる。
【0180】
開示の実施形態の例示的な実装を組み込んだVVCドラフト仕様のバージョンは、以下のテキストで与えられる:
8.4.4.2.1 一般的なイントラ・サンプル予測
この処理に対する入力は、以下のとおりである:
- 現在のピクチャの左上サンプルに対する、現在の変換ブロックの左上サンプルを指定するサンプル位置(xTbCmp, yTbCmp),
- イントラ予測モードを指定する変数predModeIntra,
- 変換ブロック幅を指定する変数nTbW,
- 変換ブロック高さを指定する変数nTbH,
- コーディング・ブロック幅を指定する変数nCbW,
- コーディング・ブロック高さを指定する変数nCbH,
- 現在のブロックの色成分を指定する変数cIdx。
この処理の出力は、予測されたサンプルpredSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1である。
【0181】
変数refW及びrefHは、次のように導出される:
- IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しいか、又はcIdxが0に等しくない場合、以下が適用される:
refW = nTbW * 2 (8-103)
refH = nTbH * 2 (8-104)
- そうではない場合(IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない、且つcIdxが0に等しい)、以下が適用される:
refW = nCbW * 2 (8-105)
refH = nCbH * 2 (8-106)
【0182】
イントラ予測参照ライン・インデックスを指定する変数refIdxは、次のように導出される:
refIdx = ( cIdx = = 0 ) ? IntraLumaRefLineIdx[ xTbCmp ][ yTbCmp ] : 0 (8-107)
【0183】
参照サンプルp[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxに関し、以下の順序ステップが適用される:
1.Bross B et al.: “Versatile Cideo Coding (Draft 4)”, JVET-M1001-v7, March 2019, (以下、この文献はJVET-M1001-v7と言及される)の条項8.4.4.2.2で指定されているような参照サンプル利用可能性マーキング処理が、サンプル位置( xTbCmp, yTbCmp )、イントラ予測参照ライン・インデックスrefIdx、参照サンプル幅refW、参照サンプル高さrefH、色成分インデックスcIdxを入力とし、且つ参照サンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = - refIdx..refW - 1, y = -1 - refIdxを出力として呼び出される。
【0184】
2.少なくとも1つのサンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxが、「イントラ予測に利用可能でない」としてマークされる場合、JVET-M1001-v7の条項8.4.4.2.3で指定されているような参照サンプル置換処理が、イントラ予測参照ライン・インデックスrefIdx、参照サンプル幅refW、参照サンプル高さrefH、参照サンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = - refIdx..refW - 1, y = -1 - refIdx、及び色成分インデックスcIdxを入力とし、且つ修正された参照サンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxを出力として呼び出される。
【0185】
3.predModeIntraがINTRA_DCに等しい場合、RefFilterFlagは0に設定される。そうではない場合、パラメータPredAngle, RefFilterFlag、及びInterpolationFlagは、対応するintraPredAngleパラメータ、及び条項8.4.4.2.7以降で指定されているフィルタ・フラグ導出処理を、イントラ予測モードpredModeIntra、イントラ予測参照ライン・インデックスrefIdx、変換ブロック幅nTbW、変換ブロック高さnTbH、コーディング・ブロック幅nCbW及び高さnCbH、並びに色成分インデックスcIdxとともに呼び出すことによって取得される。
【0186】
4.条項 8.4.4.2.4以降で指定されているような参照サンプル・フィルタリング処理は、イントラ予測参照ライン・インデックスrefIdx、変換ブロック幅nTbW及び高さnTbH、参照サンプル幅refW、参照サンプル高さrefH、フィルタリングされていないサンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdx, RefFilterFlagパラメータ、並びに色成分インデックスcIdxを入力とし、且つ参照サンプルp[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxを出力として呼び出される。
【0187】
predModeIntraによるイントラ・サンプル予測処理は、次のように適用される:
- predModeIntraがINTRA_PLANARに等しい場合、JVET-M1001-v7の条項 8.4.4.2.5で指定されている対応するイントラ予測モード処理が、変換ブロック幅nTbW及び変換ブロック高さnTbH、並びに参照サンプル・アレイpを入力として呼び出され、出力は予測されたサンプル・アレイpredSamplesである。
【0188】
- そうではない場合、predModeIntraがINTRA_DCに等しい場合、JVET-M1001-v7の条項8.4.4.2.6で指定されている対応するイントラ予測モード処理が、変換ブロック幅nTbW、変換ブロック高さnTbH、及び参照サンプル・アレイpを入力として呼び出され、出力は予測されたサンプル・アレイpredSamplesである。
【0189】
- そうではない場合、predModeIntraがINTRA_LT_CCLM、INTRA_L_CCLM又はINTRA_T_CCLMに等しい場合、条項8.4.4.2.8で指定される対応するイントラ予測モード処理が、イントラ予測モードpredModeIntra、( xTbCmp, yTbCmp )に等しく設定されたサンプル位置( xTbC, yTbC )、変換ブロック幅nTbW及び高さnTbH、並びに参照サンプル・アレイpを入力として呼び出され、出力は予測されたサンプル・アレイpredSamplesである。
【0190】
- そうではない場合、条項 8.4.4.2.8以降で指定される対応するイントラ予測モード処理が、イントラ予測モードpredModeIntra、イントラ予測参照ライン・インデックスrefIdx、変換ブロック幅nTbW、変換ブロック高さnTbH、参照サンプル幅refW、参照サンプル高さrefH、コーディング・ブロック幅nCbW及び高さnCbH、補間フィルタ選択フラグInterpolationFlag、並びに参照サンプル・アレイpを入力とし、且つ修正されたイントラ予測モードpredModeIntra及び予測されたサンプル・アレイpredSamplesを出力として呼び出される。
【0191】
JVET-M1001-v7の条項8.4.4.2.9で指定される位置依存予測サンプル・フィルタリング処理が、イントラ予測モードpredModeIntra、変換ブロック幅nTbW、変換ブロック高さnTbH、予測されるサンプルpredSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1、参照サンプル幅refW、参照サンプル高さrefH、参照サンプルp[ x ][ y ],x = -1, y = -1..refH - 1及びx = 0..refW - 1, y = -1、並びに色成分インデックスcIdxを入力として呼び出され、出力は、修正された予測されたサンプル・アレイpredSamplesである。
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しいか、又はcIdxは0に等しくない
- refIdxは0に等しいか、又はcIdxは0に等しくない
- 以下の条件のうちの1つが真である:
- predModeIntraがINTRA_PLANARに等しい
- predModeIntraがINTRA_DCに等しい
- predModeIntraがINTRA_ANGULAR18に等しい
- predModeIntraがINTRA_ANGULAR50に等しい
- predModeIntraがINTRA_ANGULAR10に等しい
- predModeIntraがINTRA_ANGULAR58以上である
【0192】
8.4.4.2.4 参照サンプル・フィルタリング処理
この処理に対する入力は次のとおりである:
- イントラ参照ライン・インデックスを指定する変数refIdx,
- 変換ブロック幅を指定する変数nTbW,
- 変換ブロック高さを指定する変数nTbH,
- 参照サンプル幅を指定する変数refW,
- 参照サンプル高さを指定する変数refH,
- (フィルタリングされていない)隣接するサンプルrefUnfilt[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1及び x = -refIdx..refW - 1, y = -1 - refIdx,
- RefFilterFlagパラメータ
この処理の出力は、参照サンプルp[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxである。
【0193】
参照サンプルp[ x ][ y ]の導出に関し、以下が適用される:
- RefFilterFlagが1に等しい場合、フィルタリングされた値p[ x ][ y ], x = -1, y = -1..refH - 1及びx = 0..refW - 1, y = -1は、次のように導出される:
p[ -1 ][ -1 ] = ( refUnfilt[ -1 ][ 0 ] + 2 * refUnfilt[ -1 ][ -1 ] + refUnfilt[ 0 ][ -1 ] + 2 ) >> 2 (8-111)
p[ -1 ][ y ] = ( refUnfilt[ -1 ][ y + 1 ] + 2 * refUnfilt[ -1 ][ y ] + refUnfilt[ -1 ][ y - 1 ] + 2 ) >> 2
for y = 0..refH - 2 (8-112)
p[ -1 ][ refH - 1 ] = refUnfilt[ -1 ][ refH - 1 ] (8-113)
p[ x ][ -1 ] = ( refUnfilt[ x - 1 ][ -1 ] + 2 * refUnfilt[ x ][ -1 ] + refUnfilt[ x + 1 ][ -1 ] + 2 ) >> 2
for x = 0..refW - 2 (8-114)
p[ refW - 1 ][ -1 ] = refUnfilt[ refW - 1 ][ -1 ] (8-115)
- そうではない場合、参照サンプル値p[ x ][ y ]は、フィルタリングされていないサンプル値refUnfilt[ x ][ y ],x = -1- refIdx, y = -1- refIdx..refH - 1及び x = -refIdx..refW - 1, y = -1- refIdxに等しく設定される。
【0194】
8.4.4.2.7 intraPredAngleパラメータの仕様及びフィルタ・フラグ導出
この処理に対する入力は次のとおりである:
- イントラ予測モードpredModeIntra,
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- コーディング・ブロック幅を指定する変数nCbW
- コーディング・ブロック高さを指定する変数nCbH
- 色成分インデックスcIdx
この処理の出力は、修正されたイントラ予測モードpredModeIntra、intraPredAngleパラメータRefFilterFlag及びInterpolationFlag変数である。
【0195】
変数nW及びnHは次のように導出される:
- IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しいか、又はcIdxが0に等しくない場合、以下が適用される:
nW = nTbW
nH = nTbH
- そうではない場合(IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない、且つcIdxが0に等しい)、以下が適用される:
nW = nCbW
nH = nCbH
変数whRatioは、Abs( Log2( nW / nH ) )に等しく設定される。
【0196】
非正方形ブロック(nWがnHに等しくない)に関し、イントラ予測モードpredModeIntraは、次のように修正される:
- 以下の条件の全てが真である場合、predModeIntraは(predModeIntra + 65)に等しく設定される。
- nWはnHより大きい
- predModeIntraは2以上である
- predModeIntraは ( whRatio > 1 )より小さい ? ( 8 + 2 * whRatio ) : 8
- そうではない場合、以下の条件の全てが真である場合、predModeIntraは(predModeIntra - 67)に等しく設定される。
- nHはnWより大きい
- predModeIntraは66以下である
- predModeIntraは( whRatio > 1 )より大きい ? ( 60 - 2 * whRatio ) : 60
【0197】
角度パラメータintraPredAngleは、predModeIntraの値を用いて表7で指定されるように決定される。
表7-intraPredAngleの仕様
【表10】
【0198】
変数filterFlagは次のように導出される:
- 以下の条件のうちの1つ以上が真である場合、filterFlagは0に等しく設定される。
- cIdxは0に等しくない
- refIdxは0に等しくない
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34以上である、及びnWは8より大きい
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34より小さい、及びnHは8より大きい
【0199】
- そうではない場合、predModeIntraがINTRA_PLANARである場合、変数filterFlagはnTbS >5?1:0に設定される
- そうではない場合、intraPredAngleが32より大きい場合、変数filterFlagは1に等しく設定される
- そうではない場合、以下が適用される:
- 変数minDistVerHorはMin( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) ) に等しく設定される。
- 変数intraHorVerDistThres[ nTbS ]は、表8において指定されている。
- 変数filterFlagは、次のように導出される:
- minDistVerHorがintraHorVerDistThres[ nTbS ]より大きいか、又はAbs (intraPredAngle)>32である場合、filterFlagは1に等しく設定される。
【0200】
表8-様々な変換ブロック・サイズnTbSに対するintraHorVerDistThres[ nTbS ]の仕様
【表11】
【0201】
出力変数RefFilterFlag及びInterpolationFlagは、次のように導出される:
- predModeIntraがINTRA_PLANARであるか、又はpredIntraAngが32の整数倍である場合、変数RefFilterFlagはfilterFlagに等しく設定され、InterpolationFlagは0に等しく設定される。
- そうではない場合、変数RefFilterFlagは0に等しく設定され、InterpolationFlagはfilterFlagに等しく設定される。
【0202】
参考:RefFilterFlag及びInterpolationFlagは、任意のpredModeIntraに関し、決して両方とも1には等しくないものとする。表9を参照されたい)
表9-RefFilterFlag及びInterpolationFlagの仕様(参考)
【表12】
【0203】
8.4.4.2.8 角度イントラ予測モードの仕様
この処理に対する入力は、次のとおりである:
- イントラ予測モードpredModeIntra
- intraPredAngleパラメータ
- イントラ予測参照ライン・インデックスを指定する変数refIdx
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- 参照サンプル幅を指定する変数refW
- 参照サンプル高さを指定する変数refH
- コーディング・ブロック幅を指定する変数nCbW
- コーディング・ブロック高さを指定する変数nCbH
- 4タップ・フィルタ補間の利用を指定する変数InterpolationFlag
- 隣接サンプルがフィルタリングされるかどうかを指定する変数RefFilterFlag
- 隣接サンプルp[ x ][ y ],x = -1- refIdx, y = -1- refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1- refIdx。
【0204】
この処理の出力は、修正されたイントラ予測モードpredModeIntra及び予測されたサンプルpredSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1である。
【0205】
変数nTbS は( Log2 ( nTbW ) + Log2 ( nTbH ) ) >> 1に等しく設定される。
【0206】
図18は93個の予測方向を示し、ここで、破線の方向は、非正方形ブロックにのみ適用される広角モードに関連している。
【0207】
逆角度パラメータinvAngleは、intraPredAngleに基づいて次のように導出される:
invAngle = Round(256*32/intraPredAngle)
【0208】
補間フィルタ係数fC[phase][j]及びfG[phase][j],phase=0..31及びj=0..3は、表10において指定されている。
表10-補間フィルタ係数fC及びfGの仕様
【表13】
【0209】
予測サンプルの値predSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- predModeIntraが34以上である場合、以下の順序ステップが適用される:
1.参照サンプル・アレイref[ x ]は、次のように指定される:
- 以下が適用される:
ref[ x ] = p[ -1 - refIdx + x ][ -1 - refIdx ],x = 0..nTbW + refIdx
- intraPredAngleが0より小さい場合、主要参照サンプル・アレイは、次のように拡張される:
- ( nTbH * intraPredAngle ) >> 5が-1より小さい場合、
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + ( ( x * invAngle + 128 ) >> 8 ) ], x = -1..( nTbH * intraPredAngle ) >> 5
ref[ ( ( nTbH * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbH * intraPredAngle ) >> 5 ]
ref[ nTbW + 1 + refIdx ] = ref[ nTbW + refIdx ]
- そうではない場合、
ref[ x ] = p[ -1 - refIdx + x ][ -1 - refIdx ],x = nTbW + 1 + refIdx..refW + refIdx
ref[ -1 ] = ref[ 0 ]
- 追加サンプルref[ refW + refIdx +x ], x = 1..( Max( 1, nTbW / nTbH ) * refIdx + 1)は、次のように導出される:
ref[ refW + refIdx +x ] = p[ -1 + refW ][ -1 - refIdx ]
【0210】
2.予測サンプルの値predSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- インデックス変数iIdx及び乗算因子iFactは、次のように導出される:
iIdx = ( ( y + 1 + refIdx ) * intraPredAngle ) >> 5 + refIdx
iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31
- RefFilterFlagが0に等しい場合、以下が適用される:
- 補間フィルタ係数fT[ j ],j = 0..3は、次のように導出される:
fT[ j ] = InterpolationFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- 予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
【数7】
- そうではない場合(RefFilterFlagは0に等しくない)、iFactの値に依存して、以下が適用される:
- iFactが0に等しくない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ( ( 32 - iFact ) * ref[ x + iIdx + 1 ] + iFact * ref[ x + iIdx + 2 ] + 16 ) >> 5
- そうではない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ref[ x + iIdx + 1 ]
【0211】
- そうではない場合(predModeIntraは34より小さい)、以下の順序ステップが適用される:
1.参照サンプル・アレイref[ x ] は、次のように指定される:
- 以下が適用される:
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + x ],x = 0..nTbH + refIdx
- intraPredAngleが0より小さい場合、主要参照サンプル・アレイは、次のように拡張される:
- ( nTbW * intraPredAngle ) >> 5が-1より小さい場合、
ref[ x ] = p[ -1 - refIdx + ( ( x * invAngle + 128 ) >> 8 ) ][ -1 - refIdx ], x = -1..( nTbW * intraPredAngle ) >> 5
ref[ ( ( nTbW * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbW * intraPredAngle ) >> 5 ]
ref[ nTbG + 1 + refIdx ] = ref[ nTbH + refIdx ]
- そうではない場合
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + x ],x = nTbH + 1 + refIdx..refH + refIdx
ref[ -1 ] = ref[ 0 ]
- 追加サンプルref[ refH + refIdx +x ],x = 1..( Max( 1, nTbW / nTbH ) * refIdx + 1) は、次のように拡張される:
ref[ refH + refIdx +x ] = p[ -1 + refH ][ -1 - refIdx ]
【0212】
2.予測サンプルの値predSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1 は、次のように導出される:
- インデックス変数iIdx及び乗算因子iFactは、次のように導出される:
iIdx = ( ( x + 1 + refIdx ) * intraPredAngle ) >> 5
iFact = ( ( x + 1 + refIdx ) * intraPredAngle ) & 31
- RefFilterFlagが0に等しい場合、以下が適用される:
- 補間フィルタ係数fT[ j ],j = 0..3は、次のように導出される:
fT[ j ] = InterpolationFlag? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- 予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
【数8】
- そうではない場合(RefFilterFlagは0に等しくない)、iFactの値に依存して、以下が適用される:
- iFactが0に等しくない場合、予測サンプルの値predSamples[ x ][ y ] は、次のように導出される:
predSamples[ x ][ y ] = ( ( 32 - iFact ) * ref[ y + iIdx + 1 ] + iFact * ref[ y + iIdx + 2 ] + 16 ) >> 5
- そうではない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ref[ y + iIdx + 1 ]
【0213】
予測されるブロックのサイズに基づいて、広角モードは、異なるグループに該当する可能性がある。以下の所与の例では、これらのモードは、それらが非分数勾配を有するか否かに応じて、依然としてグループ「B」又はグループ「C」の何れかに属するであろう。しかしながら、グループ「C」のモードに対する補間フィルタの選択及びグループ「B」のモードに対する参照サンプル・フィルタリング・ステップの存在は、ブロックのサイズに依存する。filterFlag導出の部分は、次のように修正されることが可能である。
変数filterFlagは、次のように導出される:
- 以下の条件のうちの1つ以上が真である場合、filterFlagは0に等しく設定される。
- cIdxは0に等しくない
- refIdxは0に等しくない
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34以上である、及びnWは8より大きい
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34より小さい、nHは8より大きい
- そうではない場合、predModeIntraがINTRA_PLANARである場合に、変数filterFlagはnTbS >5?1:0に等しく設定される
- そうではない場合、intraPredAngleが32より大きく、nTbW*nTbHが32より大きい場合、変数filterFlagは1に設定される。
【0214】
- そうではない場合、以下が適用される:
- 変数minDistVerHorは、Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )に等しく設定される。
- 変数intraHorVerDistThres[ nTbS ]は、表11において指定されている。
- 変数filterFlagは、次のように導出される:
- minDistVerHorがintraHorVerDistThres[ nTbS ]より大きいか、又はAbs (intraPredAngle)>32である場合、filterFlagは1に等しく設定される。
【0215】
表11-様々な変換ブロック・サイズnTbSに対するintraHorVerDistThres[ nTbS ]の仕様
【表14】
【0216】
広角モードは、左下象限の下方部分又は右部分又は右上象限を示すモードであってもよい。具体的には、
図18に示す例において、広角モードは、-14ないし-1及びモード67ないし80である。
【0217】
本開示の実施形態の例示的な実装を組み込んだVVCドラフト仕様の別のバージョンは、参照サンプル・フィルタリングに関連する以下の部分を含み、以下に与えられ
る:
参照サンプルp[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxの生成に関し、以下の順序ステップが適用され:
【0218】
1.JVET-M1001-v7の条項8.4.4.2.2で指定されるような参照サンプル利用可能性マーキング処理が、サンプル位置( xTbCmp, yTbCmp )、イントラ予測参照ライン・インデックスrefIdx、参照サンプル幅refW、参照サンプル高さrefH、色成分インデックスcIdxを入力とし、且つ参照サンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = - refIdx..refW - 1, y = -1 - refIdxを出力として呼び出される。
【0219】
2.少なくとも1つのサンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxが、「イントラよ予測に対して利用可能でない」とマークされる場合、JVET-M1001-v7の条項8.4.4.2.3で指定されるような参照サンプル置換処理が、イントラ予測参照ライン・インデックスrefIdx、参照サンプル幅refW、参照サンプル高さrefH、参照サンプルrefUnfilt[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdx、並びに色成分インデックスcIdxを入力とし、且つ修正された参照サンプルrefUnfilt[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxを出力として呼び出される。predModeIntraがINTRA_PLANARに等しくはなく、predModeIntraがINTRA_DCに等しくない場合、パラメータintraPredAngleは、条項8.4.4.2.7以降で指定される対応するイントラ予測モード処理を呼び出すことによって取得され、そうではない場合、predModeIntraがINTRA_PLANARに等しい場合、intraPredAngleは32に設定され、そうではない場合、intraPredAngleは0に設定される。
【0220】
3.条項8.4.4.2.4以降で指定されるような参照サンプル・フィルタリング処理は、イントラ予測参照ライン・インデックスrefIdx、変換ブロック幅nTbW及び高さnTbH、参照サンプル幅refW、参照サンプル高さrefH、フィルタリングされていないサンプルrefUnfilt[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdx、intraPredAngleパラメータ、及び色成分インデックスcIdxを入力とし、且つ参照サンプルp[ x ][ y ],x = -1 - refIdx, y = -1 - refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1 - refIdxを出力として呼び出される。
【0221】
predModeIntraによるイントラ・サンプル予測処理は、次のように適用される:
- predModeIntraがINTRA_PLANARに等しい場合、JVET-M1001-v7の条項8.4.4.2.5で指定される対応するイントラ予測モード処理は、変換ブロック幅nTbW、変換ブロック高さnTbH、及び参照サンプル・アレイpを入力として呼び出され、出力は、予測されたサンプル・アレイpredSamplesである。
【0222】
- そうではない場合、predModeIntraがINTRA_DCに等しい場合、JVET-M1001-v7の条項8.4.4.2.6で指定される対応するイントラ予測モード処理が、変換ブロック幅nTbW、変換ブロック高さnTbH、及び参照サンプル・アレイpを入力として呼び出され、出力は、予測されたサンプル・アレイpredSamplesである。
【0223】
- そうではない場合、predModeIntraがINTRA_LT_CCLM, INTRA_L_CCLM又はINTRA_T_CCLMに等しい場合、条項8.4.4.2.8以降で指定される対応するイントラ予測モード処理が、イントラ予測モードpredModeIntra、( xTbCmp, yTbCmp )に等しく設定されるサンプル位置( xTbC, yTbC )、変換ブロック幅nTbW及び高さnTbH、並びに参照サンプル・アレイpを入力として呼び出され、出力は、予測されたサンプル・アレイpredSamplesである。
【0224】
- そうではない場合、以下の条件のうちの1つ以上が真である場合、fourTapFlagは0に等しく設定される:
- 色成分インデックスcIdxは0に等しくない
- intraPredAngleは32の倍数である。
【0225】
- そうではない場合、条項8.4.4.2.7以降で指定される対応するイントラ予測モード処理は、イントラ予測モードpredModeIntra、イントラ予測参照ライン・インデックスrefIdx、変換ブロック幅nTbW、変換ブロック高さnTbH、参照サンプル幅refW、参照サンプル高さrefH、コーディング・ブロック幅nCbW及び高さnCbH、fourTapFlag、並びに参照サンプル・アレイpを入力とし、且つ修正されたイントラ予測モードpredModeIntra及び予測されたサンプル・アレイpredSamplesを出力として呼び出される。
【0226】
8.4.4.2.4 参照サンプル・フィルタリング処理
この処理に対する入力は、以下のとおりである:
- イントラ予測参照ライン・インデックスを指定する変数refIdx
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- 参照サンプル幅を指定する変数refW
- 参照サンプル高さを指定する変数refH
- (フィルタリングされていないサンプル)隣接サンプルrefUnfilt[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1及び x = -refIdx..refW - 1, y = -1 - refIdx,
- predIntraAngleパラメータ
- 現在のブロックの色成分を指定する変数cIdx。
この処理の出力は、参照サンプルp[ x ][ y ], x = -1 - refIdx, y = -1 - refIdx..refH - 1 及び x = -refIdx..refW - 1, y = -1 - refIdxである。
【0227】
変数filterFlagは、次のように導出される:
- 以下の全ての条件が真である場合、filterFlagは1に等しく設定される:
- refIdxは0に等しい
- nTbW*nTbHは32より大きい
- cIdxは0に等しい
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しい
- predIntraAngleは0に等しくない、且つそれは32の倍数である
- そうではない場合、filterFlagは0に等しく設定される。
【0228】
参照サンプルp[ x ][ y ]の導出に関し、以下が適用される:
- filterFlagが1に等しい場合、フィルタリングされたサンプル値p[ x ][ y ], x = -1, y = -1..refH - 1 and x = 0..refW - 1, y = -1は、次のように導出される:
p[ -1 ][ -1 ] = ( refUnfilt[ -1 ][ 0 ] + 2 * refUnfilt[ -1 ][ -1 ] + refUnfilt[ 0 ][ -1 ] + 2 ) >> 2 (8-111)
p[ -1 ][ y ] = ( refUnfilt[ -1 ][ y + 1 ] + 2 * refUnfilt[ -1 ][ y ] + refUnfilt[ -1 ][ y - 1 ] + 2 ) >> 2
for y = 0..refH - 2 (8-112)
p[ -1 ][ refH - 1 ] = refUnfilt[ -1 ][ refH - 1 ] (8-113)
p[ x ][ -1 ] = ( refUnfilt[ x - 1 ][ -1 ] + 2 * refUnfilt[ x ][ -1 ] + refUnfilt[ x + 1 ][ -1 ] + 2 ) >> 2
for x = 0..refW - 2 (8-114)
p[ refW - 1 ][ -1 ] = refUnfilt[ refW - 1 ][ -1 ] (8-115)
- そうではない場合、参照サンプル値p[ x ][ y ]は、フィルタリングされていないサンプル値refUnfilt[ x ][ y ],x = -1- refIdx, y = -1- refIdx..refH - 1及び x = -refIdx..refW - 1, y = -1- refIdxに等しく設定される。
【0229】
8.4.4.2.7 intraPredAngleパラメータの仕様
この処理に対する入力は、次のとおりである:
- イントラ予測モードpredModeIntra,
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- コーディング・ブロック幅を指定する変数nCbW
- コーディング・ブロック高さを指定する変数nCbH
【0230】
この処理の出力は、修正されたイントラ予測モードpredModeIntra、intraPredAngleパラメータ、及びfilterFlag変数である。
【0231】
変数nW及びnHは、次のように導出される:
- IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しいか、又はcIdxが0に等しくない場合、以下が適用される:
nW = nTbW (8-125)
nH = nTbH (8-126)
- そうではない場合(IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない、及びcIdxが0に等しい)、以下が適用される:
nW = nCbW (8-127)
nH = nCbH (8-128)
変数whRatioは、Abs( Log2( nW / nH ) )に等しく設定される。
【0232】
非正方形ブロック(nWがnHと等しくない)に関し、イントラ予測モードpredModeIntraは、次のように修正される:
- 以下の全ての条件が真である場合、predModeIntraは( predModeIntra + 65 )に等しく設定される。
- nWはnHより大きい
- predModeIntraは2以上である
- predModeIntra は ( whRatio > 1 ) より小さい?( 8 + 2 * whRatio ) : 8
- そうではない場合、以下の全ての条件が真である場合、predModeIntraは ( predModeIntra - 67 )に等しく設定される。
- nHはnWより大きい
- predModeIntraは66以下である
- predModeIntraは is greater than ( whRatio > 1 )より大きい? ( 60 - 2 * whRatio ) : 60
【0233】
角度パラメータintraPredAngleはpredModeIntra値を用いて表12で指定されるように決定される。
表12-intraPredAngleの仕様
【表15】
【0234】
変数filterFlagは、次のように導出される:
- 以下の条件のうちの1つ以上が真である場合、filterFlagは0に等しく設定される。
- refIdxは0に等しくない
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34以上である、及びnWは8より大きい
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34より小さい、及びnHは8より大きい。
- そうではない場合、以下が適用される:
- 変数minDistVerHorは、Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )に等しく設定される。
- 変数intraHorVerDistThres[ nTbS ]は表11において指定されている。
- 変数filterFlagは、以下のように導出される:
- minDistVerHorがintraHorVerDistThres[ nTbS ]より大きいか、又はAbs (intraPredAngle)>32である場合、filterFlagは1に等しく設定される。
【0235】
8.4.4.2.8 角度イントラ予測モードの仕様
この処理に対する入力は、以下のとおりである:
- イントラ予測モードpredModeIntra,
- intraPredAngleパラメータ,
- イントラ予測参照ライン・インデックスを指定する変数refIdx,
- 変換ブロック幅を指定する変数nTbW,
- 変換ブロック高さを指定する変数nTbH
- 参照サンプル幅を指定する変数refW
- 参照サンプル高さを指定する変数refH
- コーディング・ブロック幅を指定する変数nCbW
- コーディング・ブロック幅を指定する変数nCbH
- 4タップ・フィルタ補間の利用を指定する変数fourTapFlag
- 変数filterFlag
- 隣接サンプルp[ x ][ y ],x = -1- refIdx, y = -1- refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1- refIdx。
【0236】
この処理の出力は、修正されたイントラ予測モードpredModeIntra及び予測されたサンプルpredSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1である。
【0237】
変数nTbSは ( Log2 ( nTbW ) + Log2 ( nTbH ) ) >> 1.に等しく設定される。
【0238】
変数filterFlagは、次のように導出される:
- 以下の条件のうちの1つ以上が真である場合、filterFlagは0に等しく設定される。
- refIdxは0に等しくない
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34以上である、及びnWは8より大きい
- IntraSubPartitionsSplitTypeはISP_NO_SPLITに等しくない、cIdxは0に等しい、predModeIntraはINTRA_ANGULAR34より小さい、及びnHは8より大きい。
- そうではない場合、以下が適用される:
- 変数minDistVerHorは、Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )に等しく設定される。
- 変数variable intraHorVerDistThres[ nTbS ]は、表13において指定されている。
- 変数filterFlagは、次のように導出される:
- minDistVerHorがintraHorVerDistThres[ nTbS ]より大きいか、又はAbs(intraPredAngle) が32より大きい場合、filterFlagは1に等しく設定される。
- そうではない場合、filterFlagは0に等しく設定される。
【0239】
表13-様々な変換ブロック・サイズnTbSに対するintraHorVerDistThres[ nTbS ]の仕様
【表16】
【0240】
図18は、93個の予測方向を示しており、破線の方向は、非正方形ブロックにのみ適用される広角モードに関連している。
【0241】
逆角度パラメータinvAngleは、intraPredAngleに基づいて次のように導出される:
invAngle = Round(256*32/intraPredAngle) (8-129)
補間フィルタ係数fC[phase][j]及びfG[phase][j],phase=0..31及びj=0..3は、表14において指定されている。
【表17】
表14-補間フィルタ係数fC及びfGの仕様
【0242】
予測サンプルの値predSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- predModeIntraが34以上である場合、以下の順序ステップが適用される:
1.参照サンプル・アレイref[ x ]が、次のように指定される:
- 以下が適用される:
ref[ x ] = p[ -1 - refIdx + x ][ -1 - refIdx ],x = 0..nTbW + refIdx (8-130)
- intraPredAngleが0より小さい場合、主要参照サンプル・アレイは、次のように拡張される:
- ( nTbH * intraPredAngle ) >> 5 が-1より小さい場合、
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + ( ( x * invAngle + 128 ) >> 8 ) ], x = -1..( nTbH * intraPredAngle ) >> 5 (8-131)
ref[ ( ( nTbH * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbH * intraPredAngle ) >> 5 ] (8-132)
ref[ nTbW + 1 + refIdx ] = ref[ nTbW + refIdx ] (8-133)
- そうではない場合、
ref[ x ] = p[ -1 - refIdx + x ][ -1 - refIdx ], with x = nTbW + 1 + refIdx..refW + refIdx (8-134)
ref[ -1 ] = ref[ 0 ] (8-135)
- 追加サンプルref[ refW + refIdx +x ], x = 1..( Max( 1, nTbW / nTbH ) * refIdx + 1)は、次のように導出される:
ref[ refW + refIdx +x ] = p[ -1 + refW ][ -1 - refIdx ] (8-136)
【0243】
2.予測サンプルの値predSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- インデックス変数iIdx及び乗算因子iFactは、次のように導出される:
iIdx = ( ( y + 1 + refIdx ) * intraPredAngle ) >> 5 + refIdx (8-137)
iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31 (8-138)
fourTapFlagが1に等しい場合、以下のステップが適用される:
- 補間フィルタ係数fT[ j ],j = 0..3は、次のように導出される:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ] (8-139)
- 予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
【数9】
そうではない場合(fourTapFlagは1に等しくない)、iFactの値に依存して、以下が適用される:
- iFactが0に等しくない場合、予測サンプルの値predSamples[ x ][ y ] は、次のように導出される:
predSamples[ x ][ y ] = ( ( 32 - iFact ) * ref[ x + iIdx + 1 ] + iFact * ref[ x + iIdx + 2 ] + 16 ) >> 5 (8-141)
- そうではない場合、予測サンプルの値predSamples[ x ][ y ]は、次のようにして導出される:
predSamples[ x ][ y ] = ref[ x + iIdx + 1 ] (8-142)
【0244】
- そうではない場合(predModeIntraは34より小さい)、以下の順序ステップが適用される:
1.参照サンプル・アレイref[ x ]は、次のように指定される:
- 以下が適用される:
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + x ], x = 0..nTbH + refIdx (8-143)
- intraPredAngleが0より小さい場合、主要参照サンプル・アレイは、次のように拡張される:
- ( nTbW * intraPredAngle ) >> 5が-1より小さい場合、
ref[ x ] = p[ -1 - refIdx + ( ( x * invAngle + 128 ) >> 8 ) ][ -1 - refIdx ], x = -1..( nTbW * intraPredAngle ) >> 5 (8-144)
ref[ ( ( nTbW * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbW * intraPredAngle ) >> 5 ] (8-145)
ref[ nTbG + 1 + refIdx ] = ref[ nTbH + refIdx ] (8-146)
- そうではない場合、
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx + x ], with x = nTbH + 1 + refIdx..refH + refIdx (8-147)
ref[ -1 ] = ref[ 0 ] (8-148)
- 追加サンプルref[ refH + refIdx +x ],x = 1..( Max( 1, nTbW / nTbH ) * refIdx + 1)は、次のように導出される:
ref[ refH + refIdx +x ] = p[ -1 + refH ][ -1 - refIdx ] (8-149)
【0245】
2.予測サンプルの値predSamples[ x ][ y ],x = 0..nTbW - 1, y = 0..nTbH - 1は、次のように導出される:
- インデックス変数iIdx及び乗算因子iFactは、次のように導出される:
iIdx = ( ( x + 1 + refIdx ) * intraPredAngle ) >> 5 (8-150)
iFact = ( ( x + 1 + refIdx ) * intraPredAngle ) & 31 (8-151)
- fourTapFlagが1に等しい場合、以下が適用される:
- 補間フィルタ係数fT[ j ],j = 0..3は、次のように導出される:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ] (8-152)
- 予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
【数10】
- そうではない場合(fourTapFlagは1に等しくない)、iFactの値に依存して、以下が適用される:
- iFactが0に等しくない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ( ( 32 - iFact ) * ref[ y + iIdx + 1 ] + iFact * ref[ y + iIdx + 2 ] + 16 ) >> 5 (8-154)
- そうではない場合、予測サンプルの値predSamples[ x ][ y ]は、次のように導出される:
predSamples[ x ][ y ] = ref[ y + iIdx + 1 ]
【0246】
図19は、本開示の実施形態によるネットワーク・デバイス1300(例えば、コーディング・デバイス)の概略図である。ネットワーク・デバイス1300は、本願で説明されるような開示される実施形態を実装するのに適している。ネットワーク・デバイス1300は、データを受信するための入口ポート1310及び受信機ユニット(Rx)1320と、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット1330と、データを送信するための送信機ユニット(Tx)1340及び出口ポート1350と、データを記憶するためのメモリ1360とを含む。ネットワーク・デバイス1300はまた、光信号又は電気信号の出入りのために、入口ポート1310、受信機ユニット1320、送信機ユニット1340、及び出口ポート1350に結合された光-電気(OE)構成要素及び電気-光(EO)構成要素を含んでもよい。
【0247】
プロセッサ1330は、ハードウェア及びソフトウェアによって実現される。プロセッサ1330は、1つ以上のCPUチップ、コア(例えば、マルチコア・プロセッサ)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実現されることが可能である。プロセッサ1330は、入口ポート1310、受信機ユニット1320、送信機ユニット1340、出口ポート1350、及びメモリ1360と通信する。プロセッサ1330は、コーディング・モジュール1370を含む。コーディング・モジュール1370は、上述の開示された実施形態を実現する。例えば、コーディング・モジュール1370は、種々のネットワーキング機能を実現、処理、準備、又は提供する。従って、コーディング・モジュール1370を含むことは、ネットワーク・デバイス1300の機能に対する実質的な改善をもたらし、ネットワーク・デバイス1300の異なる状態への変換に影響を及ぼす。代替的に、コーディング・モジュール1370は、メモリ1360に格納された命令として実装され、プロセッサ1330によって実行される。
【0248】
メモリ1360は、1つ以上のディスク、テープ・ドライブ、及びソリッド・ステート・ドライブを含み、オーバー・フロー・データ・ストレージ・デバイスとして使用されることが可能であり、このようなプログラムが実行のために選択される場合にプログラムを記憶し、プログラムの実行中に読み込まれた命令及びデータを記憶する。メモリ1360は、揮発性及び/又は不揮発性であってもよく、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ターナリ・コンテンツ・アドレス指定可能メモリ(TCAM)、及び/又はスタティック・ランダム・アクセス・メモリ(SRAM)であってもよい。
【0249】
上記方法の任意の1つを実行するように構成された処理回路を含むデコーダが提供される。
【0250】
本開示において、コンピュータ・プログラム製品が提供され、プログラム・コードを含むコンピュータ・プログラム製品は、上記方法の任意の1つを実行するように開示される。
【0251】
本開示において、ビデオ・データを復号化するためのデコーダが提供され、デコーダは、1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含み、プログラミングは、プロセッサにより実行される場合に、上記方法の任意の1つを実行するようにデコーダを構成する。
【0252】
本願で説明されるように、開示される実施形態を実施するのに適したネットワーク・デバイスが以下において説明される。ネットワーク・デバイスは、データを受信するための入口ポート及び受信機ユニット(Rx)と、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(CPU)と、データを送信するための送信機ユニット(Tx)及び出口ポートと、データを記憶するためのメモリとを含む。ネットワーク・デバイスはまた、光又は電気信号の出入りのために、入口ポート、受信機ユニット、送信機ユニット、及び出口ポートに結合された光-電気(OE)構成要素及び電気-光(EO)構成要素を含んでもよい。
【0253】
プロセッサは、ハードウェア及びソフトウェアによって実現される。プロセッサは、1つ以上のCPUチップ、コア(例えば、マルチコア・プロセッサ)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実現されることが可能である。プロセッサは、入口ポート、受信機ユニット、送信機ユニット、出口ポート、及びメモリと通信する。プロセッサは、コーディング・モジュールを含む。コーディング・モジュールは、上述の開示された実施形態を実現する。例えば、コーディング・モジュールは、種々のネットワーキング機能を実現、処理、準備、又は提供する。従って、コーディング・モジュールを含むことは、ネットワーク・デバイスの機能に対する実質的な改善をもたらし、ネットワーク・デバイスの異なる状態への変換に影響を及ぼす。代替的に、コーディング・モジュールは、メモリに格納された命令として実装され、プロセッサによって実行される。
【0254】
メモリは、1つ以上のディスク、テープ・ドライブ、及びソリッド・ステート・ドライブを含み、オーバー・フロー・データ・ストレージ・デバイスとして使用されることが可能であり、このようなプログラムが実行のために選択される場合にプログラムを記憶し、プログラムの実行中に読み込まれた命令及びデータを記憶する。メモリは、揮発性及び/又は不揮発性であってもよく、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ターナリ・コンテンツ・アドレス指定可能メモリ(TCAM)、及び/又はスタティック・ランダム・アクセス・メモリ(SRAM)であってもよい。
【0255】
図20は、様々な実施形態を実施するために使用されることが可能な装置1500のブロック図である。装置1500は、
図1に示すようなソース・デバイス12、又は
図2に示すようなビデオ・エンコーダ20、又は
図1に示すような宛先デバイス14、又は
図3に示すようなビデオ・デコーダ30であってもよい。更に、装置1500は、説明される要素のうちの1つ以上に応対することが可能である。幾つかの実施形態において、装置1500は、スピーカ、マイクロホン、マウス、タッチスクリーン、キーパッド、キーボード、プリンタ、ディスプレイ等の1つ以上の入力/出力デバイスを備える。装置1500は、1つ以上の中央処理ユニット(CPU)1510、メモリ1520、大容量ストレージ1530、ビデオ・アダプタ1540、及びバスに接続されたI/Oインターフェース1560を含んでもよい。バスは、メモリ・バス又はメモリ・コントローラ、周辺バス、ビデオ・バス等を含む任意のタイプの複数のバス・アーキテクチャのうちの1つ以上である。
【0256】
CPU1510は、任意のタイプの電子データ・プロセッサを有することが可能である。メモリ1520は、スタティック・ランダム・アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、同期DRAM(SDRAM)、リード・オンリ・メモリ(ROM)、それらの組み合わせ等のような任意のタイプのシステム・メモリを有していてもよいし、又はそれらであってもよい。実施形態において、メモリ1520は、起動時に使用するためのROMと、プログラムを実行する間に使用するためのプログラム及びデータ・ストレージのためのDRAMとを含んでもよい。実施形態において、メモリ1520は非一時的である。大容量ストレージ1530は、データ、プログラム、及び他の情報を記憶し、データ、プログラム、及び他の情報を、バスを介してアクセス可能にする任意のタイプのストレージ・デバイスを含む。大容量ストレージ1530は、例えばソリッド・ステート・ドライブ、ハード・ディスク・ドライブ、磁気ディスク・ドライブ、光ディスク・ドライブ等のうちの1つ以上を含む。
【0257】
ビデオ・アダプタ1540及び入出力インターフェース1560は、外部入力及び出力デバイスを装置1500に結合するインターフェースを提供する。例えば、装置1100は、SQLコマンド・インタフェースをクライアントに提供してもよい。図示のように、入力及び出力デバイスの例は、ビデオ・アダプタ1540に結合されたディスプレイ1590、及びI/Oインターフェース1560に結合されたマウス/キーボード/プリンタ1570の任意の組み合わせを含む。他のデバイスは、装置1500に結合される可能性があり、追加の又はより少ないインターフェース・カードが使用されてもよい。例えば、シリアル・インターフェース・カード(図示せず)が、シリアル・インターフェースをプリンタに提供するために使用されてもよい。
【0258】
また、装置1100は、イーサーネット・ケーブル等の有線リンク、及び/又はアクセス・ノード又は1つ以上のネットワーク1580への無線リンクを含む、1つ以上のネットワーク・インターフェース1550を含む。ネットワーク・インターフェース1550は、装置1500が、ネットワーク1580を介してリモート・ユニットと通信することを可能にする。例えば、ネットワーク・インターフェース1550は、データベースに対する通信を提供することができる。実施形態おいて、装置1500は、他の処理ユニット、インターネット、リモート・ストレージ施設のようなリモート・デバイスとの通信及びデータ処理のために、ローカル・エリア・ネットワーク又はワイド・エリア・ネットワークに結合される。
【0259】
所与のブロック内のピクセルを予測するために必要な重み係数の値を計算するために、ピースワイズ線形近似が導入される。ピースワイズ線形近似は、一方では、直接的な重み付け係数計算と比較して、距離重み付け予測メカニズムの計算複雑性を著しく低減し、他方では、先行技術の単純化と比較して、重み付け係数値のより高い精度を達成することを支援する。
【0260】
実施形態は、ピクチャの異なる部分を混合するために、1つのピクセルから別のものへの距離に依存する重み係数を使用するメカニズム(例えば、画像処理における幾つかの混合方法)だけでなく、他の双方向及び位置依存性のイントラ予測技術(例えば、PDPCの異なる修正)にも適用される可能性がある。
【0261】
本開示において幾つかの実施形態が提供されたが、開示されるシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の具体的な形態で具現化されてもよいことが理解されるはずである。本実施例は、例示的であって限定的なものではないと考えられるべきであり、その意図は、本願で与えられる詳細に限定されるものではない。例えば、種々の要素又は構成要素は別のシステムに組み合わせされ又は統合されることが可能であり、或いはある特徴は省略されてもよいし、或いは実装されなくてもよい。
【0262】
更に、様々な実施形態において個々に又は別々に説明及び図示された技術、システム、サブシステム、及び方法は、他のシステム、モジュール、技術、又は方法と組み合わせられ又は統合されてもよい。互いに結合され、又は直接的に結合され、又は通信するように示された又は議論された他のアイテムは、電気的に、機械的に、又は他の方法であるかどうかによらず、幾つかのインターフェース、デバイス、又は中間構成要素を介して間接的に結合され又は通信することが可能である。変更、置換、及び代替の他の例は、当業者によって確認可能であり、実施可能である。
【0263】
本開示で説明される対象事項及び動作の実装は、デジタル電子回路、又は本開示で開示された構造及びそれらの構造的均等物を含むコンピュータ・ソフトウェア、ファームウェア、又はハードウェア、又はそれらの1つ以上の組み合わせで実現されることが可能である。本開示で説明される対象事項の実装は、1つ以上のコンピュータ・プログラム、即ち、データ処理装置による実行のため、又はその動作を制御するために、コンピュータ記憶媒体上に符号化されたコンピュータ・プログラム命令の1つ以上のモジュールとして実現されることが可能である。代替的又は追加的に、プログラム命令は、人工的に生成される伝搬信号、例えば、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成されるマシンで生成される電気信号、光信号、又は電磁信号上に符号化されてもよい。コンピュータ記憶媒体、例えばコンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダム又はシリアル・アクセス・メモリ・アレイ又はデバイス、又はそれらのうちの1つ以上の組み合わせであってもよいし、又はそれらに含まれてもよい。更に、コンピュータ記憶媒体は伝搬される信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬される信号に符号化されたコンピュータ・プログラム命令のソース又は宛先であってもよい。また、コンピュータ記憶媒体は、1つ以上の別個の物理的な及び/又は非一時的な構成要素又は媒体(例えば、複数のCD、ディスク、又は他のストレージ・デバイス)であってもよいし、又はそれらに含まれてもよい。
【0264】
幾つかの実装において、本開示に説明される動作は、クラウド・コンピューティング・ネットワーク内のサーバーで提供されるホスト型サービスとして実現されてもよい。例えば、コンピュータ読み取り可能な記憶媒体は、クラウド・コンピューティング・ネットワーク内で論理的にグループ化され、アクセス可能であってもよい。クラウド・コンピューティング・ネットワーク内のサーバーは、クラウド・ベースのサービスを提供するためのクラウド・コンピューティング・プラットフォームを含むことができる。用語「クラウド」、「クラウド・コンピューティング」、及び「クラウド・ベース」は、本開示の範囲から逸脱することなく、適切に交換可能に使用されることが可能である。クラウド・ベースのサービスは、クライアント・コンピュータ上でローカルに実行されるアプリケーションを強化、補足、又は置換するために、サーバーによって提供され、ネットワークを介してクライアント・プラットフォームに配信されるホスト型サービスである可能性がある。回路は、クラウド・ベースのサービスを使用して、ソフトウェアのアップグレード、アプリケーション、及び、別の方法ならばリソースが回路に配信され得る前に長い時間を必要としたであろう他のリソースを、素早く受信することができる。
【0265】
コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプト、又はコードとしても知られる)は、コンパイルされる又は解釈される言語、宣言又は手続き言語を含む、任意の形態のプログラミング言語で書き込まれることが可能であり、それは、スタンドアロン・プログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、オブジェクト、又は他のユニットとして包含する、任意の形態で配備されることが可能である。コンピュータ・プログラムは、ファイル・システム内のファイルに対応する可能性があるが、それは必須ではない。プログラムは、他のプログラム又はデータを保持するファイルの一部分(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)、問題としているプログラムに専用の単独ファイル、又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部分を記憶するファイル)に記憶されてもよい。コンピュータ・プログラムは、1つのコンピュータ上で、又は1つのサイトに配置されるか若しくは複数のサイトに分散されて通信ネットワークによって相互接続される複数のコンピュータ上で、実行されるように配備されてもよい。
【0266】
本開示で説明される処理及び論理フローは、1つ以上のコンピュータ・プログラムを実行する1つ以上のプログラマブル・プロセッサによって実行されて、入力データに作用し、出力を生成することによって、動作を実行することができる。処理及び論理フローはまた、例えばFPGA(field programmable gate array)又はASIC(application-specific integrated circuit)のような特殊目的の論理回路によって実行されてもよいし、それらとして装置が実現されてもよい。
【0267】
コンピュータ・プログラムの実行に適したプロセッサは、例えば、汎用及び専用のマイクロプロセッサの両方、及び任意の種類のデジタル・コンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリ・メモリ又はランダム・アクセス・メモリ又はその両方から命令及びデータを受信するであろう。コンピュータの必須要素は、命令に従って動作を実行するためのプロセッサ、並びに命令及びデータを記憶するための1つ以上のメモリ・デバイスである。一般に、コンピュータはまた、データを記憶するための1つ以上の大容量ストレージ・デバイス、例えば、磁気、光磁気ディスク、又は光ディスクを含むであろうし、あるいはそれらからデータを受信する若しくはそれらへデータを送信する又は双方のために動作可能に結合されるであろう。しかしながら、コンピュータは、そのような装置を有することを必須とはしない。更に、コンピュータは、他のデバイス、例えば、数例を挙げれば、携帯電話、パーソナル・デジタル・アシスタント(PDA)、モバイル・オーディオ又はビデオ・プレーヤ、ゲーム・コンソール、グローバル・ポジショニング・システム(GPS)受信機、又は携帯用ストレージ・デバイス(例えば、ユニバーサル・シリアル・バス(USB)フラッシュ・ドライブ)に組み込まれてもよい。コンピュータ・プログラム命令及びデータを記憶するのに適したデバイスは、例えば半導体メモリ・デバイス、例えばEPROM、EEPROM、及びフラッシュ・メモリ・デバイス;磁気ディスク、例えば内部ハード・ディスク又はリムーバブル・ディスク;光磁気ディスク;並びにCD-ROM及びDVD-ROMディスクを含む、全ての形態の不揮発性メモリ、媒体及びメモリ・デバイスを含む。プロセッサ及びメモリは、特殊目的論理回路によって補足されてもよいし、又は、そこに組み込まれてもよい。
【0268】
本開示は多くの具体的な実装の詳細を含んでいるが、これらは、如何なる実装の又はクレームされ得るものの範囲に対する制限として解釈されるべきではなく、むしろ特定の実装の特定のうちの実装に特有の特徴の説明として解釈されるべきである。別々の実装の文脈で本開示において説明される特定の特徴はまた、単一の実装において組み合わせて実装されてもよい。逆に、単一の実装の文脈で説明される種々の特徴はまた、複数の実装で別々に、又は任意の適切なサブコンビネーションで実装されてもよい。更に、特徴は、特定の組み合わせにおいて作用するように上述され、そのように当初にクレームされてさえいるかもしれないが、クレームされる組み合わせのうちの1つ又は複数の特徴は、場合によっては、組み合わせから切り出されてもよく、クレームされる組み合わせは、サブコンビネーション又はサブコンビネーションのバリエーションに向けられてもよい。
【0269】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作が図示された特定の順序で又は連続的な順序で実行されること、又は、例示された全ての動作が実行されることを要求するものとして理解されるべきではない。特定の状況下では、マルチタスク及び並列処理が有利であるかもしれない。更に、上述の実装における種々のシステム構成要素の分離は、全ての実装においてそのような分離を要求するものとして理解されるべきではなく、上述のプログラム構成要素及びシステムは、一般に、単一のソフトウェア製品内に一緒に統合されてもよいし、又は複数のソフトウェア製品内にパッケージされてもよいことが理解されるべきである。
【0270】
かくて対象事項の特定の実装が説明されてきた。他の実装は以下のクレームの範囲内にある。場合によっては、クレームに記載された動作は、異なる順序で実行されてもよく、それでも所望の結果を達成することができる。更に、添付図面に示される処理は、所望の結果を達成するために、図示の特定の順序又は連続的な順序を必ずしも必要としない。特定の実装において、マルチタスク及び並列処理が有利であるかもしれない。
【0271】
本開示において幾つかの実施形態が提供されてきたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化され得ることが理解されるべきである。本実施例は、例示的であって限定的ではないものとして考えられるべきであり、その意図は、本願で与えられる詳細に限定されるものではない。例えば、種々の要素又は構成要素は、別のシステムに組み合わせられ又は統合されることが可能であり、或いはある特徴は省略されてもよいし、或いは実装されなくてもよい。
【0272】
更に、様々な実施形態において個々に又は別個に説明及び図示された技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技術、又は方法と組み合わせられる又は統合されることが可能である。互いに結合され、又は直接的に結合され、又は通信するように図示又は議論される他のアイテムは、電気的に、機械的に、又は他の方法であるかどうかによらず、幾つかのインターフェース、デバイス、又は中間的な構成要素を介して間接的に結合され、又は通信することが可能である。変更、置換、及び代替の他の例は、当業者によって確認可能であり、本願で開示される精神及び範囲から逸脱することなく行うことが可能である。
【0273】
頭字語の定義及び用語集
JEM Joint Exploration Model (将来的なビデオ・コーディング探求のためのソフトウェア・コードベース)
JVET Joint Video Experts Team
LUT Look-Up Table
QT QuadTree
QTBT QuadTree plus Binary Tree
RDO Rate-distortion Optimization
ROM Read-Only Memory
VTM VVC Test Model
VVC Versatile Video Coding, JVETにより発展させられる標準化プロジェクト
CTU / CTB Coding Tree Unit / Coding Tree Block
CU / CB Coding Unit / Coding Block
PU / PB Prediction Unit / Prediction Block
TU/TB Transform Unit / Transform Block
HEVC High Efficiency Video Coding