(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-07-08
(54)【発明の名称】色度イントラ予測システム及び方法
(51)【国際特許分類】
H04N 19/593 20140101AFI20250701BHJP
H04N 19/70 20140101ALI20250701BHJP
【FI】
H04N19/593
H04N19/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024573861
(86)(22)【出願日】2023-06-13
(85)【翻訳文提出日】2024-12-16
(86)【国際出願番号】 US2023025179
(87)【国際公開番号】W WO2023244592
(87)【国際公開日】2023-12-21
(32)【優先日】2022-06-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-11-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】516227559
【氏名又は名称】オッポ広東移動通信有限公司
【氏名又は名称原語表記】GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
【住所又は居所原語表記】No. 18 Haibin Road,Wusha, Chang’an,Dongguan, Guangdong 523860 China
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【氏名又は名称】吉田 昌司
(74)【代理人】
【識別番号】100137523
【氏名又は名称】出口 智也
(74)【代理人】
【識別番号】100220630
【氏名又は名称】河崎 亮
(72)【発明者】
【氏名】佐藤 数史
(72)【発明者】
【氏名】ユイ、ユエ
(72)【発明者】
【氏名】ユイ、ハオピン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP16
5C159RC12
5C159TA31
5C159TB08
5C159TC27
5C159TC42
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示の一態様によれば、エンコーダにより符号化を行う方法が提供される。この方法は、輝度符号化ユニット(CU)に隣接していない第1参照行セットを識別するスデップを含んでもよい。この方法は、第1参照行セットに基づいて輝度(luma)イントラ予測手順を実行するスデップを含んでもよい。この方法は、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得するスデップを含んでもよい。この方法は、第1参照行セットに基づいて、色度(chroma)CUに隣接していない第2参照行セットを識別するスデップを含んでもよい。この方法は、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、及び輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定するスデップを含んでもよい。
【特許請求の範囲】
【請求項1】
エンコーダにより符号化を行う方法であって、
少なくとも1つのプロセッサによって、輝度符号化ユニットCUに隣接していない第1参照行セットを識別するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに隣接していない前記第1参照行セットに基づいて輝度イントラ予測手順を実行するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度イントラ予測手順に基づいて前記輝度CUの輝度画素値セットを取得するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに隣接していない前記第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに隣接していない前記第1参照行セット、前記色度CUに隣接していない前記第2参照行セット、及び前記輝度CUの前記輝度画素値セットに基づいて、前記色度CUに関連する相関関数を推定するスデップと、を含む、
エンコーダにより符号化を行う方法。
【請求項2】
前記少なくとも1つのプロセッサによって、前記相関関数に基づいて色度イントラ予測手順を実行するステップと、
前記少なくとも1つのプロセッサによって、前記色度イントラ予測手順に基づいて前記色度CUに対して前記色度画素値セットを取得するステップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに対して取得された前記輝度画素値セットと、前記色度CUに対して取得された前記色度画素値セットとを含むビットストリームを生成するステップと、
通信インターフェイスによって、前記輝度CUに対して取得された前記輝度画素値セットと、前記色度CUに対して取得された前記色度画素値セットを含む前記ビットストリームを画像デコーダに伝送するステップと、をさらに含む、
請求項1に記載の方法。
【請求項3】
前記輝度イントラ予測手順は、マルチ参照行MRLイントラ予測手順を含み、
前記色度イントラ予測手順は、クロスコンポーネント線形モデルCCLM手順を含む、
請求項2に記載の方法。
【請求項4】
前記方法は、
前記少なくとも1つのプロセッサによって、前記輝度イントラ予測手順に使用された前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックスを生成するステップ、をさらに含み、
前記ビットストリームは、前記輝度参照行インデックスを含むようにさらに生成される、
請求項2に記載の方法。
【請求項5】
前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックス値とは、同じ値である、
請求項4に記載の方法。
【請求項6】
前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットは、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行を含む、
請求項2に記載の方法。
【請求項7】
前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットは、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する参照行とを含む、
請求項2に記載の方法。
【請求項8】
前記方法は、
前記少なくとも1つのプロセッサによって、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスを生成するステップをさらに含み、
前記ビットストリームは、前記色度参照行インデックスを含むようにさらに生成される、
請求項2に記載の方法。
【請求項9】
前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックス値とは、異なる値である、
請求項8に記載の方法。
【請求項10】
前記方法は、
前記少なくとも1つのプロセッサによって、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットとの間の差分を識別するステップと、
前記少なくとも1つのプロセッサによって、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットとの間の前記差分に関連するデルタ値の指示を生成するステップと、をさらに含み、
前記ビットストリームは、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットとの間の前記差分に関連する前記デルタ値の前記指示を含むようにさらに生成される、
請求項8に記載の方法。
【請求項11】
前記輝度CUと前記色度CUに関連する符号化ツリー構造は、同じである、
請求項10に記載の方法。
【請求項12】
前記指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含み、
または、
前記指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含む、
請求項10に記載の方法。
【請求項13】
前記指示は、前記デルタ値を含む、
請求項10に記載の方法。
【請求項14】
前記指示は、前記デルタ値を含まない、
請求項10に記載の方法。
【請求項15】
エンコーダにより符号化を行うシステムであって、
少なくとも1つのプロセッサと、
メモリであって、前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、
輝度符号化ユニットCUに隣接していない第1参照行セットを識別させ、
前記輝度CUに隣接していない前記第1参照行セットに基づいて輝度イントラ予測手順を実行させ、
前記輝度イントラ予測手順に基づいて前記輝度CUの輝度画素値セットを取得させ、
前記輝度CUに隣接していない前記第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別させ、
前記輝度CUに隣接していない前記第1参照行セット、前記色度CUに隣接していない前記第2参照行セット、及び前記輝度CUの前記輝度画素値セットに基づいて、前記色度CUに関連する相関関数を推定させる命令を格納するメモリと、を含む、
エンコーダにより符号化を行うシステム。
【請求項16】
前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、さらに、
前記相関関数に基づいて色度イントラ予測手順を実行させ、
前記色度イントラ予測手順に基づいて前記色度CUに対して色度画素値セットを取得させ、
前記輝度CUに対して取得された前記輝度画素値セットと、前記色度CUに対して取得された前記色度画素値セットとを含むビットストリームを生成させ、
前記輝度CUに対して取得された前記輝度画素値セットと、前記色度CUに対して取得された前記色度画素値セットとを含む前記ビットストリームを画像デコーダに伝送させる命令を格納する、
請求項15に記載のシステム。
【請求項17】
前記輝度イントラ予測手順は、マルチ参照行MRLイントラ予測手順を含み、
前記色度イントラ予測手順は、クロスコンポーネント線形モデルCCLM手順を含む、
請求項16に記載のシステム。
【請求項18】
前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、さらに、
前記輝度イントラ予測手順に使用された前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックスを生成させる命令を格納し、
前記ビットストリームは、前記輝度参照行インデックスを含むようにさらに生成される、
請求項16に記載のシステム。
【請求項19】
前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックス値とは、同じ値である、
請求項18に記載のシステム。
【請求項20】
前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットは、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含む、
請求項16に記載のシステム。
【請求項21】
前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットは、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する参照行とを含む、
請求項16に記載のシステム。
【請求項22】
前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、さらに、
前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスを生成させる命令を格納し、
前記ビットストリームは、前記色度参照行インデックスを含むようにさらに生成される、
請求項16に記載のシステム。
【請求項23】
前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックス値とは、異なる値である、
請求項22に記載のシステム。
【請求項24】
前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、さらに、
前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットとの間の差分を識別させ、
前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットとの間の前記差分に関連するデルタ値の指示を生成させる命令を格納し、
前記ビットストリームは、前記輝度イントラ予測手順に使用される前記輝度CUに隣接していない前記第1参照行セットと、前記色度イントラ予測手順に使用される前記色度CUに隣接していない前記第2参照行セットとの間の前記差分に関連する前記デルタ値の前記指示を含むようにさらに生成される、
請求項22に記載のシステム。
【請求項25】
前記輝度CUと前記色度CUに関連する符号化ツリー構造は、同じである、
請求項24に記載のシステム。
【請求項26】
前記指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含み、
または、
前記指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含む、
請求項24に記載のシステム。
【請求項27】
前記指示は、前記デルタ値を含む、
請求項24に記載のシステム。
【請求項28】
前記指示は、前記デルタ値を含まない、
請求項24に記載のシステム。
【請求項29】
デコーダにより復号化を行う方法であって、
通信インターフェースによって、画像エンコーダから、輝度符号化ユニットCUに関連する輝度画素値セットと、色度符号化ユニットCUに関連する色度画素値セットを含むビットストリームを受信するスデップと、
少なくとも1つのプロセッサによって、前記輝度CUに隣接していなく且つ前記画像エンコーダによって前記輝度画素値セットを生成するために用いられる第1参照行セットと、前記色度CUに隣接していなく且つ前記画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するステップと、を含む、
デコーダにより復号化を行う方法。
【請求項30】
前記方法は、
前記少なくとも1つのプロセッサによって、前記相関関数に基づいて前記ビットストリームを復号化して、前記輝度CUに関連する前記輝度画素値セットと、前記色度CUに関連する前記色度画素値セットを識別するステップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに関連する前記輝度画素値と、前記色度CUに関連する前記色度画素値セットとに基づいて、強化した画像を生成するステップと、をさらに含む、
請求項29に記載の方法。
【請求項31】
前記方法は、
前記少なくとも1つのプロセッサによって、前記ビットストリームからの、前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックスに関連する情報、または、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するステップをさらに含み、
前記相関関数は、前記輝度参照行インデックスに基づいて識別される、
請求項30に記載の方法。
【請求項32】
前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックス値とは、同じ値である、
請求項31に記載の方法。
【請求項33】
前記色度CUに隣接していない前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含み、
前記相関関数は、前記色度CUに隣接していない前記第2参照行セットに基づいて識別され、前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含む、
請求項29に記載の方法。
【請求項34】
前記色度CUに隣接していない前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する参照行とを含み、
前記相関関数は、前記色度CUに隣接していない第2参照行セットに基づいて識別され、前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する前記参照行とを含む、
請求項29に記載の方法。
【請求項35】
前記ビットストリームは、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスをさらに含み、
前記相関関数は、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックスに基づいて識別される、
請求項29に記載の方法。
【請求項36】
前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックス値とは、異なる値である、
請求項35に記載の方法。
【請求項37】
前記ビットストリームは、前記輝度CUに隣接していない前記第1参照行セットと、前記色度CUに隣接していない前記第2参照行セットとの間の差分に関連するデルタ値の指示をさらに含み、
前記相関関数は、前記デルタ値の前記指示に基づいて識別される、
請求項36に記載の方法。
【請求項38】
前記輝度CUと前記色度CUに関連する符号化ツリー構造は、同じである、
請求項37に記載の方法。
【請求項39】
前記指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含み、
または、
前記指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含む、
請求項37に記載の方法。
【請求項40】
前記指示は、前記デルタ値を含む、
請求項37に記載の方法。
【請求項41】
前記指示は、前記デルタ値を含まない、
請求項37に記載の方法。
【請求項42】
デコーダにより復号化を行うシステムであって、
少なくとも1つのプロセッサと、
メモリであって、前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、
画像エンコーダから、輝度符号化ユニットCUに関連する輝度画素値セットと、色度符号化ユニットCUに関連する色度画素値セットを含むビットストリームを受信させ、
前記輝度CUに隣接していなく且つ前記画像エンコーダによって前記輝度画素値セットを生成するために用いられる第1参照行セットと、前記色度CUに隣接していなく且つ前記画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別させる命令を格納するメモリと、を含む、
デコーダにより復号化を行うシステム。
【請求項43】
前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、さらに、
前記相関関数に基づいて前記ビットストリームを復号化して、前記輝度CUに関連する前記輝度画素値セットと、前記色度CUに関連する前記色度画素値セットとを識別させ、
前記輝度CUに関連する前記輝度画素値と、前記色度CUに関連する前記色度画素値セットとに基づいて、強化した画像を生成させる命令を格納する、
請求項42に記載のシステム。
【請求項44】
前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、さらに、
前記ビットストリームからの、前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックスに関連する情報、または、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスに関連する情報を識別させる命令を格納し、
前記相関関数は、前記輝度参照行インデックスに基づいて識別される、
請求項43に記載のシステム。
【請求項45】
前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックス値とは、同じ値である、
請求項44に記載のシステム。
【請求項46】
前記色度CUに隣接していない前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含み、
前記相関関数は、前記色度CUに隣接していない前記第2参照行セットに基づいて識別され、前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含む、
請求項42に記載のシステム。
【請求項47】
前記色度CUに隣接していない前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する参照行とを含み、
前記相関関数は、前記色度CUに隣接していない第2参照行セットに基づいて識別され、前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する前記参照行とを含む、
請求項42に記載のシステム。
【請求項48】
前記ビットストリームは、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスをさらに含み、
前記相関関数は、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックスに基づいて識別される、
請求項42に記載のシステム。
【請求項49】
前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックス値とは、異なる値である、
請求項48に記載のシステム。
【請求項50】
前記ビットストリームは、前記輝度CUに隣接していない前記第1参照行セットと、前記色度CUに隣接していない前記第2参照行セットとの間の差分に関連するデルタ値の指示をさらに含み、
前記相関関数は、前記デルタ値の前記指示に基づいて識別される、
請求項49に記載のシステム。
【請求項51】
前記輝度CUと前記色度CUに関連する符号化ツリー構造は、同じである、
請求項47に記載のシステム。
【請求項52】
前記指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含み、または、
前記指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含む、
請求項50に記載の方法。
【請求項53】
前記指示は、前記デルタ値を含む、
請求項50に記載の方法。
【請求項54】
前記指示は、前記デルタ値を含まない、
請求項50に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2022年6月17日に出願された出願番号が63/366,596であり且つ発明名称が「色度イントラ予測方法」である米国仮出願、2022年11月29日に出願された出願番号が63/385,310であり且つ発明名称が「色度イントラ予測方法」である米国仮出願を基礎出願とする優先権を主張し、その開示内容の全ては参照により本願に組み込まれる。
【0002】
本開示の実施形態はビデオ符号化に関する。
【背景技術】
【0003】
デジタルビデオは主流となり、デジタルテレビ、ビデオ電話、及びテレビ会議などの幅広い用途で利用されている。これらのデジタルビデオアプリケーションは、コンピューティング及び通信技術の進歩と、効率的なビデオ符号化技術によって実現可能となっている。様々なビデオ符号化技術を用いてビデオデータを圧縮してもよい。これにより、ビデオデータに対する符号化は1つ以上のビデオ符号化標準を用いて行われることができる。例示的なビデオ符号化標準は、多用途ビデオ符号化方式(versatile video coding、H.266/VVC)、高効率ビデオコーディング(high-efficiency video coding、H.265/HEVC)、高度なビデオコーディング(advanced video coding、H.264/AVC)、動画専門家グループ(moving picture expert group、MPEG)コーディングなどを含むが、これらに限定されない。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の一態様によれば、エンコーダにより符号化を行う方法が提供される。この方法は、少なくとも1つのプロセッサによって、輝度符号化ユニット(coding unit、CU)に隣接していない第1参照行セットを識別するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、及び輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定するスデップを含んでもよい。
【0005】
本開示の別の態様によれば、エンコーダにより符号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリとを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、及び輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定させることができる命令を格納する。
【0006】
本開示の更なる態様によれば、デコーダにより復号化を行う方法が提供される。この方法は、通信インターフェースによって、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含む画像エンコーダからのビットストリームを受信するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するスデップを含んでもよい。
【0007】
本開示のさらに別の態様によれば、デコーダによる復号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含む画像エンコーダからのビットストリームを受信させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別させることができる命令を格納する。
【0008】
これらの例示的な実施形態は、本開示を制限または定義するために説明させるものではなく、その理解を助けるための例を提供するためのものである。追加の実施形態は、詳細な説明に記載されており、そこでさらなる説明が提供されている。
【図面の簡単な説明】
【0009】
本明細書に組み込まれており且つ明細書の一部を形成する添付図面は、本開示の実施形態を示しており、説明とともに、本開示の原理をさらに説明し、当業者が本開示を作成および使用できるようにする役割を果たす。
【
図1】画像符号化のための例示的なマルチ参照行(multiple-reference line、MRL)イントラ予測手順を示す図である。
【
図2】
図1の画像符号化のための例示的なMRLイントラ予測手順の拡張を示す図である。
【
図3】クロスコンポーネント線形モデル(cross-component linear model、CCLM)パラメータ導出のための輝度サンプルと色度サンプルを示す図である。
【
図4】CCLMイントラ予測の傾き調整手順のグラフィカル表現を示す図である。
【
図5A】VVC用のシングルツリー・パーティションを示す図である。
【
図5B】VVC用のダブルツリー・パーティションを示す図である。
【
図6】輝度イントラ予測手順と色度イントラ予測手順のための例示的な参照行を示す図である。
【
図7】本開示のいくつかの実施形態に係る例示的な符号化システムのブロック図である。
【
図8】本開示のいくつかの実施形態に係る例示的な復号化システムのブロック図である。
【
図9】
図8における符号化システム内の例示的なエンコーダの詳細なブロック図である。
【
図10】
図9における復号化システム内の例示的なデコーダの詳細なブロック図である。
【
図11】本開示のいくつかの実施形態に係る、符号化ツリーユニット(coding tree unit、CTU)に分割された例示的な画像である。
【
図12】本開示のいくつかの実施形態に係る、符号化ユニット(CU)に分割された例示的なCTUを示す図である。
【
図13A】本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとを使用する第1例示イントラ予測手順を示す図である。
【
図13B】本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとを使用する第2例示イントラ予測手順を示す図である。
【
図13C】本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとを使用する第3例示イントラ予測手順を示す図である。
【
図14A】本開示のいくつかの実施形態に係る、例示的なビデオ符号化方法のフローチャートである。
【
図14B】本開示のいくつかの実施形態に係る、例示的なビデオ符号化方法のフローチャートである。
【
図15】本開示のいくつかの実施形態に係る、例示的なビデオ復号化方法のフローチャートである。 本開示の実施形態は、添付図面を参照して説明される。
【発明を実施するための形態】
【0010】
いくつかの構成および配置について議論されているが、これは説明の目的のためだけに行われていることを理解すべきである。当業者なら、本開示の趣旨および範囲を逸脱することなく、他の構成および配置を使用できることを認識するであろう。当業者にとっては、本開示はまた、様々な他の応用にも利用してもよいことは明らかなことである。
【0011】
明細書中の「一実施形態」「実施形態」「例示的な実施形態」「いくつかの実施形態」「特定の実施形態」等への言及が、記載される実施形態が特定の特徴、構造、または特性を含んでいる可能性があることを示すものであるが、すべての実施形態が必ずしもその特定の特徴、構造、または特性を含んでいる必要はないことに留意すべきである。さらに、このような表現は必ずしも同じ実施形態を指すわけではない。また、ある実施形態と関連して特定の特徴、構造、または特性を説明する場合、当業者にとっては、明示的に記載されているか否かに関わらず、そのような特徴、構造、または特性を他の実施形態と組み合わせて実現することは知識の範囲内のことである。
【0012】
一般に、用語は少なくとも部分的には文脈における使用から理解されることができる。例えば、本明細書で使用される「1つ以上」という用語は、少なくとも部分的には文脈に応じて、単数形で任意の特徴、構造、または特性を記載するために用いられる場合もあり、複数形で特徴、構造、または特性の組み合わせを記載するために用いられる場合もある。同様に、「1つ」「1個」「当該」などの用語も、少なくとも部分的には文脈に応じて、単数形の用法を伝えるか、または複数形の用法を伝えるように理解されることができる。さらに、「基づいて」という用語は、排他的な要因セットを伝えることを必ずしも意図していないことが理解され、代わりに、少なくとも部分的には文脈に応じて、明示的に記載されていない追加的な要因の存在を許容してもよい。
【0013】
以下で、ビデオ符号化システムの様々な態様について、様々な装置および方法を参照して説明する。これらの装置および方法は、以下の詳細な説明で説明され、添付図面において、様々なモジュール、コンポーネント、回路、ステップ、操作、プロセス、アルゴリズムなど(総称して「要素」と呼ぶ)によって図示される。これらの要素は、電子ハードウェア、ファームウェア、コンピュータソフトウェア、またはそれらの任意の組み合わせを用いて実現されてもよい。このような要素がハードウェア、ファームウェア、またはソフトウェアとして実現されるか否かは、全体的なシステムに課される特定の応用および設計上の制約に依存する。
【0014】
ここで説明する技術は、様々なビデオ符号化応用のために用いられてもよい。本明細書で説明されるように、ビデオ符号化には、ビデオの符号化と復号化の両方が含まれる。ビデオの符号化と復号化は、ブロックを単位として行われてもよい。例えば、変換、量子化、予測、ループ内フィルタリング、再構築などの符号化/復号化プロセスは、符号化ブロック、変換ブロック、または予測ブロックに対して行われてもよい。本明細書では、符号化/復号化対象ブロックを「現在ブロック」と呼ぶ。例えば、現在ブロックは、現在の符号化/復号化プロセスに応じて、符号化ブロック、変換ブロック、または予測ブロックを表してもよい。また、本開示で使用される「ユニット」という用語は、特定の符号化/復号化プロセスを実行するための基本ユニットを示し、「ブロック」という用語は、予め決められたサイズのサンプル配列を示すことが理解される。特に断らない限り、「ブロック」と「ユニット」は交換可能に使用されてもよい。
【0015】
図1は、画像符号化のための例示的なマルチ参照行(MRL)イントラ予測手順を示す
図100である。
図2は、
図1の画像符号化のための例示的なMRLイントラ予測手順の拡張を示す
図200である。
図3は、CCLMパラメータ導出のための輝度サンプル302と色度サンプル304を示す
図300である。
図4は、CCLMイントラ予測の傾き調整手順のグラフィカル表現400を示す図である。
図5Aは、VVC用のシングルツリー・パーティションを示す
図500でる。
図5Bは、VVC用のダブルツリー・パーティションを示す
図525である。
図6は、輝度イントラ予測手順と色度イントラ予測手順のための例示的な参照行を示す
図600である。
【0016】
図1を参照すると、多用途ビデオ符号化方式(VVC)において、符号化ユニット(CU)108に直接隣接する参照行内の参照サンプル104に加えて、隣接していない参照サンプル106を含む隣接していない参照行のうちの1つをイントラ予測手順に使用することにより、画素値102を予測してもよい。隣接していない参照サンプル106の後者の使用は、マルチ参照行(MRL)予測と呼ばれる。VVCにおいて、MRLは無効にされており、符号化ツリーユニット(CTU)の上部に位置する符号化ユニット(CUs)に対してシグナリングされない。これによって、実施コストを最小限にする。MRLは、現在予測ブロックのイントラ予測モードが平面モードは含まれない最も可能な予測モード(MPM)で符号化される場合にのみ適用される。
【0017】
ビットストリーム内では、表1に示すように、シーケンスパラメータセット(sequence-parameter set、SPS)記述子を用いてMRLを有効または無効にしてもよい。
【0018】
【0019】
sps_mrl_enabled_flagの値が1に設定されている場合、
図1のどの行がイントラ予測に使用されるかは、表2に示すように、coding_unit()構文内で指定される。
【0020】
【0021】
図2を参照すると、MRLの拡張が提案されている。この提案では、拡張されたMRLリストがN∈{1,3,5,7,12}として定義されており、0から始まる数Nは、(N+1)番目の上参照行および左参照行を表す。テンプレートに基づくイントラモード導出(Template based intra mode derivation、TIMD)の場合、MRLリストはN∈{1,3}である。
【0022】
VVCにおいて、CCLMと呼ばれる色度イントラ予測モードが指定されている。
図3を参照すると、輝度サンプル302と色度サンプル304がCCLMパラメータ導出のために用いられてもよい。一般的な画像またはビデオコンテンツでは、画素の色成分間の信号相関性が観察されることがある。CCLMモードは、MRLを用いて再構築された輝度サンプル302から色度サンプル304を予測することにより、チャンネル間の相関性を利用する。色度イントラ予測は、式(1)のような線形モデル関数を用いて行われる。
【0023】
【0024】
ただし、P(i,j)は符号化ユニット(CU)内の色度サンプル304を表し、rec’L(i,j)は同じCUの輝度サンプル302を表す。輝度サンプル302は、4:2:0のカラーフォーマットの場合には、2:1の比率でダウンサンプリングされてもよい。CCLMパラメータであるaとbは、輝度サンプル302と色度サンプル304に基づいて導出されてもよい。
【0025】
VVCでは、3つのCCLMモード、すなわち、CCLMの左と上(CCLM left and top、CCLM_LT)、CCLMの左(CCLM left、CCLM_L)、およびCCLMの上(CCLM top、CCLM_T)が指定されている。これら3つのモードは、モデルパラメータ「a」と「b」を導出するために用いられる参照サンプルの位置について異なっている。上方境界のサンプルがCCLM_Tモードに関与し、左方境界のサンプルがCCLM_Lモードに関与する。CCLM_LTモードでは、上方境界と左方境界の両方のサンプルが使用される。全体として、CCLMモードのうちのいずれかを使用する色度イントラ予測手順には、例えば、1)対応する色度ブロックのサイズに合わせるための、輝度ブロックとその隣接する再構築サンプルのダウンサンプリング、2)再構築隣接サンプルに基づくモデルパラメータ導出、3)色度イントラ予測サンプルを生成するための、式(1)の応用、が含まれる。
【0026】
輝度CUのダウンサンプリングに関連する操作について、4:2:0のカラーフォーマットのビデオシーケンスの色度位置に合わせるために、2種類のダウンサンプリングフィルタを輝度サンプル302に応用することができる。2種類のダウンサンプリングフィルタは、いずれも、水平方向と垂直方向において2対1のダウンサンプリング比率を持ってもよい。これら2つのフィルタ(f1とf2)は、下記の式(2)に例として示されており、それぞれ「type-0」と「type-2」の4:2:0色度フォーマットのビデオコンテンツに対応している。
【0027】
【0028】
SPSレベルのフラグ情報に基づいて、2次元の6タップまたは5タップのフィルタが、現在ブロック内の輝度サンプル302とその隣接サンプルに応用される。現在ブロックの最上行がCTU境界である場合には異常が発生する。この場合、1次元フィルタ[1,2,1]/4が上記の隣接する輝度サンプル302に応用されることにより、CTU境界の上方に複数の輝度行を使用することを回避する。
【0029】
モデルパラメータの導出プロセスについて、操作(1)からのモデルパラメータ「a」と「b」は、エンコーダとデコーダの両方で、再構築された輝度サンプル302と色度サンプル304に基づいて導出され、これにより、VVCにおける任意のシグナリングオーバーヘッドを回避する。
【0030】
再び
図3を参照すると、M×Nの色度ブロック、対応する2M×2Nの輝度ブロック、輝度サンプル302、および色度サンプル304の相対的なサンプル位置が示されている。
図3では、CCLM_LTモードで使用される4つのサンプルも示されており、それらは三角形状でマークされている。それらは、上方境界でのM/4と3*M/4の位置、および左方境界でのN/4と3*N/4の位置にある。CCLM_TモードおよびCCLM_Lモードでは、上方境界と左方境界が(M+N)つのサンプルのサイズまで拡張され、モデルパラメータ導出ために用いられる4つのサンプルは、(M+N)/8、3*(M+N)/8、5*(M+N)/8、7*(M+N)/8の位置にある。
【0031】
4つのサンプルが選択されると、4つの比較操作が使用されて、そのうちの2つの最小の輝度サンプル値と2つの最大の輝度サンプル値を決定する。例えば、Xlを2つの最大の輝度サンプル値の平均値とし、Xsを2つの最小の輝度サンプル値の平均値とする。同様に、YlとYsを対応する色度サンプル値の平均値とする。そして、線形モデルパラメータ「a」と「b」は、式(3)に従って取得される。
【0032】
【0033】
式(3)において、パラメータ「a」を算出するための除算操作は、ルックアップテーブルを用いて実現されている。ルックアップテーブルを格納するメモリ量を減らすために、最大値と最小値の差である差分値とパラメータ「a」は、指数表記によって表される。ここで、差分値は、4ビットの有効部分と1つの指数によって近似される。その結果、1/差分値のテーブルは16つの要素を含む。これにより、計算の複雑さを軽減するとともに、テーブルを格納するために必要なメモリサイズを減らすという利点がある。
【0034】
符号化効率を向上させるため、強化圧縮モデル(enhanced compression model、ECM)が提案されている。ECM において、マルチモデル線形モデル(multi-model linear model、MMLM)と呼ばれるCCLMの拡張が採用されている。各MMLMモードでは、再構築された隣接サンプルは、輝度サンプル302の平均値である閾値を用いて2つのクラスに分類される。各クラスの線形モデルは、VVCにおける上記方法の代わりに、最小平均二乗(least-mean square、LMS)手順を用いて導出される。
【0035】
図4を参照すると、式(1)におけるパラメータ「a」の傾き調整は、CCLMの符号化性能をさらに向上させてもよい。例えば、CCLMは、2つのパラメータを持つモデルを用いて輝度値(lumaVal)を色度値(chromaVal)にマッピングする。傾きパラメータ「a」とバイアスパラメータ「b」は、式(4)に従ってそのマッピングを定義する。
【0036】
【0037】
さらに、傾き調整パラメータ「u」を用いて、傾きパラメータを更新する。これにより、式(5)に従ってモデルを更新することができる。
【0038】
【0039】
ただし、a’=a+u、b’=b-u*yrであり、yrは輝度サンプル302の値の平均値である。
【0040】
引き続き
図4を参照すると、傾き調整パラメータ「u」は、-4から4までの整数(-4と4を含む)として提供され、ビットストリーム内でシグナリングされる。傾き調整パラメータの単位は、1つの輝度サンプル値あたり(例えば、10ビットコンテンツの場合)の色度サンプル値の1/8である。傾き調整パラメータは、CUの上方と左方の両方の参照サンプル(例えば、「LM_CHROMA_IDX」および「MMLM_CHROMA_IDX」)を使用するCCLM手順に使用されてもよいが、「片側」モードには使用されない。この選択は、符号化効率と複雑さのトレードオフを考慮したものである。マルチモードのCCLMモデルに傾き調整が応用される場合、両方のモデルを調整することができる。そのため、1つの色度CUに対して最大2つの傾き更新がシグナリングされる可能性がある。
【0041】
高効率ビデオコーディング(HVEC)では、CTUの符号化ツリーはそのY成分、Cb成分、およびCr成分で共有されているため、1つのCUは1つの輝度CUと2つの色度CUで構成されている。VVCでは、このシングルツリー構造はPスライスとBスライスに保持されている。しかし、Iスライスでは、輝度成分と色度成分の空間的特性が異なる場合がある。一般的に、輝度は色度よりも細かいテクスチャを持っており、その結果、輝度CTU内の小さなCUの数は色度CTU内の小さなCUの数よりも多くなる。したがって、Iスライスでは輝度成分と色度成分に別々の符号化ツリーを使用することが合理的である。この場合、1つの輝度CTU(元のCTUの1つの輝度符号化ツリーブロック(coding-tree block、CTB)を1つだけ含む)が1つの符号化ツリーを形成し、1つの色度CTU(元のCTUの2つの色度CTBを含む)が1つの色度分離ツリー(chroma separate tree、CST)を形成する。VVCでは、IスライスにおけるこのCSTの設計は「ダブルツリーCTU」と呼ばれている。
【0042】
CTUレベルからCSTのパーティションを開始するには、まず輝度CTBをシグナリングし、その後に色度CTBsをシグナリングする必要がある。そのため、デコーダは、対応する64x64の色度CTBを処理する前に、128x128の輝度ブロックを処理して保存しなければならない。このような処理順序により、CTUダブルツリーがない場合と比べて、バッファサイズが4倍になる。VVCでのバッファ要件を減らすために、CSTはCTUレベルではなく、最大TUレベルから開始される。
【0043】
VVCのテストモデルにおける共通テスト条件(common test condition、CTC)では、各CTUはIスライスにおける128x128の輝度サンプルと2x64x64の色度サンプルを含み、4分木(quad-tree、QT)分割手順を用いて4つの64x64-L/32x32-C符号化ツリーノードに分割される。2つの分離された符号化ツリー(1つは輝度符号化ツリー、もう1つはCST)は、4つの64x64-L/32x32-C符号化ツリーノードの各々から開始される。現在色度CUに対してCCLMモードが色度イントラ予測手順として選択される場合、1)現在色度CBの色度隣接ブロックからの再構築サンプルと、2)現在色度CBの対応する輝度隣接ブロックと輝度配列ブロックからの再構築サンプルとが色度予測サンプルを生成するプロセスに関与する。CCLM色度CUを持つ単一のパーティションツリーがある場合、輝度成分と色度成分のパーティションは整列している。現在Cb/Cr CB内の任意の色度サンプルの再構築は、サンプルが再構築された後に行うことができる。
【0044】
したがって、
図5Aに示すように、同じCUパーティションが64x64の輝度符号化ノードと対応する32x32の色度符号化ツリーノードに応用される場合、対応するCb/Cr CUの再構築を開始する前に、全体の輝度CUの再構築を待つ必要はない。しかし、CTUがダブルツリー・パーティションを持つ場合、輝度成分と色度成分間のCUパーティションが異なる可能性があり、例えば
図5Bに示すように、輝度CUと色度CUの異なる処理順序につながる。関連するSPS構文(seq_parameter_set_rbsp())は、以下の表3に示されている。ツリー構造に関連する構文要素と表3の1つ以上の構文要素は、ビットストリームの一部として伝送されてもよい。
【0045】
【0046】
表3を参照すると、sps_qtbtt_dual_tree_intra_flagの値が1と等しいことは、Iスライスについて、各CTUが暗黙的な4分木分割を用いて64×64の輝度サンプルを持つ符号化ユニットに分割され、これらの符号化ユニットが輝度と色度の2つの分離符号化ツリー構文構造のルートとなることを指定する。sps_qtbtt_dual_tree_intra_flagの値が0と等しいことは、Iスライスについて、分離符号化ツリー構文構造が使用されないことを指定する。sps_qtbtt_dual_tree_intra_flagが存在しない場合、それが0であると推測される。sps_log2_diff_max_bt_min_qt_intra_slice_lumaがMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraYより大きい場合、sps_qtbtt_dual_tree_intra_flagの値は0に等しくなければならない。
【0047】
SPSを参照して、sps_log2_diff_min_qt_min_cb_intra_slice_chroma構文要素は、treeTypeがDUAL_TREE_CHROMAと等しい色度CTUの4分木分割によって得られる色度葉ブロック(chroma leaf block)の輝度サンプルにおける最小サイズの二進対数と、sh_slice_typeが2(I)のスライスにおけるtreeTypeがDUAL_TREE_CHROMAと等しい色度CUの輝度サンプルにおける最小符号化ブロックサイズの二進対数との間のデフォルトの差分を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1と等しい場合、このデフォルトの差分は、PH構文構造内に存在するph_log2_diff_min_qt_min_cb_chromaによって上書きされることができる。sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からMin(6,CtbLog2SizeY)-MinCbLog2SizeYまでの範囲(0とMin(6,CtbLog2SizeY)-MinCbLog2SizeYを含む)内にあってもよい。存在しない場合、sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値が0であると推測される。treeTypeがDUAL_TREE_CHROMAと等しいCTUの4分木分割によって得られる色度葉ブロックの輝度サンプルにおける最小サイズの二進対数は、式(6)に従って導出される。
【0048】
【0049】
SPSを参照して、sps_max_mtt_hierarchy_depth_intra_slice_chroma構文要素は、treeTypeがDUAL_TREE_CHROMAと等しい色度4分木葉のマルチタイプツリー分割によって得られる、sh_slice_typeが2(I)のスライス内の色度符号化ユニットに対するデフォルトの最大階層深度を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1である場合、このデフォルトの最大階層深度は、PH構文構造内に存在するph_max_mtt_hierarchy_depth_chromaによって上書きされることができる。sps_max_mtt_hierarchy_depth_intra_slice_chroma構文要素の値は、0から2*(CtbLog2SizeY-MinCbLog2SizeY)までの範囲(0と2*(CtbLog2SizeY-MinCbLog2SizeY)を含む)内にあってもよい。存在しない場合、sps_max_mtt_hierarchy_depth_intra_slice_chromaの値が0であると推測される。
【0050】
SPSを参照して、sps_log2_diff_max_bt_min_qt_intra_slice_chroma構文要素は、sh_slice_typeが2(I)のスライス内で、2分木分割を用いて分割可能な色度符号化ブロックの輝度サンプルにおける最大サイズ(幅または高さ)の二進対数と、treeTypeがDUAL_TREE_CHROMAと等しい色度CTUの4分木分割によって得られる色度葉ブロックの輝度サンプルにおける最小サイズ(幅または高さ)の二進対数との間のデフォルトの差分を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1である場合、このデフォルトの差分は、PH構文構造内に存在するph_log2_diff_max_bt_min_qt_chromaによって上書きされることができる。sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値は、0からMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCまでの範囲(0とMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCを含む)内にある必要がある。sps_log2_diff_max_bt_min_qt_intra_slice_chromaが存在しない場合、sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値が0であると推測される。
【0051】
SPSを参照して、sps_log2_diff_max_tt_min_qt_intra_slice_chroma構文要素は、sh_slice_typeが2(I)のスライス内で、3分木分割を用いて分割可能な色度符号化ブロックの輝度サンプルにおける最大サイズ(幅または高さ)の二進対数と、treeTypeがDUAL_TREE_CHROMAと等しい色度CTUの4分木分割によって得られる色度葉ブロックの輝度サンプルにおける最小サイズ(幅または高さ)の二進対数との間のデフォルトの差分を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1の場合、このデフォルトの差分は、PH構文構造内に存在するph_log2_diff_max_tt_min_qt_chromaによって上書きされることができる。sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値は、0からMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCまでの範囲(0とMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCを含む)内にある必要がある。sps_log2_diff_max_tt_min_qt_intra_slice_chromaが存在しない場合、sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値が0であると推測される。
【0052】
coding_unit()構文要素は、以下の表4に示されている。
【0053】
【0054】
パラメータ「treeType」の値がDUAL_TREE_CHROMAと等しいか否かによって、現在CUに対してCSTが応用されるか否かを決定することができる。ここで、構文要素cclm_mode_flagとcclm_mode_idxは、ビットストリーム内で伝送されてもよい。
【0055】
cclm_mode_flagの値が1であることは、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMの色度イントラ予測モードのいずれかが応用されることを指定する。cclm_mode_flagが0であることは、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMの色度イントラ予測モードのいずれも応用されないことを指定する。cclm_mode_flagが存在しない場合、それが0であると推測される。cclm_mode_idx構文要素は、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMの色度イントラ予測モードのうち、どのモードが応用されるかを指定する。
【0056】
図6を参照すると、既存のVVC技術を用いる場合、
図6に示すように、MRL輝度イントラ予測602、CCLM輝度イントラ予測604、CCLM色度イントラ予測606のための参照行が異なってもよい。輝度ブロックの上方の1行目にノイズが含まれている場合、この行を輝度イントラ予測に使用すると、最良の符号化効率が得られない。このような場合、輝度イントラ予測には代替の参照行が使用される。この場合でも、上記の1行目と2行目は常にCCLMイントラ予測に使用される。Y成分、Cb成分、およびCr成分のツリー構造が共有されている場合、符号化効率の低下を招く。
【0057】
これらおよびその他の課題を克服するため、本開示では、色度CUに隣接していない参照行を色度イントラ予測に使用する例示イントラ予測手順を提供する。例えば、いくつかの実施形態では、Y、Cb、およびCrのツリー構造が共有されている場合、輝度MRLイントラ予測のための同じ参照行がCCLM色度イントラ予測に応用される。そうでない場合、従来のVVC仕様で定義された参照行がCCLM色度イントラ予測に使用される。いくつかの実施形態では、CCLM色度イントラ予測の参照行インデックスは、輝度MRLイントラ予測の参照行インデックスとは独立して伝送されてもよい。いくつかの実施形態では、Y、Cb、およびCrのツリー構造が共有されている場合、CCLM色度イントラ予測の参照行インデックスと輝度MRLイントラ予測の参照行インデックスとの差分(デルタ値)が、対応する参照行インデックスの代わりに伝送される。例示的なイントラ予測手順の詳細は、以下で
図7~
図15と組み合わせて提供される。
【0058】
図7は、本開示のいくつかの実施形態に係る例示的な符号化システム700のブロック図である。
図8は、本開示のいくつかの実施形態に係る例示的な復号化システム800のブロック図である。各システム700または800は、コンピュータや無線通信装置などのデータ処理が可能な様々なシステムや装置に応用または組み込まれてもよい。例えば、システム700または800は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、車載コンピュータ、ゲーム機、プリンタ、測位装置、ウェアラブル電子機器、スマートセンサ、仮想現実(virtual reality、VR)装置、拡張現実(argument reality、AR)装置、またはその他の適切なデータ処理能力を持つ電子機器の全部または一部であり得る。
図1および
図2に示すように、システム700または800は、プロセッサ702、メモリ704、およびインターフェース706を含んでもよい。これらのコンポーネントは、バスで互いに接続されているように示されているが、他の接続タイプも許容される。システム700または800が、ここで説明される機能を実行するためのその他の適切なコンポーネントを含んでもよいことは理解される。
【0059】
プロセッサ702は、グラフィックス処理ユニット(graphic processing unit、GPU)、画像信号プロセッサ(image signal processor、ISP)、中央処理ユニット(central processing unit、CPU)、デジタル信号プロセッサ(digital signal processor、DSP)、テンソル処理ユニット(tensor processing unit、TPU)、ビジョン処理ユニット(vision processing unit、VPU)、ニューラル処理ユニット(neural processing unit、NPU)、シナジスティック処理ユニット(synergistic processing unit、SPU)、または物理処理ユニット(physics processing unit、PPU)などのマイクロプロセッサ、マイクロコントローラユニット(microcontroller unit、MCU)、識別用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、プログラマブル論理デバイス(programmable logic device、PLD)、ステートマシン、ゲートドロジック、ディスクリートハードウェア回路、および本開示で説明される様々な機能を実行するように構成されたその他の適切なハードウェアを含んでもよい。
図1および
図2には1つのプロセッサのみが示されているが、複数のプロセッサを含んでもよいことは理解される。プロセッサ702は、1つ以上の処理コアを持つハードウェアデバイスであってもよい。プロセッサ702はソフトウェアを実行してもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などと呼ばれるに関わらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などと広く解釈されるべきである。ソフトウェアは、解釈型言語、コンパイル型言語、または機械語で書かれたコンピュータ命令を含んでもよい。ソフトウェアの広いカテゴリの下では、ハードウェアに指示するその他の技術も許容される。
【0060】
メモリ704は、大まかには、メモリ(すなわち、主メモリ/システムメモリ)とストレージ(すなわち、二次メモリ)の両方を含んでもよい。例えば、メモリ704は、ランダムアクセスメモリ(random-access memory、RAM)、読み出し専用メモリ(read-only memory、ROM)、静的RAM(static RAM、SRAM)、動的RAM(dynamic RAM、DRAM)、強誘電体RAM(ferro-electric RAM、FRAM)、電気的消去可能プログラマブルROM(electrically erasable programmable ROM、EEPROM)、コンパクトディスク読み出し専用メモリ(compact disc read-only memory、CD-ROM)またはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージ装置などのハードディスクドライブ(hard disk drive、HDD)、フラッシュドライブ、ソリッドステートドライブ(solid-state drive、SSD)、またはプロセッサ702によってアクセスおよび実行可能な命令の形で所望のプログラムコードを保持または格納するために用いられることができるその他の媒体を含んでもよい。大まかには、メモリ704は、非一時的なコンピュータ読み取り可能な媒体などの任意のコンピュータ読み取り可能な媒体によって具現化されてもよい。
図1および
図2には1つのメモリのみが示されているが、複数のメモリを含んでもよいことは理解される。
【0061】
インターフェース706は、大まかには、情報を送受信する過程で他の外部ネットワーク要素と共に信号を送受信するように構成されるデータインターフェースと通信インターフェースを含んでもよい。例えば、インターフェース706は、入力/出力(input/output、I/O)機器と有線トランシーバまたは無線のトランシーバを含んでもよい。
図1および
図2には1つのメモリのみが示されているが、複数のインターフェースを含んでもよいことは理解される。
【0062】
プロセッサ702、メモリ704、およびインターフェース706は、ビデオ符号化機能を実行するために、システム700または800内で様々な形態で実現されてもよい。いくつかの実施形態では、システム700または800のプロセッサ702、メモリ704、およびインターフェース706は、1つ以上のシステムオンチップ(system-on-chip、SoC)上で実現される(例えば、統合される)。1つの例では、プロセッサ702、メモリ704、およびインターフェース706は、ビデオ符号化および復号化アプリケーションを実行することを含む、オペレーティングシステム(operating system、OS)環境におけるアプリケーション処理を担当するアプリケーションプロセッサ(application processor、AP)SoC上で統合される。別の例では、プロセッサ702、メモリ704、およびインターフェース706は、リアルタイムオペレーティングシステム(real-time operating system、RTOS)における画像およびビデオ処理に専用のGPUまたはISPチップなどの、ビデオ符号化用の専用プロセッサチップ上で統合される。
【0063】
図7に示すように、符号化システム700において、プロセッサ702は、エンコーダ701などの1つ以上のモジュールを含んでもよい。
図7ではエンコーダ701が1つのプロセッサ702内にあるように示されているが、エンコーダ701が、互いに近接または離れる異なるプロセッサ上で実現されることができる1つ以上のサブモジュールを含んでもよいことは理解される。エンコーダ701(および任意の対応するサブモジュールまたはサブユニット)は、他のコンポーネントと共に使用するように設計されるプロセッサ702のハードウェアユニット(例えば、集積回路の一部)であるか、またはプロセッサ702が少なくともプログラム(すなわち、命令)の一部を実行することによって実現するソフトウェアユニットである。プログラムの命令は、メモリ704などのコンピュータ読み取り可能な媒体に格納されており、プロセッサ702によって実行されるとき、以下で詳細に説明される画像分割、インター予測、イントラ予測、変換、量子化、フィルタリング、エントロピー符号化などのビデオ符号化に関連する1つ以上の機能を持つプロセスを実行してもよい。
【0064】
同様に、
図8に示すように、復号化システム800において、プロセッサ702は、デコーダ801などの1つ以上のモジュールを含んでもよい。
図8ではデコーダ801が1つのプロセッサ702内にあるように示されているが、デコーダ801が、互いに近接または離れる異なるプロセッサ上で実現されることができる1つ以上のサブモジュールを含んでもよいことは理解される。デコーダ801(および任意の対応するサブモジュールまたはサブユニット)は、他のコンポーネントと共に使用するように設計されるプロセッサ702のハードウェアユニット(例えば、集積回路の一部)であるか、またはプロセッサ702が少なくともプログラム(すなわち、命令)の一部を実行することによって実現するソフトウェアユニットである。プログラムの命令は、メモリ704などのコンピュータ読み取り可能な媒体に格納されており、プロセッサ702によって実行されるとき、以下で詳細に説明されるエントロピー復号化、逆量子化、逆変換、インター予測、イントラ予測、フィルタリングなどのビデオ復号化に関連する1つ以上の機能を持つプロセスを実行してもよい。
【0065】
図9は、本開示のいくつかの実施形態に係る、
図7における符号化システム700内の例示的なエンコーダ701の詳細なブロック図である。
図9に示すように、エンコーダ701は、パーティションモジュール902、インター予測モジュール904、イントラ予測モジュール906、変換モジュール908、量子化モジュール910、逆量子化モジュール912、逆変換モジュール914、フィルタモジュール916、バッファモジュール918、および符号化モジュール920を含んでもよい。
図9に示されている各要素が、ビデオエンコーダにおける互いに異なる特性的な機能を表すように独立して表現されており、各コンポーネントが個別のハードウェアの構成単位または単一のソフトウェアによって形成されることを意味するものではないことは理解される。つまり、各要素は、説明の便宜上要素として列挙するために含まれており、少なくとも2つの要素が組み合わされて単一の要素を形成したり、ある要素が複数の要素に分割されて機能を実行したりしてもよい。また、これらの要素のうち、本開示で説明される機能を実行するための必須要素ではなく、むしろ性能を向上させるための選択的な要素であることは理解される。さらに、これらの要素が、電子ハードウェア、ファームウェア、コンピュータソフトウェア、またはそれらの任意の組み合わせを用いて実現されてもよいことは理解される。このような要素がハードウェア、ファームウェア、またはソフトウェアとして実現されるか否かは、エンコーダ701に課される特定のアプリケーションと設計上の制約に依存する。
【0066】
パーティションモジュール902は、ビデオの入力画像を少なくとも1つの処理ユニットに分割するように構成されてもよい。1つの画像は、ビデオの1つのフレームまたはビデオの1つのフィールドであり得る。いくつかの実施形態では、1つの画像は、1つのモノクロフォーマットの輝度サンプルの配列、または1つの輝度サンプルの配列と2つの対応する色度サンプルの配列を含む。この際で、処理ユニットは、予測ユニット(prediction unit、PU)、変換ユニット(transform unit、TU)、または符号化ユニット(coding unit、CU)であり得る。パーティションモジュール902は、画像を複数の符号化ユニット、複数の予測ユニット、および複数の変換ユニットの組み合わせに分割し、予め決められた基準(例えば、コスト関数)に基づいて符号化ユニット、予測ユニット、および変換ユニットの組み合わせを選択することによって画像を符号化してもよい。
【0067】
H.265/HEVCと同様に、H.266/VVCもブロックに基づく混合空間および時間予測符号化方案である。
図11に示すように、符号化時に、まず、入力画像1100をパーティションモジュール902によって正方形のブロック、すなわちCTU1102に分割される。例えば、CTU1102は、128×128ピクセルのブロックであり得る。
図12に示すように、画像1100内の各CTU1102は、パーティションモジュール902によって1つ以上のCU1202に分割され、1つ以上のCU1202は予測と変換に使用されることができる。H.265/HEVCとは異なり、H.266/VVCにおいて、CU1202は、矩形または正方形であり、予測ユニットや変換ユニットにさらに分割することなく符号化されることができる。例えば、
図12に示すように、CTU1102からCU1202への分割は、4分木分割(実線で示されている)、2分木分割(破線で示されている)、および3分木分割(一点鎖線で示されている)を含んでもよい。いくつかの実施形態によれば、各CU1202は、そのルートCTU1102と同じ大きさであってもよいし、又は4×4ブロックという小さなサイズのルートCTU1102のサブ分割であってもよい。
【0068】
図9を参照すると、インター予測モジュール904は、予測ユニットに対してインター予測を実行するように構成されてもよく、イントラ予測モジュール906は、予測ユニットに対してイントラ予測を実行するように構成されてもよい。予測ユニットに対してインター予測を使用するか、またはイントラ予測を実行するかを決定し、各予測方法に応じて具体的な情報(例えば、イントラ予測モード、動きベクトル、参照画像など)を決定してもよい。この際、予測を実行するための処理ユニットと、予測方法と具体的な内容を決定するための処理ユニットは、異なってもよい。例えば、予測方法と予測モードは予測ユニット内で決定され、予測は変換ユニット内で実行されてもよい。生成された予測ブロックと元のブロックとの間の残差ブロック内の残差係数は、変換モジュール908に入力されてもよい。また、予測用の予測モード情報、動きベクトル情報などは、残差係数または量子化レベルとともに、符号化モジュール920によってビットストリーム内に符号化されてもよい。特定の符号化モードでは、元のブロックが、予測モジュール904または906を介して予測ブロックを生成することなく、そのまま符号化されることがあることは理解される。また、特定の符号化モードでは、予測、変換、および/または量子化がスキップされることもあることは理解される。
【0069】
いくつかの実施形態では、インター予測モジュール904は、現在の画像の前または現在の画像の後の画像のうち、少なくとも1つの画像に関する情報に基づいて予測ユニットを予測してもよく、場合によっては、現在の画像内で既に符号化された部分領域に関する情報に基づいて予測ユニットを予測してもよい。インター予測モジュール904は、参照画像補間モジュール、動き予測モジュール、および動き補償モジュール(図示せず)などのサブモジュールを含んでもよい。例えば、参照画像補間モジュールは、バッファモジュール918から参照画像情報を受信し、参照画像から整数ピクセル以下のピクセル情報を生成してもよい。輝度ピクセルの場合、フィルタ係数が変化する、離散コサイン変換(discrete cosine transform、DCT)に基づく8タップ補間フィルタを用いて、1/4ピクセル単位で整数ピクセル以下のピクセル情報を生成してもよい。色差信号の場合、フィルタ係数が変化する、DCTに基づく4タップ補間フィルタを用いて、1/8ピクセル単位で整数ピクセル以下のピクセル情報を生成してもよい。動き予測モジュールは、参照画像補間部によって補間された参照画像に基づいて動き予測を実行してもよい。動きベクトルを算出する方法として、フルサーチベースのブロックマッチングアルゴリズム(full search-based block matching algorithm、FBMA)、3ステップサーチ(three-step search、TSS)、新しい3ステップサーチアルゴリズム(new three-step search algorithm、NTS)などの様々な方法を使用してもよい。動きベクトルは、補間されたピクセルに基づいて、1/2、1/4、または1/16ピクセル単位または整数ピクセルの動きベクトル値を持ってもよい。動き予測モジュードは、動き予測方法を変えることによって、現在の予測ユニットを予測してもよい。スキップ法、マージ法、高度動きベクトル予測(advanced motion vector prediction、AMVP)法、ブロック内コピー法などの様々な方法を、動き予測方法として使用してもよい。
【0070】
いくつかの実施形態では、イントラ予測モジュール906は、現在画像内のピクセル情報である現在ブロックの周囲の参照ピクセルに関する情報に基づいて、予測ユニットを生成してもよい。参照ピクセルは、現在ブロックに隣接していない参照行内に位置してもよい。現在の予測ユニットの近隣でのブロックがインター予測が実行されたブロックであり、そのため参照ピクセルがインター予測が実行されたピクセルである場合、インター予測が実行されたブロックに含まれる参照ピクセルが、イントラ予測が実行された近隣でのブロックの参照ピクセル情報の代わりに使用されてもよい。つまり、参照ピクセルが利用できない場合、利用可能な参照ピクセルのうち少なくとも1つの参照ピクセルが、利用できない参照ピクセル情報の代わりに使用されてもよい。イントラ予測において、予測モードは、予測方向に応じて参照ピクセル情報を使用する角度予測モードと、予測を実行する際に方向情報を使用しない非角度予測モードを有してもよい。輝度情報を予測するためのモードと、色差情報を予測するためのモードは異なっていてもよく、輝度情報を予測するためのイントラ予測モード情報または予測された輝度信号情報は、色度情報を予測するために用いられてもよい。イントラ予測を実行する際に、予測ユニットのサイズが変換ユニットのサイズと同じである場合、予測ユニットの左側のピクセル、左上側のピクセル、および上側のピクセルに基づいて、予測ユニットに対してイントラ予測を実行してもよい。しかし、イントラ予測を実行する際に、予測ユニットのサイズが変換ユニットのサイズと異なる場合、変換ユニットに基づいて参照ピクセルを用いてイントラ予測を実行してもよい。
【0071】
イントラ予測方法では、参照ピクセルに適応型イントラ平滑(adaptive intra smoothing、AIS)フィルタを応用した後、予測モードに応じて予測ブロックを生成してもよい。参照ピクセルに応用されるAISフィルタの種類は、変化することがある。イントラ予測方法を実行するために、現在の予測ユニットの隣接に存在する予測ユニットのイントラ予測モードから現在の予測ユニットのイントラ予測モードを予測してもよい。現在の予測ユニットの予測モードが隣接予測ユニットから予測されたモード情報を用いて予測されるときに、現在の予測ユニットのイントラ予測モードが近隣での予測ユニットと同じである場合、現在の予測ユニットの予測モードが近隣での予測ユニットと同じであることを指示する情報が、予め決められたフラグ情報を用いて伝送されてもよく、現在の予測ユニットと近隣での予測ユニットの予測モードが互いに異なる場合、現在ブロックの予測モード情報が、追加のフラグ情報によって符号化されてもよい。イントラ予測モジュール906によって実行される例示イントラ予測手順の様々な方面は、
図13A~13Cに示されている。
【0072】
例えば、
図13Aは、本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットを使用する第1例示イントラ予測手順1300を示す図である。
図13Bは、本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットを使用する第2例示イントラ予測手順1325を示す図である。
図13Cは、本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットを使用する第3例示イントラ予測手順1350を示す図である。
図13A~13Cについて、
図9のイントラ予測モジュール906と組み合わせて説明される。
【0073】
図9および
図13Aを参照すると、イントラ予測モジュール906によって、Y、Cb、およびCrのツリー構造が共有されている場合、輝度MRLイントラ予測のための同じ参照行がCCLM(色度イントラ予測に応用される。そうでない場合、従来のVVC仕様で定義された参照行がCCLM色度イントラ予測に使用される。例えば、参照行x(例えば、
図13Aの非隣接参照行1301または参照行4)が輝度イントラ予測に使用され、MRL内のref_line_idxによって指定されていると仮定すると、輝度参照行xと行x+1(例えば、
図13Aの非隣接参照行1303または参照行4と5)と、色度サンプル行floor((x+1)/2)(例えば、
図13Aの非隣接参照行1305または参照行2)がCCLMイントラ予測に使用され、ここで関数floor(x)はxの整数部分を表す。
図13Aに示された例示イントラ予測手順1300は、デコーダに送信されるビットストリーム内の構文要素に対する変更を必要としない。イントラ予測モジュール906では、符号化と復号化のプロセスに対するいくつかの補正のみが必要とされる。
【0074】
応用に応じて、xが奇数である場合、色度行floor((x-1)/2)の代わりに、色度行floor((x+1)/2)は、輝度行xとx+1とともに、CCLMにおいて使用されることができる。上述のように、この実施形態は、Y、Cb、およびCrのツリー構造が共有されている場合、例えば、treeTypeの値がDUAL_TREE_CHROMAではない場合にのみ応用されてもよい。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAである場合、
図13Bに示されている実施形態が実行されてもよい。
【0075】
図9および
図13Bを参照すると、CCLM色度イントラ予測の参照行インデックスは、輝度MRLイントラ予測の参照行インデックスとは独立して伝送されてもよい。例えば、intra_cclm_ref_idxがxであり、xが0からNまでの整数であると仮定すると、隣接する輝度サンプル行xと行x+1(例えば、
図13Bの非隣接参照行1303または参照行2と3)と、色度サンプル行floor(x/2+1/2)(例えば、
図13Bの非隣接参照行1305または参照行2)がCCLMイントラ予測に使用され、floor(x)はxの整数部分を表す。intra_cclm_ref_idxの値は、CCLM輝度サンプル座標内にある(例えば、
図13Bの非隣接参照行1303または参照行2と3)。応用に応じて、xが奇数である場合、色度行floor(x/2+1/2)の代わりに、色度参照行floor(x/2-1/2)は、輝度サンプル行xとx+1とともに、CCLMイントラ予測に使用されることができる。
【0076】
図9および
図13Bを参照すると、エンコーダ701は、ビットストリーム内に例示的なcoding_unit()構文要素を含んでもよい。cclm_mode_flagの値が1と等しい場合、追加の構文要素intra_cclm_ref_idxが伝送される。イントラ予測モジュール906によって生成される例示的なcoding_unit()構文要素の例は、以下の表5に示されている。
【0077】
【0078】
intra_cclm_ref_idx構文要素(例えば、イントラ予測モジュール906によって生成される)は、CCLM色度イントラ予測に使用される参照行を指定する。intra_cclm_ref_idxの値は、輝度サンプル座標(例えば、
図13Bの非隣接参照行1301または参照行4)で指定される。隣接する輝度サンプル行であるintra_cclm_ref_idx、intra_cclm_ref_idx+1、および色度サンプル行floor(intra_cclm_ref_idx/2+1/2)が、CCLMイントラ予測に使用される。intra_cclm_ref_idxが存在しない場合、その値が0であると推測される。
【0079】
intra_cclm_ref_idxが偶数である場合、隣接する輝度サンプル行であるintra_cclm_ref_idx、intra_cclm_ref_idx+1、および色度サンプル行floor(intra_cclm_ref_idx/2+1/2)は、CCLMイントラ予測に使用される。intra_cclm_ref_idxが奇数である場合、隣接する輝度サンプル行であるintra_cclm_ref_idx、intra_cclm_ref_idx+1、および色度サンプル行floor(intra_cclm_ref_idx/2-1/2)は、CCLMイントラ予測に使用される。intra_cclm_ref_idxが存在しない場合、その値が0であると推測される。
図13Bに示されている実施形態は、Y、Cb、およびCrのツリー構造が共有されていない場合でも、例えば、つまりtreeTypeの値がDUAL_TREE_CHROMAを示すように設定されている場合でも、応用されてもよい。
【0080】
図9および
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有されている場合、CCLM色度イントラ予測の参照行インデックスと輝度MRL(マルチ参照行)イントラ予測の参照行インデックスとの差分(デルタ値)が、対応する参照行インデックスの代わりに伝送される。
図13Bと
図13Cに示された例示的な実施形態の違い(および
図13Cの実施形態との相違)は、CCLMの参照行(例えば、
図13Cの非隣接参照行1305または参照行1)が、輝度MRLの参照行インデックス(例えば、
図13Cの非隣接参照行1301または参照行4)とは独立して表されてもよい点である。しかし、CCLMの参照行自身のインデックスを伝送する代わりに、輝度MRL参照行のインデックスからの差分のみが伝送される。intra_cclm_ref_idx と delta_intra_cclm_ref_idxの値は、
図13Bと同様に、輝度サンプル座標内にある。intra_cclm_ref_idxの値は、イントラ予測モジュール906によって式(7)に従って算出されてもよい。
【0081】
【0082】
式(7)に従い、
図13Cに示された例示的な参照行を用いると、intra_luma_ref_idxの値とdelta_intra_cclm_ref_idxの値は、それぞれ4と-2である。cclm_luma_ref_lineの値は、4+(-2)=2として算出されてもよく、これは、cclm_luma_ref_lineの輝度サンプル行(例えば、
図13Cの非隣接参照行1303または参照行2)とcclm_luma_ref_line+1(例えば、
図13Cの非隣接参照行1303または参照行3)および色度サンプル行floor(cclm_luma_ref_line/2+1/2)(例えば、
図13Cの非隣接参照行1305または参照行1)が、CCLM色度イントラ予測に使用されることを示す。
【0083】
図13Bに示された実施形態と同様に、応用に応じて、cclm_luma_ref_lineが奇数である場合、色度サンプル行floor(cclm_luma_ref_line/2-1/2)は、輝度参照行cclm_luma_ref_lineとcclm_luma_ref_line+1とともに、
図13Cの実施形態におけるCCLM色度イントラ予測にも使用されることができる。
【0084】
図13Cと組み合わせて説明された実施形態は、Y、Cb、およびCrのツリー構造が共有されている場合、例えば、treeTypeの値がDUAL_TREE_CHROMAと等しくない場合にのみ応用されてもよい。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAである場合、
図13Cに関連する2つの可能な実施形態がある。いくつかの実施形態では、以下の表6に示されているcoding_unit()構文要素が使用されるが、いくつかの実施形態では、以下の表7に示されているcoding_unit()構文要素が使用されてもよい。
【0085】
【0086】
【0087】
表6と
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有され、すなわち、treeTypeの値がDUAL_TREE_CHROMAと等しくなく、かつ、cclm_mode_flagの値が1である場合、追加の構文要素delta_intra_cclm_idx_present_flagは、イントラ予測モジュール906によって生成され、ビットストリーム内で伝送されてもよい。delta_intra_cclm_idx_present_flagの値が1である場合、追加の構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送されてもよい。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAと等しい場合、デコーダ801によってdelta_intra_cclm_idx_present_flagの値が0であると推測され、
図13Aに示されている方法が応用されてもよい。この場合、追加の構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagは伝送されないこともある。
【0088】
再び表6と
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有され、すなわち、treeTypeの値がDUAL_TREE_CHROMAと等しくなく、かつ、cclm_mode_flagの値が1である場合、追加の構文要素delta_intra_cclm_idx_present_flagは、イントラ予測モジュール906によって生成され、ビットストリーム内で伝送されてもよい。delta_intra_cclm_idx_present_flagの値が1である場合、追加の構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送される。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAである場合、構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagの代わりに、
図13Bと組み合わせて上記の構文要素intra_cclm_ref_idxは生成され、ビットストリーム内で送信されてもよい。
【0089】
引き続き表6と
図13Cを参照すると、delta_intra_cclm_idx_present_flag構文要素の値が1であることは、abs_deta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送されることを表す。delta_intra_cclm_idx_present_flagの値が0であることは、abs_deta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送されず、delta_intra_cclm_idxの値が0であることを表す。この場合、輝度サンプルの参照行intra_luma_ref_idxとintra_luma_ref_idx+1、および色度サンプルの行floor(intra_luma_ref_idx/2+1/2)が、CCLM色度イントラ予測に使用されることになる。treeTypeの値がDUAL_TREE_CHROMAである場合、デコーダ801によってdelta_intra_cclm_idx_present_flagの値が0であると推測されてもよい。
【0090】
再び表6と
図13Cを参照すると、abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagは、delta_intra_cclm_idx構文要素の値を表す。delta_intra_cclm_sign_flagの値が0であることは、delta_intra_cclm_idxが負の数であることを表し、delta_intra_cclm_sign_flagの値が1であることは、delta_intra_cclm_idxが正の数であることを表す。CCLMに使用される輝度参照行cclm_luma_ref_lineの参照行の値は、cclm_luma_ref_line=intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag-1)*delta_intra_cclm_idxとして算出される。輝度サンプルの参照行cclm_luma_ref_lineとcclm_luma_ref_line+1、および色度サンプルの行floor(cclm_luma_ref_line/2+1/2)が、CCLM色度イントラ予測に使用されることになる。
【0091】
表7と
図13Cを参照すると、abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagは、delta_intra_cclm_idxの値を表す。例えば、delta_intra_cclm_sign_flagの値が0であることは、delta_intra_cclm_idxが負の数であることを表し、delta_intra_cclm_sign_flagの値が1であることは、delta_intra_cclm_idxが正の数であることを表す。CCLMに使用される輝度参照行cclm_luma_ref_lineの参照行の値は、cclm_luma_ref_line=intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag-1)*delta_intra_cclm_idxとして算出される。cclm_luma_ref_lineが偶数である場合、輝度サンプルの参照行cclm_luma_ref_lineとcclm_luma_ref_line+1、および色度サンプルの行floor(cclm_luma_ref_line/2+1/2)が、CCLM色度イントラ予測に使用されてもよい。cclm_luma_ref_lineが奇数である場合、輝度サンプルの参照行cclm_luma_ref_lineとcclm_luma_ref_line+1、および色度サンプルの行floor(cclm_luma_ref_line/2-1/2)が、CCLM色度イントラ予測に使用されることになる。
【0092】
図9に示すように、予測ユニットと、当該予測ユニットと元のブロックとの差分値である残差係数情報を含む残差ブロックが生成されてもよく、当該予測ユニットは、予測モジュール904または906によって生成された予測ユニットに基づいて予測が行われたものである。生成された残差ブロックは、変換モジュール908に入力されてもよい。
【0093】
変換モジュール908は、DCT、離散サイン変換(discrete sine transform、DST)、カルーネン・レーヴ変換(Karhunen-Loeve transform、KLT)、または変換スキップなどの変換方法を用いて、元のブロックと、予測モジュール904および906を介して生成された予測ユニットの残差係数情報とを含む残差ブロックを変換するように構成されてもよい。残差ブロックを生成するための予測ユニットのイントラ予測モード情報に基づいて、DCT、DST、またはKLTを応用するか否かを決定することにより、残差ブロックを変換してもよい。変換モジュール908は、残差ブロック内のビデオ信号を画素領域から変換領域(例えば、変換方法に依存する周波数領域)に変換することができる。いくつかの例では、変換モジュール908がスキップされ、ビデオ信号が変換領域に変換されないことがあることは理解される。
【0094】
量子化モジュール910は、符号化ブロック内の各位置の係数を量子化することにより、当該位置の量子化レベルを生成するように構成されてもよい。現在ブロックは、残差ブロックであり得る。つまり、量子化モジュール910は、各残差ブロックに対して量子化処理を実行することができる。残差ブロックは、輝度および/または色度情報などの、変換されたまたは変換されていないビデオ信号/データとそれぞれ関連付けられるN×M個の位置(サンプル)を含んでいてもよく、NとMは正の整数である。本開示において、量子化前に、特定の位置の変換されたまたは変換されていないビデオ信号は、ここで「係数」と呼ばれる。量子化後に、当該係数の量子化値は、ここで「量子化レベル」または「レベル」と呼ばれる。
【0095】
量子化は、変換されたまたは変換されていないビデオ信号のダイナミックレンジを減らすために用いられる。これによって、ビデオ信号を表現するために、より少ないビットが使用されることができる。量子化には通常、量子化ステップサイズで除算し、そして丸める必要があり、逆量子化(または、逆変換量子化)には、量子化ステップサイズで乗算する必要がある。量子化ステップサイズは、量子化パラメータ(quantization parameter、QP)によって表されることができる。このような量子化プロセスは、スカラー量子化(scalar quantization)と呼ばれる。符号化ブロック内の全ての係数の量子化は、独立して行われることができ、このような量子化方法は、H.264/AVCやH.265/HEVCなどの既存のいくつかのビデオ圧縮標準で使用されている。量子化におけるQPは、ビデオの画像を符号化/復号化するためのビットレートに影響を与えることができる。例えば、より高いQPは、より低いビットレートをもたらすことができ、より低いQPは、より高いビットレートをもたらすことができる。
【0096】
N×Mの符号化ブロックについて、特定の符号化走査順序が使用されて、ブロックの2次元(two-dimensional、2D)係数を係数量子化と符号化のための1次元(one-dimensional、1D)の順序に変換してもよい。通常、符号化走査は、符号化ブロックの左上隅から始まり、右下隅または右下方向の最後の非ゼロ係数/レベルで終了する。符号化走査順序が、ジグザグ走査順序、垂直(列)走査順序、水平(行)走査順序、対角線走査順序、またはそれらの任意の組み合わせなどの適切な順序を含んでもよいことは理解される。符号化ブロック内の係数の量子化は、符号化走査順序情報を利用してもよい。例えば、それは符号化走査順序に沿った前の量子化レベルの状態に依存してもよい。符号化効率をさらに向上させるために、量子化モジュール910によって、1つ以上の量子化器、例えば2つのスカラー量子化器が使用されてもよい。現在の係数を量子化するためにどの量子化器が使用されるかは、符号化走査順序における現在の係数の前の情報に依存してもよい。このような量子化プロセスは、依存量子化と呼ばれる。
【0097】
図9を参照すると、符号化モジュール920は、符号化ブロック内の各位置の量子化レベルをビットストリーム内に符号化するように構成されてもよい。いくつかの実施形態では、符号化モジュール920は、符号化ブロックに対してエントロピー符号化を実行してもよい。エントロピー符号化は、例えばEGkバイナリ化や、組み合わせたTRおよび制限付きEGkバイナリ化を含むゴロンブ・ライスバイナリ化(Golomb-Rice binarization)などの様々なバイナリ化方法を使用して、各量子化レベルをそれぞれの2進表現(例えば、バイナリビン)に変換してもよい。そして、2進表現は、エントロピー符号化アルゴリズムを用いてさらに圧縮されることができる。圧縮されたデータは、ビットストリームに追加されることができる。量子化レベルに加えて、符号化モジュール920は、例えば符号化ユニットのブロックタイプ情報、予測モード情報、分割ユニット情報、予測ユニット情報、送信ユニット情報、動きベクトル情報、参照フレーム情報、ブロック補間情報、および予測モジュール904および906から入力されるフィルタリング情報などの様々なその他の情報を符号化してもよい。いくつかの実施形態では、符号化モジュール920は、符号化ブロックに対して残差符号化を実行して、量子化レベルをビットストリームに変換してもよい。例えば、量子化後には、N×Mのブロックに対してN×M個の量子化レベルが存在し得る。これらのN×M個のレベルは、ゼロまたは非ゼロの値であり得る。レベルが2進でない場合には、非ゼロのレベルは、例えば、組み合わせたTRおよび制限付きEGkバイナリ化を用いて、さらにバイナリビンにバイナリ化されてもよい。
【0098】
非2進の構文要素は、2進のコードワードにマッピングされてもよい。通常、単純な構造のコードが使用される記号とコードワード間の双射的なマッピングは、バイナリ化と呼ばれる。2進の構文要素と非2進データのコードワードの両方の2進記号(ビンとも呼ばれる)は、2進算術符号化を用いて符号化されてもよい。CABACのコア符号化エンジンは、2つの動作モードをサポートすることができる。1つは、ビンが適応的な確率モデルを用いて符号化されるコンテキスト符号化モードであり、もう1つは、確率が1/2である固定された確率を用いるより単純なバイパスモードである。適応的な確率モデルは、コンテキストとも呼ばれ、各々のビンに対する確率モデルの割り当ては、コンテキストモデリングと呼ばれる。
【0099】
図9に示すように、逆量子化モジュール912は、量子化レベルを逆量子化するように構成されてもよく、逆変換モジュール914は、変換モジュール908によって変換された係数を逆変換するように構成されてもよい。逆量子化モジュール912と逆変換モジュール914によって生成された再構築残差ブロックは、予測モジュール904または906を介して予測された予測ユニットと組み合わせ、再構築ブロックを生成してもよい。
【0100】
フィルタモジュール916は、デブロッキングフィルタ、サンプル適応オフセット(sample adaptive offset、SAO)、および適応ループフィルタ(adaptive loop filter、ALF)の少なくとも1つを含んでもよい。デブロッキングフィルタは、再構築画像内のブロック間の境界によって生成されるブロック歪みを除去してもよい。SAOモジュールは、デブロッキングが行われたビデオに対して、画素単位で元のビデオへのオフセットを補正してもよい。ALFは、再構築およびフィルタリングされたビデオと元のビデオを比較して得られた値に基づいて実行されてもよい。バッファモジュール918は、フィルタモジュール916を介して算出された再構築ブロックまたは画像を格納するように構成されてもよく、また、インター予測が実行されるとき、再構築および格納されたブロックまたは画像は、インター予測モジュール904に提供されてもよい。
【0101】
図10は、本開示のいくつかの実施形態に係る、
図8の復号化システム800内の例示的なデコーダ801の詳細なブロック図である。
図10に示すように、デコーダ801は、復号化モジュール1002、逆量子化モジュール1004、逆変換モジュール1006、インター予測モジュール1008、イントラ予測モジュール1010、フィルタモジュール1012、およびバッファモジュール1014を含んでもよい。
図10に示されている各要素が、ビデオデコーダにおける互いに異なる特性的な機能を表すように独立して表されており、各コンポーネントが個別のハードウェアの構成単位または単一のソフトウェアによって形成されることを意味するものではないことは理解される。つまり、各要素は、説明の便宜上要素として列挙するために含まれており、少なくとも2つの要素が組み合わされて単一の要素を形成したり、ある要素が複数の要素に分割されて機能を実行したりしてもよい。また、これらの要素の中には、本開示で説明される機能を実行するための必須要素ではなく、むしろ性能を向上させるための選択的な要素であり得ることも理解される。さらに、これらの要素が、電子ハードウェア、ファームウェア、コンピュータソフトウェア、またはそれらの任意の組み合わせを用いて実現されてもよいことは理解される。このような要素がハードウェア、ファームウェア、またはソフトウェアとして実現されるか否かは、デコーダ801に課される特定の応用と設計上の制約に依存する。
【0102】
ビデオエンコーダ(例えば、エンコーダ701)からビデオビットストリームが入力されるとき、入力されたビットストリームは、ビデオエンコーダとは逆の手順で、デコーダ801によって復号化されてもよい。したがって、符号化に関して上記の復号化の一部の詳細は、説明を容易にするために省略されることがある。復号化モジュール1002は、ビットストリームを復号化することにより、符号化ブロック内の各位置の量子化レベルなど、ビットストリームに符号化された様々な情報を取得するように構成されてもよい。いくつかの実施形態では、復号化モジュール1002は、エンコーダによって実行されたエントロピー符号化(圧縮)に対応するエントロピー復号化(解凍)を実行してもよく、例えば、VLC、CAVLC、CABAC、SBAC、PIPE符号化などを用いて、2進表現(例えば、バイナリビン)を取得してもよい。復号化モジュール1002は、さらに、例えばEGkバイナリ化や、組み合わせたTRおよび制限付きEGkバイナリ化を含むゴロンブ・ライスバイナリ化を用いて、2進表現を量子化レベルに変換してもよい。変換ユニット内の位置の量子化レベルに加えて、復号化モジュール1002は、ゴロンブ・ライスバイナリ化に使用されるパラメータ(例えば、ライスパラメータ)、符号化ユニットのブロックタイプ情報、予測モード情報、パーティションユニット情報、予測ユニット情報、伝送ユニット情報、動きベクトル情報、参照フレーム情報、ブロック補間情報、およびフィルタリング情報などの様々なその他の情報を復号化してもよい。復号化プロセス中、復号化モジュール1002は、エンコーダによって使用された符号化走査順序に基づいて逆走査の方法により、ビットストリームに対して再配置を実行して、1次元の順序から2次元の再配置ブロックにデータを再構築および再配置してもよい。
【0103】
逆量子化モジュール1004は、符号化ブロック(例えば、2次元の再構築ブロック)の各位置の量子化レベルを逆量子化して、各位置の係数を取得するように構成されてもよい。いくつかの実施形態では、逆量子化モジュール1004は、エンコーダによって提供される量子化パラメータに基づいて、依存的な逆量子化を実行してもよく、量子化パラメータは、依存量子化において使用される量子化器に関連する情報、例えば、各量子化器が使用する量子化ステップサイズを含む。
【0104】
逆変換モジュール1006は、エンコーダによって実行されたDCT、DST、KLTにそれぞれ対応する逆DCT、逆DST、逆KLTなどの逆変換を実行して、データを変換領域(例えば、係数)から画素領域(例えば、輝度および/または色度情報)に戻すように構成されてもよい。いくつかの実施形態では、逆変換モジュール1006は、予測方法、現在ブロックのサイズ、予測方向などの複数の情報に応じて、変換操作(例えば、DCT、DST、KLT)を選択的に実行してもよい。
【0105】
インター予測モジュール1008とイントラ予測モジュール1010は、復号化モジュール1002によって提供される予測ブロックの生成に関する情報と、バッファモジュール1014によって提供される以前に復号化されたブロックまたは画像の情報に基づいて、予測ブロックを生成するように構成されてもよい。上述のように、エンコーダと同じ方法でイントラ予測が実行される際に、予測ユニットのサイズと変換ユニットのサイズが同じである場合、予測ユニットに対して、予測ユニットの左側のピクセル、左上側のピクセル、および上部のピクセルに基づいてイントラ予測を実行してもよい。しかし、イントラ予測が実行される際に、予測ユニットのサイズと変換ユニットのサイズが異なる場合、変換ユニットに基づいて参照ピクセルを用いてイントラ予測を実行してもよい。
【0106】
イントラ予測モジュール1010は、エンコーダ701から、輝度CU(符号化ユニット)に関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含むビットストリームを受信するように構成されてもよい。いくつかの実施形態では、イントラ予測モジュール1010は、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するように構成されてもよい。その指示は、
図13A~13Cと組み合わせる指示および/または構文要素の1つ以上として識別されてもよい。いくつかの実施形態では、イントラ予測モジュール1010は、第1参照行セット及び第2参照行セットに関連する相関関数を識別するように構成されてもよく、当該第1参照行セットは、輝度CUに隣接していなく、且つエンコーダによって輝度画素値セットを生成するために用いられ、当該第2参照行セットは、色度CUに隣接していなく、且つエンコーダによって色度画素値セットを生成するために用いられる。いくつかの実施形態では、イントラ予測モジュール1010は、当該相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを識別するように構成されてもよい。
【0107】
逆変換モジュール1006と予測モジュール1008または1010の出力から組み合わされた再構築ブロックまたは再構築画像は、フィルタモジュール1012に提供されてもよい。フィルタモジュール1012は、デブロッキングフィルタ、オフセット補正モジュール、およびALFを含んでもよい。バッファモジュール1014は、再構築画像または再構築ブロックを格納し、それをインター予測モジュール1008の参照画像または参照ブロックとして使用してもよく、また、再構築画像を出力してもよい。
【0108】
本開示の範囲に沿って、符号化モジュール920と復号化モジュール1002は、ビデオの画像を符号化するための、ビット深度および/またはビットレートに適応したライスパラメータを用いた量子化レベルバイナリ化の方式を採用して、符号化効率を向上させるように構成されてもよい。
【0109】
図14Aと
図14Bは、本開示のいくつかの実施形態に係る、ビデオ符号化の例示的な方法1400のフローチャートである。方法1400は、例えば、符号化システム700、エンコーダ701、またはイントラ予測モジュール906などのシステムによって実行されてもよい。方法1400は、以下に説明する操作1402~1424を含んでもよい。いくつかのステップが選択的であり、また、いくつかのステップが同時に実行されるか、または
図14Aと
図14Bに示されている順序とは異なる順序で実行されることがあることは理解される。
【0110】
図14Aを参照すると、1402では、当該装置は、輝度CUに隣接していない第1参照行セットを識別してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、MRL用に輝度CUに隣接していない第1参照行セット(例えば、
図13A~13Cの非隣接参照行1301)を識別してもよい。
図13A~13Cに示されている例では、輝度CUに隣接していない第1参照行セットは、例えば、参照行4を含んでもよい。非隣接参照行は、輝度CUに直接隣接していない任意の参照行を含んでもよい。言い換えると、輝度CUに対して、参照行0以外の任意の参照行が選択されてもよい。場合によっては、輝度イントラ予測のために、ノイズが最も少ない参照行が選択されてもよい。
【0111】
1404では、当該装置は、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行してもよい。例えば、
図13A~13Cを参照すると、参照行4が輝度イントラ予測(例えば、MRL)に使用されてもよい。
【0112】
1406では、当該装置は、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セットにMRLを応用することにより、輝度CUの輝度画素値セットを取得してもよい。
【0113】
1408では、当該装置は、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セットに基づいて、色度CUに隣接していない第2参照行セット(例えば、
図13A~13Cの非隣接参照行1305)を識別してもよい。第2参照行セットは、
図13A~13Cと組み合わせて上記の操作に基づいて識別されてもよい。
【0114】
1410では、当該装置は、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、および輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、
図4および
図13A~13Cと組み合わせて上記の操作に従って、オフセットa’とb’を識別してもよい。
【0115】
1412では、当該装置は、相関関数に基づいて色度イントラ予測手順を実行してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セット、第2参照行セット、相関関数、および/または輝度CUに対して推定された画素値のうちの1つ以上に基づいて、色度イントラ予測を実行してもよい。
【0116】
1414では、当該装置は、色度イントラ予測手順に基づいて色度CUの色度画素値セットを取得してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セット、第2参照行セット、相関関数、および/または輝度CUに対して推定された画素値のうちの1つ以上に基づいて実行された色度イントラ予測手順に基づいて、色度CUの色度画素値セットを取得してもよい。
【0117】
1416では、当該装置は、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットを含むビットストリームを生成してもよい。例えば、
図9を参照すると、エンコーダ701は、符号化モジュール920によって出力されるビットストリームを生成してもよい。
【0118】
図14Bを参照すると、1418では、当該装置は、色度イントラ予測手順に使用された色度CUに隣接していない第2行セットに関連する色度参照行インデックスを生成してもよい。例えば、
図9、
図13B、および
図13Cを参照すると、イントラ予測モジュール906は、色度CUに隣接していない第2行セットに関連するintra_cclm_ref_idxを生成してもよい。
【0119】
1420では、当該装置は、輝度イントラ予測手順に使用された輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用された色度CUに隣接していない第2参照行セットとの間の差分を識別してもよい。例えば、
図9および
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有されている場合、対応する参照行インデックスの代わりに、CCLM色度イントラ予測の参照行インデックスと輝度MRLイントラ予測の参照行インデックスとの差分(デルタ値)を伝送する。
【0120】
1422では、装置は、輝度イントラ予測手順に使用された輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用された色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を生成してもよい。例えば、
図9および
図13Cを参照すると、CCLMの参照行(例えば、
図13Cの非隣接参照行1305または参照行1)が、輝度MRLの参照行インデックス(例えば、
図13Cの非隣接参照行1301または参照行4)とは独立して表すことができる。しかし、CCLM自身の参照行のインデックスの伝送の代わりに、輝度MRL参照行のインデックスからの差分のみを伝送する。intra_cclm_ref_idxとdelta_intra_cclm_ref_idxの値は、
図13Bと同様に、輝度サンプル座標内にある。intra_cclm_ref_idxの値は、イントラ予測モジュール906によって式(7)に従って算出されてもよい。
【0121】
1424では、当該装置は、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットを含むビットストリームを画像デコーダに伝送してもよい。例えば、
図9および
図13Cを参照すると、エンコーダ701は、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットとを含むビットストリームをデコーダ801に伝送してもよい。
【0122】
図15は、本開示のいくつかの実施形態に係る、ビデオ復号化の例示的な方法1500のフローチャートである。方法1500は、例えば、復号化システム800、デコーダ801、またはイントラ予測モジュール1010などのシステムによって実行されてもよい。方法1500は、以下に説明する操作1502~1510を含んでもよい。いくつかのステップが選択的であり、また、いくつかのステップが同時に実行されてもよいし、または
図15に示されている順序とは異なる順序で実行されてもよいことは理解される。
【0123】
図15を参照すると、1502では、当該装置は、画像エンコーダから、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを含むビットストリームを受信してもよい。例えば、
図9および
図10を参照すると、デコーダ801は、エンコーダ701からビットストリームを受信してもよい。
【0124】
1504では、当該装置は、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別してもよい。例えば、
図10を参照すると、イントラ予測モジュール1010は、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するように構成されてもよい。その指示は、
図13A~13Cと関連付けて上記の指示および/または構文要素の1つ以上として識別されてもよい。
【0125】
1506では、当該装置は、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別してもよい。例えば、
図10を参照すると、イントラ予測モジュール1010は、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するように構成されてもよい。
【0126】
1508では、当該装置は、相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを識別してもよい。例えば、
図10を参照すると、イントラ予測モジュール1010は、当該相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを識別するように構成されてもよい。
【0127】
1510では、当該装置は、輝度CUに関連する輝度画素値と、色度CUに関連する色度画素値セットとに基づいて、強化した画像を生成してもよい。例えば、
図10を参照すると、デコーダ801は、
図13A~13Cと関連付けて上記の操作に基づいて取得された輝度画素値と色度画素値とに基づいて、強化した画像を生成するように構成されてもよい。
【0128】
本開示の様々な方面において、ここで説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現されてもよい。ソフトウェアで実現される場合、機能は、非一時的なコンピュータ読み取り可能な媒体上の命令として格納されてもよい。コンピュータ読み取り可能な媒体には、コンピュータストレージ媒体が含まれる。ストレージ媒体は、
図7および
図8のプロセッサ702のようなプロセッサによってアクセス可能な任意の利用可能な媒体であり得る。例として、限定ではないが、そのようなコンピュータ読み取り可能な媒体は、RAM、ROM、EEPROM、CD-ROMまたはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージデバイスなどのHDD、フラッシュドライブ、SSD、または命令またはデータ構造の形式で所望のプログラムコードを搬送するかまたは格納するために、モバイルデバイスやコンピュータのような処理システムによってアクセス可能なその他の任意の媒体を含むことができる。ここで使用される「ディスク(disk)」と「ディスク(disc)」には、CD、レーザーディスク、光ディスク、デジタルビデオディスク(digital video disc、DVD)、およびフロッピーディスクが含まれ、通常、ディスク(disk)は磁気的にデータを再生し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。上記の組み合わせもコンピュータ読み取り可能な媒体の範囲内に含まれるべきである。
【0129】
本開示の一方面によれば、エンコーダにより符号化を行う方法が提供される。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットを識別するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、および輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定するステップを含んでもよい。
【0130】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、相関関数に基づいて色度イントラ予測手順を実行するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、色度イントラ予測手順に基づいて色度CUに対して色度画素値セットを取得するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットを含むビットストリームを生成するステップを含んでもよい。いくつかの実施形態では、この方法は、通信インターフェイスによって、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットとを含むビットストリームを画像デコーダに伝送するステップを含んでもよい。
【0131】
いくつかの実施形態では、輝度イントラ予測手順は、MRLイントラ予測手順を含んでもよい。いくつかの実施形態では、色度イントラ予測手順は、CCLM手順を含んでもよい。
【0132】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に使用された輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスを生成するステップを含んでもよい。いくつかの実施形態では、当該ビットストリームは、輝度参照行インデックスを含むようにさらに生成されてもよい。
【0133】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、同じ値であってもよい。
【0134】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含む。
【0135】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含む。
【0136】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを生成するステップを含んでもよい。いくつかの実施形態では、当該ビットストリームは、色度参照行インデックスを含むようにさらに生成されてもよい。
【0137】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、異なる値であってもよい。
【0138】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分を識別するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を生成するステップを含んでもよい。いくつかの実施形態では、当該ビットストリームは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を含むようにさらに生成されてもよい。
【0139】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0140】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0141】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0142】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0143】
本開示の別の方面によれば、エンコーダにより符号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて色度CUに隣接していない第2参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、および輝度CUの輝度画素値セットに基づいて色度CUに関連する相関関数を推定させることができる命令を格納する。
【0144】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、相関関数に基づいて色度イントラ予測手順を実行させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、色度イントラ予測手順に基づいて色度CUの色度画素値セットを取得させることができる命令を格納する。メモリは、いくつかの実施形態では、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度CUに対して取得された輝度画素値セットと色度CUに対して取得された色度画素値セットとを含むビットストリームを生成させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行されるとき、さらに少なくとも1つのプロセッサに、輝度CUに対して取得された輝度画素値セットと色度CUに対して取得された色度画素値セットとを含むビットストリームを画像デコーダに伝送させることができる命令を格納する。
【0145】
いくつかの実施形態では、輝度イントラ予測手順は、MRLイントラ予測手順を含んでもよい。いくつかの実施形態では、色度イントラ予測手順は、CCLM手順を含んでもよい。
【0146】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスを生成させることができる命令を格納する。いくつかの実施形態では、当該ビットストリームは、輝度参照行インデックスを含むようにさらに生成されてもよい。
【0147】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、同じ値であってもよい。
【0148】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含んでもよい。
【0149】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含んでもよい。
【0150】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを生成させることができる命令を格納する。いくつかの実施形態では、当該ビットストリームは、色度参照行インデックスを含むようにさらに生成されてもよい。
【0151】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、異なる値であってもよい。
【0152】
いくつかの実施形態では、メモリは、少なくとも1つ的プロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分を識別させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を生成させることができる命令を格納する。いくつかの実施形態では、当該ビットストリームは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1的参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を含むようにさらに生成されてもよい。
【0153】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0154】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0155】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0156】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0157】
本開示のさらなる方面によれば、デコーダにより復号化を行う方法が提供される。この方法は、通信インターフェイスによって、画像エンコーダから、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを含むビットストリームを受信するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するステップを含んでもよい。
【0158】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを識別するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度CUに関連する輝度画素値と、色度CUに関連する色度画素値セットとに基づいて、強化した画像を生成するステップを含んでもよい。
【0159】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するステップを含んでもよい。いくつかの実施形態では、当該相関関数は、輝度参照行インデックスに基づいて識別されてもよい。
【0160】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、同じ値であってもよい。
【0161】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含む。
【0162】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含む。
【0163】
いくつかの実施形態では、当該ビットストリームは、さらに色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに基づいて識別されてもよい。
【0164】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、異なる値であってもよい。
【0165】
いくつかの実施形態では、当該ビットストリームは、さらに輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示とを含んでもよい。いくつかの実施形態では、当該相関関数は、デルタ値の指示に基づいて識別されてもよい。
【0166】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0167】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0168】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0169】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0170】
本開示のさらに別の方面によれば、デコーダによる復号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、画像エンコーダから、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含むビットストリームを受信させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別させることができる命令を格納する。
【0171】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、相関関数に基づいてビットストリームを復号化して輝度CUに関連する輝度画素値セットと色度CUに関連する色度画素値セットを識別させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度CUに関連する輝度画素値と色度CUに関連する色度画素値セットとに基づいて強化した画像を生成させることができる命令を格納する。
【0172】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別させることができる命令を格納する。いくつかの実施形態では、当該相関関数は、輝度参照行インデックスに基づいて識別されてもよい。
【0173】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、同じ値であってもよい。
【0174】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含む。
【0175】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含む。
【0176】
いくつかの実施形態では、当該ビットストリームは、さらに色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに基づいて識別されてもよい。
【0177】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、異なる値であってもよい。
【0178】
いくつかの実施形態では、当該ビットストリームは、さらに輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を含んでもよい。いくつかの実施形態では、当該相関関数は、デルタ値の指示に基づいて識別されてもよい。
【0179】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0180】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0181】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0182】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0183】
実施形態に関する上記の説明は、本開示の一般的な性質を明らかにするものであり、当業者は、本開示の一般的な概念を逸脱することなく、過度の実験を行うことなく、技術的な知識を応用して、このような実施形態を容易に補正および/または変更して、様々な用途に応用させることができる。したがって、このような変更や補正は、ここで提供された示唆とガイダンスに基づいて、開示されている実施形態の同等物の意味および範囲内に含まれることが意図されている。本明細書における用語や表現が、説明の目的のためのものであり、制限の目的ではないことは理解されたい。したがって、本明細書の用語や表現は、当業者が示唆とガイダンスに照らして解釈するものとする。
【0184】
本開示の実施形態は、特定の機能とそれらの関係の実現形態を説明する機能的なビルディングブロックを借助して、説明された。これらの機能的なビルディングブロックの境界は、説明の便宜上、ここでは任意に定義されている。特定の機能とそれらの関係が適切に実行される限り、代替の境界を定義することができる。
【0185】
発明の概要および要約では、1人以上の発明者が考える本開示の1つ以上の(ただしすべてではない)例示的な実施形態が記載されており、そのため、本開示および添付の特許請求の範囲をいかなる形でも制限する意図はない。
【0186】
上述したように、様々な機能ブロック、モジュール、およびステップが開示されている。提供されている配置は、例示的なものであり、限定的なものではない。したがって、機能ブロック、モジュール、およびステップは、上述の例とは異なる方法で並べ替えられたり、組み合わされたりしてもよい。同様に、いくつかの実施形態は、機能ブロック、モジュール、およびステップのサブセットのみを含んでおり、そのようなサブセットは許容される。
【0187】
本開示の幅と範囲は、上述の例示的な実施形態のいずれによっても制限されるべきではなく、以下の特許請求の範囲とその同等物に従ってのみ定義されるべきである。
【手続補正書】
【提出日】2024-12-18
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2022年6月17日に出願された出願番号が63/366,596であり且つ発明名称が「色度イントラ予測方法」である米国仮出願、2022年11月29日に出願された出願番号が63/385,310であり且つ発明名称が「色度イントラ予測方法」である米国仮出願を基礎出願とする優先権を主張し、その開示内容の全ては参照により本願に組み込まれる。
【0002】
本開示の実施形態はビデオ符号化に関する。
【背景技術】
【0003】
デジタルビデオは主流となり、デジタルテレビ、ビデオ電話、及びテレビ会議などの幅広い用途で利用されている。これらのデジタルビデオアプリケーションは、コンピューティング及び通信技術の進歩と、効率的なビデオ符号化技術によって実現可能となっている。様々なビデオ符号化技術を用いてビデオデータを圧縮してもよい。これにより、ビデオデータに対する符号化は1つ以上のビデオ符号化標準を用いて行われることができる。例示的なビデオ符号化標準は、多用途ビデオ符号化方式(versatile video coding、H.266/VVC)、高効率ビデオコーディング(high-efficiency video coding、H.265/HEVC)、高度なビデオコーディング(advanced video coding、H.264/AVC)、動画専門家グループ(moving picture expert group、MPEG)コーディングなどを含むが、これらに限定されない。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の一態様によれば、エンコーダにより符号化を行う方法が提供される。この方法は、少なくとも1つのプロセッサによって、輝度符号化ユニット(coding unit、CU)に隣接していない第1参照行セットを識別するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、及び輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定するスデップを含んでもよい。
【0005】
本開示の別の態様によれば、エンコーダにより符号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリとを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、及び輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定させることができる命令を格納する。
【0006】
本開示の更なる態様によれば、デコーダにより復号化を行う方法が提供される。この方法は、通信インターフェースによって、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含む画像エンコーダからのビットストリームを受信するスデップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するスデップを含んでもよい。
【0007】
本開示のさらに別の態様によれば、デコーダによる復号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含む画像エンコーダからのビットストリームを受信させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別させることができる命令を格納する。
【0008】
これらの例示的な実施形態は、本開示を制限または定義するために説明させるものではなく、その理解を助けるための例を提供するためのものである。追加の実施形態は、詳細な説明に記載されており、そこでさらなる説明が提供されている。
【図面の簡単な説明】
【0009】
本明細書に組み込まれており且つ明細書の一部を形成する添付図面は、本開示の実施形態を示しており、説明とともに、本開示の原理をさらに説明し、当業者が本開示を作成および使用できるようにする役割を果たす。
【
図1】画像符号化のための例示的なマルチ参照行(multiple-reference line、MRL)イントラ予測手順を示す図である。
【
図2】
図1の画像符号化のための例示的なMRLイントラ予測手順の拡張を示す図である。
【
図3】クロスコンポーネント線形モデル(cross-component linear model、CCLM)パラメータ導出のための輝度サンプルと色度サンプルを示す図である。
【
図4】CCLMイントラ予測の傾き調整手順のグラフィカル表現を示す図である。
【
図5A】VVC用のシングルツリー・パーティションを示す図である。
【
図5B】VVC用のダブルツリー・パーティションを示す図である。
【
図6】輝度イントラ予測手順と色度イントラ予測手順のための例示的な参照行を示す図である。
【
図7】本開示のいくつかの実施形態に係る例示的な符号化システムのブロック図である。
【
図8】本開示のいくつかの実施形態に係る例示的な復号化システムのブロック図である。
【
図9】
図8における符号化システム内の例示的なエンコーダの詳細なブロック図である。
【
図10】
図9における復号化システム内の例示的なデコーダの詳細なブロック図である。
【
図11】本開示のいくつかの実施形態に係る、符号化ツリーユニット(coding tree unit、CTU)に分割された例示的な画像である。
【
図12】本開示のいくつかの実施形態に係る、符号化ユニット(CU)に分割された例示的なCTUを示す図である。
【
図13A】本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとを使用する第1例示イントラ予測手順を示す図である。
【
図13B】本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとを使用する第2例示イントラ予測手順を示す図である。
【
図13C】本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとを使用する第3例示イントラ予測手順を示す図である。
【
図14A】本開示のいくつかの実施形態に係る、例示的なビデオ符号化方法のフローチャートである。
【
図14B】本開示のいくつかの実施形態に係る、例示的なビデオ符号化方法のフローチャートである。
【
図15】本開示のいくつかの実施形態に係る、例示的なビデオ復号化方法のフローチャートである。 本開示の実施形態は、添付図面を参照して説明される。
【発明を実施するための形態】
【0010】
いくつかの構成および配置について議論されているが、これは説明の目的のためだけに行われていることを理解すべきである。当業者なら、本開示の趣旨および範囲を逸脱することなく、他の構成および配置を使用できることを認識するであろう。当業者にとっては、本開示はまた、様々な他の応用にも利用してもよいことは明らかなことである。
【0011】
明細書中の「一実施形態」「実施形態」「例示的な実施形態」「いくつかの実施形態」「特定の実施形態」等への言及が、記載される実施形態が特定の特徴、構造、または特性を含んでいる可能性があることを示すものであるが、すべての実施形態が必ずしもその特定の特徴、構造、または特性を含んでいる必要はないことに留意すべきである。さらに、このような表現は必ずしも同じ実施形態を指すわけではない。また、ある実施形態と関連して特定の特徴、構造、または特性を説明する場合、当業者にとっては、明示的に記載されているか否かに関わらず、そのような特徴、構造、または特性を他の実施形態と組み合わせて実現することは知識の範囲内のことである。
【0012】
一般に、用語は少なくとも部分的には文脈における使用から理解されることができる。例えば、本明細書で使用される「1つ以上」という用語は、少なくとも部分的には文脈に応じて、単数形で任意の特徴、構造、または特性を記載するために用いられる場合もあり、複数形で特徴、構造、または特性の組み合わせを記載するために用いられる場合もある。同様に、「1つ」「1個」「当該」などの用語も、少なくとも部分的には文脈に応じて、単数形の用法を伝えるか、または複数形の用法を伝えるように理解されることができる。さらに、「基づいて」という用語は、排他的な要因セットを伝えることを必ずしも意図していないことが理解され、代わりに、少なくとも部分的には文脈に応じて、明示的に記載されていない追加的な要因の存在を許容してもよい。
【0013】
以下で、ビデオ符号化システムの様々な態様について、様々な装置および方法を参照して説明する。これらの装置および方法は、以下の詳細な説明で説明され、添付図面において、様々なモジュール、コンポーネント、回路、ステップ、操作、プロセス、アルゴリズムなど(総称して「要素」と呼ぶ)によって図示される。これらの要素は、電子ハードウェア、ファームウェア、コンピュータソフトウェア、またはそれらの任意の組み合わせを用いて実現されてもよい。このような要素がハードウェア、ファームウェア、またはソフトウェアとして実現されるか否かは、全体的なシステムに課される特定の応用および設計上の制約に依存する。
【0014】
ここで説明する技術は、様々なビデオ符号化応用のために用いられてもよい。本明細書で説明されるように、ビデオ符号化には、ビデオの符号化と復号化の両方が含まれる。ビデオの符号化と復号化は、ブロックを単位として行われてもよい。例えば、変換、量子化、予測、ループ内フィルタリング、再構築などの符号化/復号化プロセスは、符号化ブロック、変換ブロック、または予測ブロックに対して行われてもよい。本明細書では、符号化/復号化対象ブロックを「現在ブロック」と呼ぶ。例えば、現在ブロックは、現在の符号化/復号化プロセスに応じて、符号化ブロック、変換ブロック、または予測ブロックを表してもよい。また、本開示で使用される「ユニット」という用語は、特定の符号化/復号化プロセスを実行するための基本ユニットを示し、「ブロック」という用語は、予め決められたサイズのサンプル配列を示すことが理解される。特に断らない限り、「ブロック」と「ユニット」は交換可能に使用されてもよい。
【0015】
図1は、画像符号化のための例示的なマルチ参照行(MRL)イントラ予測手順を示す
図100である。
図2は、
図1の画像符号化のための例示的なMRLイントラ予測手順の拡張を示す
図200である。
図3は、CCLMパラメータ導出のための輝度サンプル302と色度サンプル304を示す
図300である。
図4は、CCLMイントラ予測の傾き調整手順のグラフィカル表現400を示す図である。
図5Aは、VVC用のシングルツリー・パーティションを示す
図500でる。
図5Bは、VVC用のダブルツリー・パーティションを示す
図525である。
図6は、輝度イントラ予測手順と色度イントラ予測手順のための例示的な参照行を示す
図600である。
【0016】
図1を参照すると、多用途ビデオ符号化方式(VVC)において、符号化ユニット(CU)108に直接隣接する参照行内の参照サンプル104に加えて、隣接していない参照サンプル106を含む隣接していない参照行のうちの1つをイントラ予測手順に使用することにより、画素値102を予測してもよい。隣接していない参照サンプル106の後者の使用は、マルチ参照行(MRL)予測と呼ばれる。VVCにおいて、MRLは無効にされており、符号化ツリーユニット(CTU)の上部に位置する符号化ユニット(CUs)に対してシグナリングされない。これによって、実施コストを最小限にする。MRLは、現在予測ブロックのイントラ予測モードが平面モードは含まれない最も可能な予測モード(MPM)で符号化される場合にのみ適用される。
【0017】
ビットストリーム内では、表1に示すように、シーケンスパラメータセット(sequence-parameter set、SPS)記述子を用いてMRLを有効または無効にしてもよい。
【0018】
【0019】
sps_mrl_enabled_flagの値が1に設定されている場合、
図1のどの行がイントラ予測に使用されるかは、表2に示すように、coding_unit()構文内で指定される。
【0020】
【0021】
図2を参照すると、MRLの拡張が提案されている。この提案では、拡張されたMRLリストがN∈{1,3,5,7,12}として定義されており、0から始まる数Nは、(N+1)番目の上参照行および左参照行を表す。テンプレートに基づくイントラモード導出(Template based intra mode derivation、TIMD)の場合、MRLリストはN∈{1,3}である。
【0022】
VVCにおいて、CCLMと呼ばれる色度イントラ予測モードが指定されている。
図3を参照すると、輝度サンプル302と色度サンプル304がCCLMパラメータ導出のために用いられてもよい。一般的な画像またはビデオコンテンツでは、画素の色成分間の信号相関性が観察されることがある。CCLMモードは、MRLを用いて再構築された輝度サンプル302から色度サンプル304を予測することにより、チャンネル間の相関性を利用する。色度イントラ予測は、式(1)のような線形モデル関数を用いて行われる。
【0023】
【0024】
ただし、P(i,j)は符号化ユニット(CU)内の色度サンプル304を表し、rec’L(i,j)は同じCUの輝度サンプル302を表す。輝度サンプル302は、4:2:0のカラーフォーマットの場合には、2:1の比率でダウンサンプリングされてもよい。CCLMパラメータであるaとbは、輝度サンプル302と色度サンプル304に基づいて導出されてもよい。
【0025】
VVCでは、3つのCCLMモード、すなわち、CCLMの左と上(CCLM left and top、CCLM_LT)、CCLMの左(CCLM left、CCLM_L)、およびCCLMの上(CCLM top、CCLM_T)が指定されている。これら3つのモードは、モデルパラメータ「a」と「b」を導出するために用いられる参照サンプルの位置について異なっている。上方境界のサンプルがCCLM_Tモードに関与し、左方境界のサンプルがCCLM_Lモードに関与する。CCLM_LTモードでは、上方境界と左方境界の両方のサンプルが使用される。全体として、CCLMモードのうちのいずれかを使用する色度イントラ予測手順には、例えば、1)対応する色度ブロックのサイズに合わせるための、輝度ブロックとその隣接する再構築サンプルのダウンサンプリング、2)再構築隣接サンプルに基づくモデルパラメータ導出、3)色度イントラ予測サンプルを生成するための、式(1)の応用、が含まれる。
【0026】
輝度CUのダウンサンプリングに関連する操作について、4:2:0のカラーフォーマットのビデオシーケンスの色度位置に合わせるために、2種類のダウンサンプリングフィルタを輝度サンプル302に応用することができる。2種類のダウンサンプリングフィルタは、いずれも、水平方向と垂直方向において2対1のダウンサンプリング比率を持ってもよい。これら2つのフィルタ(f1とf2)は、下記の式(2)に例として示されており、それぞれ「type-0」と「type-2」の4:2:0色度フォーマットのビデオコンテンツに対応している。
【0027】
【0028】
SPSレベルのフラグ情報に基づいて、2次元の6タップまたは5タップのフィルタが、現在ブロック内の輝度サンプル302とその隣接サンプルに応用される。現在ブロックの最上行がCTU境界である場合には異常が発生する。この場合、1次元フィルタ[1,2,1]/4が上記の隣接する輝度サンプル302に応用されることにより、CTU境界の上方に複数の輝度行を使用することを回避する。
【0029】
モデルパラメータの導出プロセスについて、操作(1)からのモデルパラメータ「a」と「b」は、エンコーダとデコーダの両方で、再構築された輝度サンプル302と色度サンプル304に基づいて導出され、これにより、VVCにおける任意のシグナリングオーバーヘッドを回避する。
【0030】
再び
図3を参照すると、M×Nの色度ブロック、対応する2M×2Nの輝度ブロック、輝度サンプル302、および色度サンプル304の相対的なサンプル位置が示されている。
図3では、CCLM_LTモードで使用される4つのサンプルも示されており、それらは三角形状でマークされている。それらは、上方境界でのM/4と3*M/4の位置、および左方境界でのN/4と3*N/4の位置にある。CCLM_TモードおよびCCLM_Lモードでは、上方境界と左方境界が(M+N)つのサンプルのサイズまで拡張され、モデルパラメータ導出ために用いられる4つのサンプルは、(M+N)/8、3*(M+N)/8、5*(M+N)/8、7*(M+N)/8の位置にある。
【0031】
4つのサンプルが選択されると、4つの比較操作が使用されて、そのうちの2つの最小の輝度サンプル値と2つの最大の輝度サンプル値を決定する。例えば、Xlを2つの最大の輝度サンプル値の平均値とし、Xsを2つの最小の輝度サンプル値の平均値とする。同様に、YlとYsを対応する色度サンプル値の平均値とする。そして、線形モデルパラメータ「a」と「b」は、式(3)に従って取得される。
【0032】
【0033】
式(3)において、パラメータ「a」を算出するための除算操作は、ルックアップテーブルを用いて実現されている。ルックアップテーブルを格納するメモリ量を減らすために、最大値と最小値の差である差分値とパラメータ「a」は、指数表記によって表される。ここで、差分値は、4ビットの有効部分と1つの指数によって近似される。その結果、1/差分値のテーブルは16つの要素を含む。これにより、計算の複雑さを軽減するとともに、テーブルを格納するために必要なメモリサイズを減らすという利点がある。
【0034】
符号化効率を向上させるため、強化圧縮モデル(enhanced compression model、ECM)が提案されている。ECM において、マルチモデル線形モデル(multi-model linear model、MMLM)と呼ばれるCCLMの拡張が採用されている。各MMLMモードでは、再構築された隣接サンプルは、輝度サンプル302の平均値である閾値を用いて2つのクラスに分類される。各クラスの線形モデルは、VVCにおける上記方法の代わりに、最小平均二乗(least-mean square、LMS)手順を用いて導出される。
【0035】
図4を参照すると、式(1)におけるパラメータ「a」の傾き調整は、CCLMの符号化性能をさらに向上させてもよい。例えば、CCLMは、2つのパラメータを持つモデルを用いて輝度値(lumaVal)を色度値(chromaVal)にマッピングする。傾きパラメータ「a」とバイアスパラメータ「b」は、式(4)に従ってそのマッピングを定義する。
【0036】
【0037】
さらに、傾き調整パラメータ「u」を用いて、傾きパラメータを更新する。これにより、式(5)に従ってモデルを更新することができる。
【0038】
【0039】
ただし、a’=a+u、b’=b-u*yrであり、yrは輝度サンプル302の値の平均値である。
【0040】
引き続き
図4を参照すると、傾き調整パラメータ「u」は、-4から4までの整数(-4と4を含む)として提供され、ビットストリーム内でシグナリングされる。傾き調整パラメータの単位は、1つの輝度サンプル値あたり(例えば、10ビットコンテンツの場合)の色度サンプル値の1/8である。傾き調整パラメータは、CUの上方と左方の両方の参照サンプル(例えば、「LM_CHROMA_IDX」および「MMLM_CHROMA_IDX」)を使用するCCLM手順に使用されてもよいが、「片側」モードには使用されない。この選択は、符号化効率と複雑さのトレードオフを考慮したものである。マルチモードのCCLMモデルに傾き調整が応用される場合、両方のモデルを調整することができる。そのため、1つの色度CUに対して最大2つの傾き更新がシグナリングされる可能性がある。
【0041】
高効率ビデオコーディング(HVEC)では、CTUの符号化ツリーはそのY成分、Cb成分、およびCr成分で共有されているため、1つのCUは1つの輝度CUと2つの色度CUで構成されている。VVCでは、このシングルツリー構造はPスライスとBスライスに保持されている。しかし、Iスライスでは、輝度成分と色度成分の空間的特性が異なる場合がある。一般的に、輝度は色度よりも細かいテクスチャを持っており、その結果、輝度CTU内の小さなCUの数は色度CTU内の小さなCUの数よりも多くなる。したがって、Iスライスでは輝度成分と色度成分に別々の符号化ツリーを使用することが合理的である。この場合、1つの輝度CTU(元のCTUの1つの輝度符号化ツリーブロック(coding-tree block、CTB)を1つだけ含む)が1つの符号化ツリーを形成し、1つの色度CTU(元のCTUの2つの色度CTBを含む)が1つの色度分離ツリー(chroma separate tree、CST)を形成する。VVCでは、IスライスにおけるこのCSTの設計は「ダブルツリーCTU」と呼ばれている。
【0042】
CTUレベルからCSTのパーティションを開始するには、まず輝度CTBをシグナリングし、その後に色度CTBsをシグナリングする必要がある。そのため、デコーダは、対応する64x64の色度CTBを処理する前に、128x128の輝度ブロックを処理して保存しなければならない。このような処理順序により、CTUダブルツリーがない場合と比べて、バッファサイズが4倍になる。VVCでのバッファ要件を減らすために、CSTはCTUレベルではなく、最大TUレベルから開始される。
【0043】
VVCのテストモデルにおける共通テスト条件(common test condition、CTC)では、各CTUはIスライスにおける128x128の輝度サンプルと2x64x64の色度サンプルを含み、4分木(quad-tree、QT)分割手順を用いて4つの64x64-L/32x32-C符号化ツリーノードに分割される。2つの分離された符号化ツリー(1つは輝度符号化ツリー、もう1つはCST)は、4つの64x64-L/32x32-C符号化ツリーノードの各々から開始される。現在色度CUに対してCCLMモードが色度イントラ予測手順として選択される場合、1)現在色度CBの色度隣接ブロックからの再構築サンプルと、2)現在色度CBの対応する輝度隣接ブロックと輝度配列ブロックからの再構築サンプルとが色度予測サンプルを生成するプロセスに関与する。CCLM色度CUを持つ単一のパーティションツリーがある場合、輝度成分と色度成分のパーティションは整列している。現在Cb/Cr CB内の任意の色度サンプルの再構築は、サンプルが再構築された後に行うことができる。
【0044】
したがって、
図5Aに示すように、同じCUパーティションが64x64の輝度符号化ノードと対応する32x32の色度符号化ツリーノードに応用される場合、対応するCb/Cr CUの再構築を開始する前に、全体の輝度CUの再構築を待つ必要はない。しかし、CTUがダブルツリー・パーティションを持つ場合、輝度成分と色度成分間のCUパーティションが異なる可能性があり、例えば
図5Bに示すように、輝度CUと色度CUの異なる処理順序につながる。関連するSPS構文(seq_parameter_set_rbsp())は、以下の表3に示されている。ツリー構造に関連する構文要素と表3の1つ以上の構文要素は、ビットストリームの一部として伝送されてもよい。
【0045】
【0046】
表3を参照すると、sps_qtbtt_dual_tree_intra_flagの値が1と等しいことは、Iスライスについて、各CTUが暗黙的な4分木分割を用いて64×64の輝度サンプルを持つ符号化ユニットに分割され、これらの符号化ユニットが輝度と色度の2つの分離符号化ツリー構文構造のルートとなることを指定する。sps_qtbtt_dual_tree_intra_flagの値が0と等しいことは、Iスライスについて、分離符号化ツリー構文構造が使用されないことを指定する。sps_qtbtt_dual_tree_intra_flagが存在しない場合、それが0であると推測される。sps_log2_diff_max_bt_min_qt_intra_slice_lumaがMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraYより大きい場合、sps_qtbtt_dual_tree_intra_flagの値は0に等しくなければならない。
【0047】
SPSを参照して、sps_log2_diff_min_qt_min_cb_intra_slice_chroma構文要素は、treeTypeがDUAL_TREE_CHROMAと等しい色度CTUの4分木分割によって得られる色度葉ブロック(chroma leaf block)の輝度サンプルにおける最小サイズの二進対数と、sh_slice_typeが2(I)のスライスにおけるtreeTypeがDUAL_TREE_CHROMAと等しい色度CUの輝度サンプルにおける最小符号化ブロックサイズの二進対数との間のデフォルトの差分を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1と等しい場合、このデフォルトの差分は、PH構文構造内に存在するph_log2_diff_min_qt_min_cb_chromaによって上書きされることができる。sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からMin(6,CtbLog2SizeY)-MinCbLog2SizeYまでの範囲(0とMin(6,CtbLog2SizeY)-MinCbLog2SizeYを含む)内にあってもよい。存在しない場合、sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値が0であると推測される。treeTypeがDUAL_TREE_CHROMAと等しいCTUの4分木分割によって得られる色度葉ブロックの輝度サンプルにおける最小サイズの二進対数は、式(6)に従って導出される。
【0048】
【0049】
SPSを参照して、sps_max_mtt_hierarchy_depth_intra_slice_chroma構文要素は、treeTypeがDUAL_TREE_CHROMAと等しい色度4分木葉のマルチタイプツリー分割によって得られる、sh_slice_typeが2(I)のスライス内の色度符号化ユニットに対するデフォルトの最大階層深度を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1である場合、このデフォルトの最大階層深度は、PH構文構造内に存在するph_max_mtt_hierarchy_depth_chromaによって上書きされることができる。sps_max_mtt_hierarchy_depth_intra_slice_chroma構文要素の値は、0から2*(CtbLog2SizeY-MinCbLog2SizeY)までの範囲(0と2*(CtbLog2SizeY-MinCbLog2SizeY)を含む)内にあってもよい。存在しない場合、sps_max_mtt_hierarchy_depth_intra_slice_chromaの値が0であると推測される。
【0050】
SPSを参照して、sps_log2_diff_max_bt_min_qt_intra_slice_chroma構文要素は、sh_slice_typeが2(I)のスライス内で、2分木分割を用いて分割可能な色度符号化ブロックの輝度サンプルにおける最大サイズ(幅または高さ)の二進対数と、treeTypeがDUAL_TREE_CHROMAと等しい色度CTUの4分木分割によって得られる色度葉ブロックの輝度サンプルにおける最小サイズ(幅または高さ)の二進対数との間のデフォルトの差分を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1である場合、このデフォルトの差分は、PH構文構造内に存在するph_log2_diff_max_bt_min_qt_chromaによって上書きされることができる。sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値は、0からMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCまでの範囲(0とMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCを含む)内にある必要がある。sps_log2_diff_max_bt_min_qt_intra_slice_chromaが存在しない場合、sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値が0であると推測される。
【0051】
SPSを参照して、sps_log2_diff_max_tt_min_qt_intra_slice_chroma構文要素は、sh_slice_typeが2(I)のスライス内で、3分木分割を用いて分割可能な色度符号化ブロックの輝度サンプルにおける最大サイズ(幅または高さ)の二進対数と、treeTypeがDUAL_TREE_CHROMAと等しい色度CTUの4分木分割によって得られる色度葉ブロックの輝度サンプルにおける最小サイズ(幅または高さ)の二進対数との間のデフォルトの差分を指定する。SPSを参照して、sps_partition_constraints_override_enabled_flagの値が1の場合、このデフォルトの差分は、PH構文構造内に存在するph_log2_diff_max_tt_min_qt_chromaによって上書きされることができる。sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値は、0からMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCまでの範囲(0とMin(6,CtbLog2SizeY)-MinQtLog2SizeIntraCを含む)内にある必要がある。sps_log2_diff_max_tt_min_qt_intra_slice_chromaが存在しない場合、sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値が0であると推測される。
【0052】
coding_unit()構文要素は、以下の表4に示されている。
【0053】
【0054】
パラメータ「treeType」の値がDUAL_TREE_CHROMAと等しいか否かによって、現在CUに対してCSTが応用されるか否かを決定することができる。ここで、構文要素cclm_mode_flagとcclm_mode_idxは、ビットストリーム内で伝送されてもよい。
【0055】
cclm_mode_flagの値が1であることは、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMの色度イントラ予測モードのいずれかが応用されることを指定する。cclm_mode_flagが0であることは、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMの色度イントラ予測モードのいずれも応用されないことを指定する。cclm_mode_flagが存在しない場合、それが0であると推測される。cclm_mode_idx構文要素は、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMの色度イントラ予測モードのうち、どのモードが応用されるかを指定する。
【0056】
図6を参照すると、既存のVVC技術を用いる場合、
図6に示すように、MRL輝度イントラ予測602、CCLM輝度イントラ予測604、CCLM色度イントラ予測606のための参照行が異なってもよい。輝度ブロックの上方の1行目にノイズが含まれている場合、この行を輝度イントラ予測に使用すると、最良の符号化効率が得られない。このような場合、輝度イントラ予測には代替の参照行が使用される。この場合でも、上記の1行目と2行目は常にCCLMイントラ予測に使用される。Y成分、Cb成分、およびCr成分のツリー構造が共有されている場合、符号化効率の低下を招く。
【0057】
これらおよびその他の課題を克服するため、本開示では、色度CUに隣接していない参照行を色度イントラ予測に使用する例示イントラ予測手順を提供する。例えば、いくつかの実施形態では、Y、Cb、およびCrのツリー構造が共有されている場合、輝度MRLイントラ予測のための同じ参照行がCCLM色度イントラ予測に応用される。そうでない場合、従来のVVC仕様で定義された参照行がCCLM色度イントラ予測に使用される。いくつかの実施形態では、CCLM色度イントラ予測の参照行インデックスは、輝度MRLイントラ予測の参照行インデックスとは独立して伝送されてもよい。いくつかの実施形態では、Y、Cb、およびCrのツリー構造が共有されている場合、CCLM色度イントラ予測の参照行インデックスと輝度MRLイントラ予測の参照行インデックスとの差分(デルタ値)が、対応する参照行インデックスの代わりに伝送される。例示的なイントラ予測手順の詳細は、以下で
図7~
図15と組み合わせて提供される。
【0058】
図7は、本開示のいくつかの実施形態に係る例示的な符号化システム700のブロック図である。
図8は、本開示のいくつかの実施形態に係る例示的な復号化システム800のブロック図である。各システム700または800は、コンピュータや無線通信装置などのデータ処理が可能な様々なシステムや装置に応用または組み込まれてもよい。例えば、システム700または800は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、車載コンピュータ、ゲーム機、プリンタ、測位装置、ウェアラブル電子機器、スマートセンサ、仮想現実(virtual reality、VR)装置、拡張現実(argument reality、AR)装置、またはその他の適切なデータ処理能力を持つ電子機器の全部または一部であり得る。図
7および図
8に示すように、システム700または800は、プロセッサ702、メモリ704、およびインターフェース706を含んでもよい。これらのコンポーネントは、バスで互いに接続されているように示されているが、他の接続タイプも許容される。システム700または800が、ここで説明される機能を実行するためのその他の適切なコンポーネントを含んでもよいことは理解される。
【0059】
プロセッサ702は、グラフィックス処理ユニット(graphic processing unit、GPU)、画像信号プロセッサ(image signal processor、ISP)、中央処理ユニット(central processing unit、CPU)、デジタル信号プロセッサ(digital signal processor、DSP)、テンソル処理ユニット(tensor processing unit、TPU)、ビジョン処理ユニット(vision processing unit、VPU)、ニューラル処理ユニット(neural processing unit、NPU)、シナジスティック処理ユニット(synergistic processing unit、SPU)、または物理処理ユニット(physics processing unit、PPU)などのマイクロプロセッサ、マイクロコントローラユニット(microcontroller unit、MCU)、識別用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、プログラマブル論理デバイス(programmable logic device、PLD)、ステートマシン、ゲートドロジック、ディスクリートハードウェア回路、および本開示で説明される様々な機能を実行するように構成されたその他の適切なハードウェアを含んでもよい。図7および図8には1つのプロセッサのみが示されているが、複数のプロセッサを含んでもよいことは理解される。プロセッサ702は、1つ以上の処理コアを持つハードウェアデバイスであってもよい。プロセッサ702はソフトウェアを実行してもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などと呼ばれるに関わらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などと広く解釈されるべきである。ソフトウェアは、解釈型言語、コンパイル型言語、または機械語で書かれたコンピュータ命令を含んでもよい。ソフトウェアの広いカテゴリの下では、ハードウェアに指示するその他の技術も許容される。
【0060】
メモリ704は、大まかには、メモリ(すなわち、主メモリ/システムメモリ)とストレージ(すなわち、二次メモリ)の両方を含んでもよい。例えば、メモリ704は、ランダムアクセスメモリ(random-access memory、RAM)、読み出し専用メモリ(read-only memory、ROM)、静的RAM(static RAM、SRAM)、動的RAM(dynamic RAM、DRAM)、強誘電体RAM(ferro-electric RAM、FRAM)、電気的消去可能プログラマブルROM(electrically erasable programmable ROM、EEPROM)、コンパクトディスク読み出し専用メモリ(compact disc read-only memory、CD-ROM)またはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージ装置などのハードディスクドライブ(hard disk drive、HDD)、フラッシュドライブ、ソリッドステートドライブ(solid-state drive、SSD)、またはプロセッサ702によってアクセスおよび実行可能な命令の形で所望のプログラムコードを保持または格納するために用いられることができるその他の媒体を含んでもよい。大まかには、メモリ704は、非一時的なコンピュータ読み取り可能な媒体などの任意のコンピュータ読み取り可能な媒体によって具現化されてもよい。図7および図8には1つのメモリのみが示されているが、複数のメモリを含んでもよいことは理解される。
【0061】
インターフェース706は、大まかには、情報を送受信する過程で他の外部ネットワーク要素と共に信号を送受信するように構成されるデータインターフェースと通信インターフェースを含んでもよい。例えば、インターフェース706は、入力/出力(input/output、I/O)機器と有線トランシーバまたは無線のトランシーバを含んでもよい。図7および図8には1つのインターフェースのみが示されているが、複数のインターフェースを含んでもよいことは理解される。
【0062】
プロセッサ702、メモリ704、およびインターフェース706は、ビデオ符号化機能を実行するために、システム700または800内で様々な形態で実現されてもよい。いくつかの実施形態では、システム700または800のプロセッサ702、メモリ704、およびインターフェース706は、1つ以上のシステムオンチップ(system-on-chip、SoC)上で実現される(例えば、統合される)。1つの例では、プロセッサ702、メモリ704、およびインターフェース706は、ビデオ符号化および復号化アプリケーションを実行することを含む、オペレーティングシステム(operating system、OS)環境におけるアプリケーション処理を担当するアプリケーションプロセッサ(application processor、AP)SoC上で統合される。別の例では、プロセッサ702、メモリ704、およびインターフェース706は、リアルタイムオペレーティングシステム(real-time operating system、RTOS)における画像およびビデオ処理に専用のGPUまたはISPチップなどの、ビデオ符号化用の専用プロセッサチップ上で統合される。
【0063】
図7に示すように、符号化システム700において、プロセッサ702は、エンコーダ701などの1つ以上のモジュールを含んでもよい。
図7ではエンコーダ701が1つのプロセッサ702内にあるように示されているが、エンコーダ701が、互いに近接または離れる異なるプロセッサ上で実現されることができる1つ以上のサブモジュールを含んでもよいことは理解される。エンコーダ701(および任意の対応するサブモジュールまたはサブユニット)は、他のコンポーネントと共に使用するように設計されるプロセッサ702のハードウェアユニット(例えば、集積回路の一部)であるか、またはプロセッサ702が少なくともプログラム(すなわち、命令)の一部を実行することによって実現するソフトウェアユニットである。プログラムの命令は、メモリ704などのコンピュータ読み取り可能な媒体に格納されており、プロセッサ702によって実行されるとき、以下で詳細に説明される画像分割、インター予測、イントラ予測、変換、量子化、フィルタリング、エントロピー符号化などのビデオ符号化に関連する1つ以上の機能を持つプロセスを実行してもよい。
【0064】
同様に、
図8に示すように、復号化システム800において、プロセッサ702は、デコーダ801などの1つ以上のモジュールを含んでもよい。
図8ではデコーダ801が1つのプロセッサ702内にあるように示されているが、デコーダ801が、互いに近接または離れる異なるプロセッサ上で実現されることができる1つ以上のサブモジュールを含んでもよいことは理解される。デコーダ801(および任意の対応するサブモジュールまたはサブユニット)は、他のコンポーネントと共に使用するように設計されるプロセッサ702のハードウェアユニット(例えば、集積回路の一部)であるか、またはプロセッサ702が少なくともプログラム(すなわち、命令)の一部を実行することによって実現するソフトウェアユニットである。プログラムの命令は、メモリ704などのコンピュータ読み取り可能な媒体に格納されており、プロセッサ702によって実行されるとき、以下で詳細に説明されるエントロピー復号化、逆量子化、逆変換、インター予測、イントラ予測、フィルタリングなどのビデオ復号化に関連する1つ以上の機能を持つプロセスを実行してもよい。
【0065】
図9は、本開示のいくつかの実施形態に係る、
図7における符号化システム700内の例示的なエンコーダ701の詳細なブロック図である。
図9に示すように、エンコーダ701は、パーティションモジュール902、インター予測モジュール904、イントラ予測モジュール906、変換モジュール908、量子化モジュール910、逆量子化モジュール912、逆変換モジュール914、フィルタモジュール916、バッファモジュール918、および符号化モジュール920を含んでもよい。
図9に示されている各要素が、ビデオエンコーダにおける互いに異なる特性的な機能を表すように独立して表現されており、各コンポーネントが個別のハードウェアの構成単位または単一のソフトウェアによって形成されることを意味するものではないことは理解される。つまり、各要素は、説明の便宜上要素として列挙するために含まれており、少なくとも2つの要素が組み合わされて単一の要素を形成したり、ある要素が複数の要素に分割されて機能を実行したりしてもよい。また、これらの要素のうち、本開示で説明される機能を実行するための必須要素ではなく、むしろ性能を向上させるための選択的な要素であることは理解される。さらに、これらの要素が、電子ハードウェア、ファームウェア、コンピュータソフトウェア、またはそれらの任意の組み合わせを用いて実現されてもよいことは理解される。このような要素がハードウェア、ファームウェア、またはソフトウェアとして実現されるか否かは、エンコーダ701に課される特定のアプリケーションと設計上の制約に依存する。
【0066】
パーティションモジュール902は、ビデオの入力画像を少なくとも1つの処理ユニットに分割するように構成されてもよい。1つの画像は、ビデオの1つのフレームまたはビデオの1つのフィールドであり得る。いくつかの実施形態では、1つの画像は、1つのモノクロフォーマットの輝度サンプルの配列、または1つの輝度サンプルの配列と2つの対応する色度サンプルの配列を含む。この際で、処理ユニットは、予測ユニット(prediction unit、PU)、変換ユニット(transform unit、TU)、または符号化ユニット(coding unit、CU)であり得る。パーティションモジュール902は、画像を複数の符号化ユニット、複数の予測ユニット、および複数の変換ユニットの組み合わせに分割し、予め決められた基準(例えば、コスト関数)に基づいて符号化ユニット、予測ユニット、および変換ユニットの組み合わせを選択することによって画像を符号化してもよい。
【0067】
H.265/HEVCと同様に、H.266/VVCもブロックに基づく混合空間および時間予測符号化方案である。
図11に示すように、符号化時に、まず、入力画像1100をパーティションモジュール902によって正方形のブロック、すなわちCTU1102に分割される。例えば、CTU1102は、128×128ピクセルのブロックであり得る。
図12に示すように、画像1100内の各CTU1102は、パーティションモジュール902によって1つ以上のCU1202に分割され、1つ以上のCU1202は予測と変換に使用されることができる。H.265/HEVCとは異なり、H.266/VVCにおいて、CU1202は、矩形または正方形であり、予測ユニットや変換ユニットにさらに分割することなく符号化されることができる。例えば、
図12に示すように、CTU1102からCU1202への分割は、4分木分割(実線で示されている)、2分木分割(破線で示されている)、および3分木分割(一点鎖線で示されている)を含んでもよい。いくつかの実施形態によれば、各CU1202は、そのルートCTU1102と同じ大きさであってもよいし、又は4×4ブロックという小さなサイズのルートCTU1102のサブ分割であってもよい。
【0068】
図9を参照すると、インター予測モジュール904は、予測ユニットに対してインター予測を実行するように構成されてもよく、イントラ予測モジュール906は、予測ユニットに対してイントラ予測を実行するように構成されてもよい。予測ユニットに対してインター予測を使用するか、またはイントラ予測を実行するかを決定し、各予測方法に応じて具体的な情報(例えば、イントラ予測モード、動きベクトル、参照画像など)を決定してもよい。この際、予測を実行するための処理ユニットと、予測方法と具体的な内容を決定するための処理ユニットは、異なってもよい。例えば、予測方法と予測モードは予測ユニット内で決定され、予測は変換ユニット内で実行されてもよい。生成された予測ブロックと元のブロックとの間の残差ブロック内の残差係数は、変換モジュール908に入力されてもよい。また、予測用の予測モード情報、動きベクトル情報などは、残差係数または量子化レベルとともに、符号化モジュール920によってビットストリーム内に符号化されてもよい。特定の符号化モードでは、元のブロックが、予測モジュール904または906を介して予測ブロックを生成することなく、そのまま符号化されることがあることは理解される。また、特定の符号化モードでは、予測、変換、および/または量子化がスキップされることもあることは理解される。
【0069】
いくつかの実施形態では、インター予測モジュール904は、現在の画像の前または現在の画像の後の画像のうち、少なくとも1つの画像に関する情報に基づいて予測ユニットを予測してもよく、場合によっては、現在の画像内で既に符号化された部分領域に関する情報に基づいて予測ユニットを予測してもよい。インター予測モジュール904は、参照画像補間モジュール、動き予測モジュール、および動き補償モジュール(図示せず)などのサブモジュールを含んでもよい。例えば、参照画像補間モジュールは、バッファモジュール918から参照画像情報を受信し、参照画像から整数ピクセル以下のピクセル情報を生成してもよい。輝度ピクセルの場合、フィルタ係数が変化する、離散コサイン変換(discrete cosine transform、DCT)に基づく8タップ補間フィルタを用いて、1/4ピクセル単位で整数ピクセル以下のピクセル情報を生成してもよい。色差信号の場合、フィルタ係数が変化する、DCTに基づく4タップ補間フィルタを用いて、1/8ピクセル単位で整数ピクセル以下のピクセル情報を生成してもよい。動き予測モジュールは、参照画像補間部によって補間された参照画像に基づいて動き予測を実行してもよい。動きベクトルを算出する方法として、フルサーチベースのブロックマッチングアルゴリズム(full search-based block matching algorithm、FBMA)、3ステップサーチ(three-step search、TSS)、新しい3ステップサーチアルゴリズム(new three-step search algorithm、NTS)などの様々な方法を使用してもよい。動きベクトルは、補間されたピクセルに基づいて、1/2、1/4、または1/16ピクセル単位または整数ピクセルの動きベクトル値を持ってもよい。動き予測モジュードは、動き予測方法を変えることによって、現在の予測ユニットを予測してもよい。スキップ法、マージ法、高度動きベクトル予測(advanced motion vector prediction、AMVP)法、ブロック内コピー法などの様々な方法を、動き予測方法として使用してもよい。
【0070】
いくつかの実施形態では、イントラ予測モジュール906は、現在画像内のピクセル情報である現在ブロックの周囲の参照ピクセルに関する情報に基づいて、予測ユニットを生成してもよい。参照ピクセルは、現在ブロックに隣接していない参照行内に位置してもよい。現在の予測ユニットの近隣でのブロックがインター予測が実行されたブロックであり、そのため参照ピクセルがインター予測が実行されたピクセルである場合、インター予測が実行されたブロックに含まれる参照ピクセルが、イントラ予測が実行された近隣でのブロックの参照ピクセル情報の代わりに使用されてもよい。つまり、参照ピクセルが利用できない場合、利用可能な参照ピクセルのうち少なくとも1つの参照ピクセルが、利用できない参照ピクセル情報の代わりに使用されてもよい。イントラ予測において、予測モードは、予測方向に応じて参照ピクセル情報を使用する角度予測モードと、予測を実行する際に方向情報を使用しない非角度予測モードを有してもよい。輝度情報を予測するためのモードと、色差情報を予測するためのモードは異なっていてもよく、輝度情報を予測するためのイントラ予測モード情報または予測された輝度信号情報は、色度情報を予測するために用いられてもよい。イントラ予測を実行する際に、予測ユニットのサイズが変換ユニットのサイズと同じである場合、予測ユニットの左側のピクセル、左上側のピクセル、および上側のピクセルに基づいて、予測ユニットに対してイントラ予測を実行してもよい。しかし、イントラ予測を実行する際に、予測ユニットのサイズが変換ユニットのサイズと異なる場合、変換ユニットに基づいて参照ピクセルを用いてイントラ予測を実行してもよい。
【0071】
イントラ予測方法では、参照ピクセルに適応型イントラ平滑(adaptive intra smoothing、AIS)フィルタを応用した後、予測モードに応じて予測ブロックを生成してもよい。参照ピクセルに応用されるAISフィルタの種類は、変化することがある。イントラ予測方法を実行するために、現在の予測ユニットの隣接に存在する予測ユニットのイントラ予測モードから現在の予測ユニットのイントラ予測モードを予測してもよい。現在の予測ユニットの予測モードが隣接予測ユニットから予測されたモード情報を用いて予測されるときに、現在の予測ユニットのイントラ予測モードが近隣での予測ユニットと同じである場合、現在の予測ユニットの予測モードが近隣での予測ユニットと同じであることを指示する情報が、予め決められたフラグ情報を用いて伝送されてもよく、現在の予測ユニットと近隣での予測ユニットの予測モードが互いに異なる場合、現在ブロックの予測モード情報が、追加のフラグ情報によって符号化されてもよい。イントラ予測モジュール906によって実行される例示イントラ予測手順の様々な方面は、
図13A~13Cに示されている。
【0072】
例えば、
図13Aは、本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットを使用する第1例示イントラ予測手順1300を示す図である。
図13Bは、本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットを使用する第2例示イントラ予測手順1325を示す図である。
図13Cは、本開示のいくつかの実施形態に係る、輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットを使用する第3例示イントラ予測手順1350を示す図である。
図13A~13Cについて、
図9のイントラ予測モジュール906と組み合わせて説明される。
【0073】
図9および
図13Aを参照すると、イントラ予測モジュール906によって、Y、Cb、およびCrのツリー構造が共有されている場合、輝度MRLイントラ予測のための同じ参照行がCCLM(色度イントラ予測に応用される。そうでない場合、従来のVVC仕様で定義された参照行がCCLM色度イントラ予測に使用される。例えば、参照行x(例えば、
図13Aの非隣接参照行1301または参照行4)が輝度イントラ予測に使用され、MRL内のref_line_idxによって指定されていると仮定すると、輝度参照行xと行x+1(例えば、
図13Aの非隣接参照行1303または参照行4と5)と、色度サンプル行floor((x+1)/2)(例えば、
図13Aの非隣接参照行1305または参照行2)がCCLMイントラ予測に使用され、ここで関数floor(x)はxの整数部分を表す。
図13Aに示された例示イントラ予測手順1300は、デコーダに送信されるビットストリーム内の構文要素に対する変更を必要としない。イントラ予測モジュール906では、符号化と復号化のプロセスに対するいくつかの補正のみが必要とされる。
【0074】
応用に応じて、xが奇数である場合、色度行floor((x-1)/2)の代わりに、色度行floor((x+1)/2)は、輝度行xとx+1とともに、CCLMにおいて使用されることができる。上述のように、この実施形態は、Y、Cb、およびCrのツリー構造が共有されている場合、例えば、treeTypeの値がDUAL_TREE_CHROMAではない場合にのみ応用されてもよい。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAである場合、
図13Bに示されている実施形態が実行されてもよい。
【0075】
図9および
図13Bを参照すると、CCLM色度イントラ予測の参照行インデックスは、輝度MRLイントラ予測の参照行インデックスとは独立して伝送されてもよい。例えば、intra_cclm_ref_idxがxであり、xが0からNまでの整数であると仮定すると、隣接する輝度サンプル行xと行x+1(例えば、
図13Bの非隣接参照行1303または参照行2と3)と、色度サンプル行floor(x/2+1/2)(例えば、
図13Bの非隣接参照行1305または参照行2)がCCLMイントラ予測に使用され、floor(x)はxの整数部分を表す。intra_cclm_ref_idxの値は、CCLM輝度サンプル座標内にある(例えば、
図13Bの非隣接参照行1303または参照行2と3)。応用に応じて、xが奇数である場合、色度行floor(x/2+1/2)の代わりに、色度参照行floor(x/2-1/2)は、輝度サンプル行xとx+1とともに、CCLMイントラ予測に使用されることができる。
【0076】
図9および
図13Bを参照すると、エンコーダ701は、ビットストリーム内に例示的なcoding_unit()構文要素を含んでもよい。cclm_mode_flagの値が1と等しい場合、追加の構文要素intra_cclm_ref_idxが伝送される。イントラ予測モジュール906によって生成される例示的なcoding_unit()構文要素の例は、以下の表5に示されている。
【0077】
【0078】
intra_cclm_ref_idx構文要素(例えば、イントラ予測モジュール906によって生成される)は、CCLM色度イントラ予測に使用される参照行を指定する。intra_cclm_ref_idxの値は、輝度サンプル座標(例えば、
図13Bの非隣接参照行1301または参照行4)で指定される。隣接する輝度サンプル行であるintra_cclm_ref_idx、intra_cclm_ref_idx+1、および色度サンプル行floor(intra_cclm_ref_idx/2+1/2)が、CCLMイントラ予測に使用される。intra_cclm_ref_idxが存在しない場合、その値が0であると推測される。
【0079】
intra_cclm_ref_idxが偶数である場合、隣接する輝度サンプル行であるintra_cclm_ref_idx、intra_cclm_ref_idx+1、および色度サンプル行floor(intra_cclm_ref_idx/2+1/2)は、CCLMイントラ予測に使用される。intra_cclm_ref_idxが奇数である場合、隣接する輝度サンプル行であるintra_cclm_ref_idx、intra_cclm_ref_idx+1、および色度サンプル行floor(intra_cclm_ref_idx/2-1/2)は、CCLMイントラ予測に使用される。intra_cclm_ref_idxが存在しない場合、その値が0であると推測される。
図13Bに示されている実施形態は、Y、Cb、およびCrのツリー構造が共有されていない場合でも、例えば、つまりtreeTypeの値がDUAL_TREE_CHROMAを示すように設定されている場合でも、応用されてもよい。
【0080】
図9および
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有されている場合、CCLM色度イントラ予測の参照行インデックスと輝度MRL(マルチ参照行)イントラ予測の参照行インデックスとの差分(デルタ値)が、対応する参照行インデックスの代わりに伝送される。
図13Bと
図13Cに示された例示的な実施形態の違い(および
図13Aの実施形態との相違)は、CCLMの参照行(例えば、
図13Cの非隣接参照行1305または参照行1)が、輝度MRLの参照行インデックス(例えば、
図13Cの非隣接参照行1301または参照行4)とは独立して表されてもよい点である。しかし、CCLMの参照行自身のインデックスを伝送する代わりに、輝度MRL参照行のインデックスからの差分のみが伝送される。intra_cclm_ref_idx と delta_intra_cclm_ref_idxの値は、
図13Cと同様に、輝度サンプル座標内にある。intra_cclm_ref_idxの値は、イントラ予測モジュール906によって式(7)に従って算出されてもよい。
【0081】
【0082】
式(7)に従い、
図13Cに示された例示的な参照行を用いると、intra_luma_ref_idxの値とdelta_intra_cclm_ref_idxの値は、それぞれ4と-2である。cclm_luma_ref_lineの値は、4+(-2)=2として算出されてもよく、これは、cclm_luma_ref_lineの輝度サンプル行(例えば、
図13Cの非隣接参照行1303または参照行2)とcclm_luma_ref_line+1(例えば、
図13Cの非隣接参照行1303または参照行3)および色度サンプル行floor(cclm_luma_ref_line/2+1/2)(例えば、
図13Cの非隣接参照行1305または参照行1)が、CCLM色度イントラ予測に使用されることを示す。
【0083】
図13Bに示された実施形態と同様に、応用に応じて、cclm_luma_ref_lineが奇数である場合、色度サンプル行floor(cclm_luma_ref_line/2-1/2)は、輝度参照行cclm_luma_ref_lineとcclm_luma_ref_line+1とともに、
図13Cの実施形態におけるCCLM色度イントラ予測にも使用されることができる。
【0084】
図13Cと組み合わせて説明された実施形態は、Y、Cb、およびCrのツリー構造が共有されている場合、例えば、treeTypeの値がDUAL_TREE_CHROMAと等しくない場合にのみ応用されてもよい。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAである場合、
図13Cに関連する2つの可能な実施形態がある。いくつかの実施形態では、以下の表6に示されているcoding_unit()構文要素が使用されるが、いくつかの実施形態では、以下の表7に示されているcoding_unit()構文要素が使用されてもよい。
【0085】
【0086】
【0087】
表6と
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有され、すなわち、treeTypeの値がDUAL_TREE_CHROMAと等しくなく、かつ、cclm_mode_flagの値が1である場合、追加の構文要素delta_intra_cclm_idx_present_flagは、イントラ予測モジュール906によって生成され、ビットストリーム内で伝送されてもよい。delta_intra_cclm_idx_present_flagの値が1である場合、追加の構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送されてもよい。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAと等しい場合、デコーダ801によってdelta_intra_cclm_idx_present_flagの値が0であると推測され、
図13Aに示されている方法が応用されてもよい。この場合、追加の構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagは伝送されないこともある。
【0088】
再び表6と
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有され、すなわち、treeTypeの値がDUAL_TREE_CHROMAと等しくなく、かつ、cclm_mode_flagの値が1である場合、追加の構文要素delta_intra_cclm_idx_present_flagは、イントラ予測モジュール906によって生成され、ビットストリーム内で伝送されてもよい。delta_intra_cclm_idx_present_flagの値が1である場合、追加の構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送される。Y、Cb、およびCrのツリー構造が共有されていない場合、すなわち、treeTypeの値がDUAL_TREE_CHROMAである場合、構文要素abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagの代わりに、
図13Bと組み合わせて上記の構文要素intra_cclm_ref_idxは生成され、ビットストリーム内で送信されてもよい。
【0089】
引き続き表6と
図13Cを参照すると、delta_intra_cclm_idx_present_flag構文要素の値が1であることは、abs_deta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送されることを表す。delta_intra_cclm_idx_present_flagの値が0であることは、abs_deta_intra_cclm_idxとdelta_intra_cclm_sign_flagが伝送されず、delta_intra_cclm_idxの値が0であることを表す。この場合、輝度サンプルの参照行intra_luma_ref_idxとintra_luma_ref_idx+1、および色度サンプルの行floor(intra_luma_ref_idx/2+1/2)が、CCLM色度イントラ予測に使用されることになる。treeTypeの値がDUAL_TREE_CHROMAである場合、デコーダ801によってdelta_intra_cclm_idx_present_flagの値が0であると推測されてもよい。
【0090】
再び表6と
図13Cを参照すると、abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagは、delta_intra_cclm_idx構文要素の値を表す。delta_intra_cclm_sign_flagの値が0であることは、delta_intra_cclm_idxが負の数であることを表し、delta_intra_cclm_sign_flagの値が1であることは、delta_intra_cclm_idxが正の数であることを表す。CCLMに使用される輝度参照行cclm_luma_ref_lineの参照行の値は、cclm_luma_ref_line=intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag-1)*delta_intra_cclm_idxとして算出される。輝度サンプルの参照行cclm_luma_ref_lineとcclm_luma_ref_line+1、および色度サンプルの行floor(cclm_luma_ref_line/2+1/2)が、CCLM色度イントラ予測に使用されることになる。
【0091】
表7と
図13Cを参照すると、abs_delta_intra_cclm_idxとdelta_intra_cclm_sign_flagは、delta_intra_cclm_idxの値を表す。例えば、delta_intra_cclm_sign_flagの値が0であることは、delta_intra_cclm_idxが負の数であることを表し、delta_intra_cclm_sign_flagの値が1であることは、delta_intra_cclm_idxが正の数であることを表す。CCLMに使用される輝度参照行cclm_luma_ref_lineの参照行の値は、cclm_luma_ref_line=intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag-1)*delta_intra_cclm_idxとして算出される。cclm_luma_ref_lineが偶数である場合、輝度サンプルの参照行cclm_luma_ref_lineとcclm_luma_ref_line+1、および色度サンプルの行floor(cclm_luma_ref_line/2+1/2)が、CCLM色度イントラ予測に使用されてもよい。cclm_luma_ref_lineが奇数である場合、輝度サンプルの参照行cclm_luma_ref_lineとcclm_luma_ref_line+1、および色度サンプルの行floor(cclm_luma_ref_line/2-1/2)が、CCLM色度イントラ予測に使用されることになる。
【0092】
図9に示すように、予測ユニットと、当該予測ユニットと元のブロックとの差分値である残差係数情報を含む残差ブロックが生成されてもよく、当該予測ユニットは、予測モジュール904または906によって生成された予測ユニットに基づいて予測が行われたものである。生成された残差ブロックは、変換モジュール908に入力されてもよい。
【0093】
変換モジュール908は、DCT、離散サイン変換(discrete sine transform、DST)、カルーネン・レーヴ変換(Karhunen-Loeve transform、KLT)、または変換スキップなどの変換方法を用いて、元のブロックと、予測モジュール904および906を介して生成された予測ユニットの残差係数情報とを含む残差ブロックを変換するように構成されてもよい。残差ブロックを生成するための予測ユニットのイントラ予測モード情報に基づいて、DCT、DST、またはKLTを応用するか否かを決定することにより、残差ブロックを変換してもよい。変換モジュール908は、残差ブロック内のビデオ信号を画素領域から変換領域(例えば、変換方法に依存する周波数領域)に変換することができる。いくつかの例では、変換モジュール908がスキップされ、ビデオ信号が変換領域に変換されないことがあることは理解される。
【0094】
量子化モジュール910は、符号化ブロック内の各位置の係数を量子化することにより、当該位置の量子化レベルを生成するように構成されてもよい。現在ブロックは、残差ブロックであり得る。つまり、量子化モジュール910は、各残差ブロックに対して量子化処理を実行することができる。残差ブロックは、輝度および/または色度情報などの、変換されたまたは変換されていないビデオ信号/データとそれぞれ関連付けられるN×M個の位置(サンプル)を含んでいてもよく、NとMは正の整数である。本開示において、量子化前に、特定の位置の変換されたまたは変換されていないビデオ信号は、ここで「係数」と呼ばれる。量子化後に、当該係数の量子化値は、ここで「量子化レベル」または「レベル」と呼ばれる。
【0095】
量子化は、変換されたまたは変換されていないビデオ信号のダイナミックレンジを減らすために用いられる。これによって、ビデオ信号を表現するために、より少ないビットが使用されることができる。量子化には通常、量子化ステップサイズで除算し、そして丸める必要があり、逆量子化(または、逆変換量子化)には、量子化ステップサイズで乗算する必要がある。量子化ステップサイズは、量子化パラメータ(quantization parameter、QP)によって表されることができる。このような量子化プロセスは、スカラー量子化(scalar quantization)と呼ばれる。符号化ブロック内の全ての係数の量子化は、独立して行われることができ、このような量子化方法は、H.264/AVCやH.265/HEVCなどの既存のいくつかのビデオ圧縮標準で使用されている。量子化におけるQPは、ビデオの画像を符号化/復号化するためのビットレートに影響を与えることができる。例えば、より高いQPは、より低いビットレートをもたらすことができ、より低いQPは、より高いビットレートをもたらすことができる。
【0096】
N×Mの符号化ブロックについて、特定の符号化走査順序が使用されて、ブロックの2次元(two-dimensional、2D)係数を係数量子化と符号化のための1次元(one-dimensional、1D)の順序に変換してもよい。通常、符号化走査は、符号化ブロックの左上隅から始まり、右下隅または右下方向の最後の非ゼロ係数/レベルで終了する。符号化走査順序が、ジグザグ走査順序、垂直(列)走査順序、水平(行)走査順序、対角線走査順序、またはそれらの任意の組み合わせなどの適切な順序を含んでもよいことは理解される。符号化ブロック内の係数の量子化は、符号化走査順序情報を利用してもよい。例えば、それは符号化走査順序に沿った前の量子化レベルの状態に依存してもよい。符号化効率をさらに向上させるために、量子化モジュール910によって、1つ以上の量子化器、例えば2つのスカラー量子化器が使用されてもよい。現在の係数を量子化するためにどの量子化器が使用されるかは、符号化走査順序における現在の係数の前の情報に依存してもよい。このような量子化プロセスは、依存量子化と呼ばれる。
【0097】
図9を参照すると、符号化モジュール920は、符号化ブロック内の各位置の量子化レベルをビットストリーム内に符号化するように構成されてもよい。いくつかの実施形態では、符号化モジュール920は、符号化ブロックに対してエントロピー符号化を実行してもよい。エントロピー符号化は、例えばEGkバイナリ化や、組み合わせたTRおよび制限付きEGkバイナリ化を含むゴロンブ・ライスバイナリ化(Golomb-Rice binarization)などの様々なバイナリ化方法を使用して、各量子化レベルをそれぞれの2進表現(例えば、バイナリビン)に変換してもよい。そして、2進表現は、エントロピー符号化アルゴリズムを用いてさらに圧縮されることができる。圧縮されたデータは、ビットストリームに追加されることができる。量子化レベルに加えて、符号化モジュール920は、例えば符号化ユニットのブロックタイプ情報、予測モード情報、分割ユニット情報、予測ユニット情報、送信ユニット情報、動きベクトル情報、参照フレーム情報、ブロック補間情報、および予測モジュール904および906から入力されるフィルタリング情報などの様々なその他の情報を符号化してもよい。いくつかの実施形態では、符号化モジュール920は、符号化ブロックに対して残差符号化を実行して、量子化レベルをビットストリームに変換してもよい。例えば、量子化後には、N×Mのブロックに対してN×M個の量子化レベルが存在し得る。これらのN×M個のレベルは、ゼロまたは非ゼロの値であり得る。レベルが2進でない場合には、非ゼロのレベルは、例えば、組み合わせたTRおよび制限付きEGkバイナリ化を用いて、さらにバイナリビンにバイナリ化されてもよい。
【0098】
非2進の構文要素は、2進のコードワードにマッピングされてもよい。通常、単純な構造のコードが使用される記号とコードワード間の双射的なマッピングは、バイナリ化と呼ばれる。2進の構文要素と非2進データのコードワードの両方の2進記号(ビンとも呼ばれる)は、2進算術符号化を用いて符号化されてもよい。CABACのコア符号化エンジンは、2つの動作モードをサポートすることができる。1つは、ビンが適応的な確率モデルを用いて符号化されるコンテキスト符号化モードであり、もう1つは、確率が1/2である固定された確率を用いるより単純なバイパスモードである。適応的な確率モデルは、コンテキストとも呼ばれ、各々のビンに対する確率モデルの割り当ては、コンテキストモデリングと呼ばれる。
【0099】
図9に示すように、逆量子化モジュール912は、量子化レベルを逆量子化するように構成されてもよく、逆変換モジュール914は、変換モジュール908によって変換された係数を逆変換するように構成されてもよい。逆量子化モジュール912と逆変換モジュール914によって生成された再構築残差ブロックは、予測モジュール904または906を介して予測された予測ユニットと組み合わせ、再構築ブロックを生成してもよい。
【0100】
フィルタモジュール916は、デブロッキングフィルタ、サンプル適応オフセット(sample adaptive offset、SAO)、および適応ループフィルタ(adaptive loop filter、ALF)の少なくとも1つを含んでもよい。デブロッキングフィルタは、再構築画像内のブロック間の境界によって生成されるブロック歪みを除去してもよい。SAOモジュールは、デブロッキングが行われたビデオに対して、画素単位で元のビデオへのオフセットを補正してもよい。ALFは、再構築およびフィルタリングされたビデオと元のビデオを比較して得られた値に基づいて実行されてもよい。バッファモジュール918は、フィルタモジュール916を介して算出された再構築ブロックまたは画像を格納するように構成されてもよく、また、インター予測が実行されるとき、再構築および格納されたブロックまたは画像は、インター予測モジュール904に提供されてもよい。
【0101】
図10は、本開示のいくつかの実施形態に係る、
図8の復号化システム800内の例示的なデコーダ801の詳細なブロック図である。
図10に示すように、デコーダ801は、復号化モジュール1002、逆量子化モジュール1004、逆変換モジュール1006、インター予測モジュール1008、イントラ予測モジュール1010、フィルタモジュール1012、およびバッファモジュール1014を含んでもよい。
図10に示されている各要素が、ビデオデコーダにおける互いに異なる特性的な機能を表すように独立して表されており、各コンポーネントが個別のハードウェアの構成単位または単一のソフトウェアによって形成されることを意味するものではないことは理解される。つまり、各要素は、説明の便宜上要素として列挙するために含まれており、少なくとも2つの要素が組み合わされて単一の要素を形成したり、ある要素が複数の要素に分割されて機能を実行したりしてもよい。また、これらの要素の中には、本開示で説明される機能を実行するための必須要素ではなく、むしろ性能を向上させるための選択的な要素であり得ることも理解される。さらに、これらの要素が、電子ハードウェア、ファームウェア、コンピュータソフトウェア、またはそれらの任意の組み合わせを用いて実現されてもよいことは理解される。このような要素がハードウェア、ファームウェア、またはソフトウェアとして実現されるか否かは、デコーダ801に課される特定の応用と設計上の制約に依存する。
【0102】
ビデオエンコーダ(例えば、エンコーダ701)からビデオビットストリームが入力されるとき、入力されたビットストリームは、ビデオエンコーダとは逆の手順で、デコーダ801によって復号化されてもよい。したがって、符号化に関して上記の復号化の一部の詳細は、説明を容易にするために省略されることがある。復号化モジュール1002は、ビットストリームを復号化することにより、符号化ブロック内の各位置の量子化レベルなど、ビットストリームに符号化された様々な情報を取得するように構成されてもよい。いくつかの実施形態では、復号化モジュール1002は、エンコーダによって実行されたエントロピー符号化(圧縮)に対応するエントロピー復号化(解凍)を実行してもよく、例えば、VLC、CAVLC、CABAC、SBAC、PIPE符号化などを用いて、2進表現(例えば、バイナリビン)を取得してもよい。復号化モジュール1002は、さらに、例えばEGkバイナリ化や、組み合わせたTRおよび制限付きEGkバイナリ化を含むゴロンブ・ライスバイナリ化を用いて、2進表現を量子化レベルに変換してもよい。変換ユニット内の位置の量子化レベルに加えて、復号化モジュール1002は、ゴロンブ・ライスバイナリ化に使用されるパラメータ(例えば、ライスパラメータ)、符号化ユニットのブロックタイプ情報、予測モード情報、パーティションユニット情報、予測ユニット情報、伝送ユニット情報、動きベクトル情報、参照フレーム情報、ブロック補間情報、およびフィルタリング情報などの様々なその他の情報を復号化してもよい。復号化プロセス中、復号化モジュール1002は、エンコーダによって使用された符号化走査順序に基づいて逆走査の方法により、ビットストリームに対して再配置を実行して、1次元の順序から2次元の再配置ブロックにデータを再構築および再配置してもよい。
【0103】
逆量子化モジュール1004は、符号化ブロック(例えば、2次元の再構築ブロック)の各位置の量子化レベルを逆量子化して、各位置の係数を取得するように構成されてもよい。いくつかの実施形態では、逆量子化モジュール1004は、エンコーダによって提供される量子化パラメータに基づいて、依存的な逆量子化を実行してもよく、量子化パラメータは、依存量子化において使用される量子化器に関連する情報、例えば、各量子化器が使用する量子化ステップサイズを含む。
【0104】
逆変換モジュール1006は、エンコーダによって実行されたDCT、DST、KLTにそれぞれ対応する逆DCT、逆DST、逆KLTなどの逆変換を実行して、データを変換領域(例えば、係数)から画素領域(例えば、輝度および/または色度情報)に戻すように構成されてもよい。いくつかの実施形態では、逆変換モジュール1006は、予測方法、現在ブロックのサイズ、予測方向などの複数の情報に応じて、変換操作(例えば、DCT、DST、KLT)を選択的に実行してもよい。
【0105】
インター予測モジュール1008とイントラ予測モジュール1010は、復号化モジュール1002によって提供される予測ブロックの生成に関する情報と、バッファモジュール1014によって提供される以前に復号化されたブロックまたは画像の情報に基づいて、予測ブロックを生成するように構成されてもよい。上述のように、エンコーダと同じ方法でイントラ予測が実行される際に、予測ユニットのサイズと変換ユニットのサイズが同じである場合、予測ユニットに対して、予測ユニットの左側のピクセル、左上側のピクセル、および上部のピクセルに基づいてイントラ予測を実行してもよい。しかし、イントラ予測が実行される際に、予測ユニットのサイズと変換ユニットのサイズが異なる場合、変換ユニットに基づいて参照ピクセルを用いてイントラ予測を実行してもよい。
【0106】
イントラ予測モジュール1010は、エンコーダ701から、輝度CU(符号化ユニット)に関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含むビットストリームを受信するように構成されてもよい。いくつかの実施形態では、イントラ予測モジュール1010は、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するように構成されてもよい。その指示は、
図13A~13Cと組み合わせる指示および/または構文要素の1つ以上として識別されてもよい。いくつかの実施形態では、イントラ予測モジュール1010は、第1参照行セット及び第2参照行セットに関連する相関関数を識別するように構成されてもよく、当該第1参照行セットは、輝度CUに隣接していなく、且つエンコーダによって輝度画素値セットを生成するために用いられ、当該第2参照行セットは、色度CUに隣接していなく、且つエンコーダによって色度画素値セットを生成するために用いられる。いくつかの実施形態では、イントラ予測モジュール1010は、当該相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを識別するように構成されてもよい。
【0107】
逆変換モジュール1006と予測モジュール1008または1010の出力から組み合わされた再構築ブロックまたは再構築画像は、フィルタモジュール1012に提供されてもよい。フィルタモジュール1012は、デブロッキングフィルタ、オフセット補正モジュール、およびALFを含んでもよい。バッファモジュール1014は、再構築画像または再構築ブロックを格納し、それをインター予測モジュール1008の参照画像または参照ブロックとして使用してもよく、また、再構築画像を出力してもよい。
【0108】
本開示の範囲に沿って、符号化モジュール920と復号化モジュール1002は、ビデオの画像を符号化するための、ビット深度および/またはビットレートに適応したライスパラメータを用いた量子化レベルバイナリ化の方式を採用して、符号化効率を向上させるように構成されてもよい。
【0109】
図14Aと
図14Bは、本開示のいくつかの実施形態に係る、ビデオ符号化の例示的な方法1400のフローチャートである。方法1400は、例えば、符号化システム700、エンコーダ701、またはイントラ予測モジュール906などのシステムによって実行されてもよい。方法1400は、以下に説明する操作1402~1424を含んでもよい。いくつかのステップが選択的であり、また、いくつかのステップが同時に実行されるか、または
図14Aと
図14Bに示されている順序とは異なる順序で実行されることがあることは理解される。
【0110】
図14Aを参照すると、1402では、当該装置は、輝度CUに隣接していない第1参照行セットを識別してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、MRL用に輝度CUに隣接していない第1参照行セット(例えば、
図13A~13Cの非隣接参照行1301)を識別してもよい。
図13A~13Cに示されている例では、輝度CUに隣接していない第1参照行セットは、例えば、参照行4を含んでもよい。非隣接参照行は、輝度CUに直接隣接していない任意の参照行を含んでもよい。言い換えると、輝度CUに対して、参照行0以外の任意の参照行が選択されてもよい。場合によっては、輝度イントラ予測のために、ノイズが最も少ない参照行が選択されてもよい。
【0111】
1404では、当該装置は、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行してもよい。例えば、
図13A~13Cを参照すると、参照行4が輝度イントラ予測(例えば、MRL)に使用されてもよい。
【0112】
1406では、当該装置は、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セットにMRLを応用することにより、輝度CUの輝度画素値セットを取得してもよい。
【0113】
1408では、当該装置は、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セットに基づいて、色度CUに隣接していない第2参照行セット(例えば、
図13A~13Cの非隣接参照行1305)を識別してもよい。第2参照行セットは、
図13A~13Cと組み合わせて上記の操作に基づいて識別されてもよい。
【0114】
1410では、当該装置は、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、および輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、
図4および
図13A~13Cと組み合わせて上記の操作に従って、オフセットa’とb’を識別してもよい。
【0115】
1412では、当該装置は、相関関数に基づいて色度イントラ予測手順を実行してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セット、第2参照行セット、相関関数、および/または輝度CUに対して推定された画素値のうちの1つ以上に基づいて、色度イントラ予測を実行してもよい。
【0116】
1414では、当該装置は、色度イントラ予測手順に基づいて色度CUの色度画素値セットを取得してもよい。例えば、
図9および
図13A~13Cを参照すると、イントラ予測モジュール906は、第1参照行セット、第2参照行セット、相関関数、および/または輝度CUに対して推定された画素値のうちの1つ以上に基づいて実行された色度イントラ予測手順に基づいて、色度CUの色度画素値セットを取得してもよい。
【0117】
1416では、当該装置は、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットを含むビットストリームを生成してもよい。例えば、
図9を参照すると、エンコーダ701は、符号化モジュール920によって出力されるビットストリームを生成してもよい。
【0118】
図14Bを参照すると、1418では、当該装置は、色度イントラ予測手順に使用された色度CUに隣接していない第2行セットに関連する色度参照行インデックスを生成してもよい。例えば、
図9、
図13B、および
図13Cを参照すると、イントラ予測モジュール906は、色度CUに隣接していない第2
参照行セットに関連するintra_cclm_ref_idxを生成してもよい。
【0119】
1420では、当該装置は、輝度イントラ予測手順に使用された輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用された色度CUに隣接していない第2参照行セットとの間の差分を識別してもよい。例えば、
図9および
図13Cを参照すると、Y、Cb、およびCrのツリー構造が共有されている場合、対応する参照行インデックスの代わりに、CCLM色度イントラ予測の参照行インデックスと輝度MRLイントラ予測の参照行インデックスとの差分(デルタ値)を伝送する。
【0120】
1422では、装置は、輝度イントラ予測手順に使用された輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用された色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を生成してもよい。例えば、
図9および
図13Cを参照すると、CCLMの参照行(例えば、
図13Cの非隣接参照行1305または参照行1)が、輝度MRLの参照行インデックス(例えば、
図13Cの非隣接参照行1301または参照行4)とは独立して表すことができる。しかし、CCLM自身の参照行のインデックスの伝送の代わりに、輝度MRL参照行のインデックスからの差分のみを伝送する。intra_cclm_ref_idxとdelta_intra_cclm_ref_idxの値は、
図13Bと同様に、輝度サンプル座標内にある。intra_cclm_ref_idxの値は、イントラ予測モジュール906によって式(7)に従って算出されてもよい。
【0121】
1424では、当該装置は、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットを含むビットストリームを画像デコーダに伝送してもよい。例えば、
図9および
図13Cを参照すると、エンコーダ701は、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットとを含むビットストリームをデコーダ801に伝送してもよい。
【0122】
図15は、本開示のいくつかの実施形態に係る、ビデオ復号化の例示的な方法1500のフローチャートである。方法1500は、例えば、復号化システム800、デコーダ801、またはイントラ予測モジュール1010などのシステムによって実行されてもよい。方法1500は、以下に説明する操作1502~1510を含んでもよい。いくつかのステップが選択的であり、また、いくつかのステップが同時に実行されてもよいし、または
図15に示されている順序とは異なる順序で実行されてもよいことは理解される。
【0123】
図15を参照すると、1502では、当該装置は、画像エンコーダから、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを含むビットストリームを受信してもよい。例えば、
図9および
図10を参照すると、デコーダ801は、エンコーダ701からビットストリームを受信してもよい。
【0124】
1504では、当該装置は、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別してもよい。例えば、
図10を参照すると、イントラ予測モジュール1010は、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するように構成されてもよい。その指示は、
図13A~13Cと関連付けて上記の指示および/または構文要素の1つ以上として識別されてもよい。
【0125】
1506では、当該装置は、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別してもよい。例えば、
図10を参照すると、イントラ予測モジュール1010は、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するように構成されてもよい。
【0126】
1508では、当該装置は、相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを識別してもよい。例えば、
図10を参照すると、イントラ予測モジュール1010は、当該相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを識別するように構成されてもよい。
【0127】
1510では、当該装置は、輝度CUに関連する輝度画素値
セットと、色度CUに関連する色度画素値セットとに基づいて、強化した画像を生成してもよい。例えば、
図10を参照すると、デコーダ801は、
図13A~13Cと関連付けて上記の操作に基づいて取得された輝度画素値と色度画素値とに基づいて、強化した画像を生成するように構成されてもよい。
【0128】
本開示の様々な方面において、ここで説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現されてもよい。ソフトウェアで実現される場合、機能は、非一時的なコンピュータ読み取り可能な媒体上の命令として格納されてもよい。コンピュータ読み取り可能な媒体には、コンピュータストレージ媒体が含まれる。ストレージ媒体は、
図7および
図8のプロセッサ702のようなプロセッサによってアクセス可能な任意の利用可能な媒体であり得る。例として、限定ではないが、そのようなコンピュータ読み取り可能な媒体は、RAM、ROM、EEPROM、CD-ROMまたはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージデバイスなどのHDD、フラッシュドライブ、SSD、または命令またはデータ構造の形式で所望のプログラムコードを搬送するかまたは格納するために、モバイルデバイスやコンピュータのような処理システムによってアクセス可能なその他の任意の媒体を含むことができる。ここで使用される「ディスク(disk)」と「ディスク(disc)」には、CD、レーザーディスク、光ディスク、デジタルビデオディスク(digital video disc、DVD)、およびフロッピーディスクが含まれ、通常、ディスク(disk)は磁気的にデータを再生し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。上記の組み合わせもコンピュータ読み取り可能な媒体の範囲内に含まれるべきである。
【0129】
本開示の一方面によれば、エンコーダにより符号化を行う方法が提供される。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットを識別するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、および輝度CUの輝度画素値セットに基づいて、色度CUに関連する相関関数を推定するステップを含んでもよい。
【0130】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、相関関数に基づいて色度イントラ予測手順を実行するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、色度イントラ予測手順に基づいて色度CUに対して色度画素値セットを取得するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットを含むビットストリームを生成するステップを含んでもよい。いくつかの実施形態では、この方法は、通信インターフェイスによって、輝度CUに対して取得された輝度画素値セットと、色度CUに対して取得された色度画素値セットとを含むビットストリームを画像デコーダに伝送するステップを含んでもよい。
【0131】
いくつかの実施形態では、輝度イントラ予測手順は、MRLイントラ予測手順を含んでもよい。いくつかの実施形態では、色度イントラ予測手順は、CCLM手順を含んでもよい。
【0132】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に使用された輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスを生成するステップを含んでもよい。いくつかの実施形態では、当該ビットストリームは、輝度参照行インデックスを含むようにさらに生成されてもよい。
【0133】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、同じ値であってもよい。
【0134】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含む。
【0135】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含む。
【0136】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを生成するステップを含んでもよい。いくつかの実施形態では、当該ビットストリームは、色度参照行インデックスを含むようにさらに生成されてもよい。
【0137】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、異なる値であってもよい。
【0138】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分を識別するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を生成するステップを含んでもよい。いくつかの実施形態では、当該ビットストリームは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を含むようにさらに生成されてもよい。
【0139】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0140】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0141】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0142】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0143】
本開示の別の方面によれば、エンコーダにより符号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて輝度イントラ予測手順を実行させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度イントラ予測手順に基づいて輝度CUの輝度画素値セットを取得させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セットに基づいて色度CUに隣接していない第2参照行セットを識別させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していない第1参照行セット、色度CUに隣接していない第2参照行セット、および輝度CUの輝度画素値セットに基づいて色度CUに関連する相関関数を推定させることができる命令を格納する。
【0144】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、相関関数に基づいて色度イントラ予測手順を実行させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、色度イントラ予測手順に基づいて色度CUの色度画素値セットを取得させることができる命令を格納する。メモリは、いくつかの実施形態では、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度CUに対して取得された輝度画素値セットと色度CUに対して取得された色度画素値セットとを含むビットストリームを生成させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行されるとき、さらに少なくとも1つのプロセッサに、輝度CUに対して取得された輝度画素値セットと色度CUに対して取得された色度画素値セットとを含むビットストリームを画像デコーダに伝送させることができる命令を格納する。
【0145】
いくつかの実施形態では、輝度イントラ予測手順は、MRLイントラ予測手順を含んでもよい。いくつかの実施形態では、色度イントラ予測手順は、CCLM手順を含んでもよい。
【0146】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスを生成させることができる命令を格納する。いくつかの実施形態では、当該ビットストリームは、輝度参照行インデックスを含むようにさらに生成されてもよい。
【0147】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、同じ値であってもよい。
【0148】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含んでもよい。
【0149】
いくつかの実施形態では、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含んでもよい。
【0150】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを生成させることができる命令を格納する。いくつかの実施形態では、当該ビットストリームは、色度参照行インデックスを含むようにさらに生成されてもよい。
【0151】
いくつかの実施形態では、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、異なる値であってもよい。
【0152】
いくつかの実施形態では、メモリは、少なくとも1つ的プロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分を識別させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度イントラ予測手順に使用される輝度CUに隣接していない第1参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を生成させることができる命令を格納する。いくつかの実施形態では、当該ビットストリームは、輝度イントラ予測手順に使用される輝度CUに隣接していない第1的参照行セットと、色度イントラ予測手順に使用される色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を含むようにさらに生成されてもよい。
【0153】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0154】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0155】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0156】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0157】
本開示のさらなる方面によれば、デコーダにより復号化を行う方法が提供される。この方法は、通信インターフェイスによって、画像エンコーダから、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを含むビットストリームを受信するステップを含んでもよい。この方法は、少なくとも1つのプロセッサによって、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するステップを含んでもよい。
【0158】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、相関関数に基づいてビットストリームを復号化して、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとを識別するステップを含んでもよい。いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットとに基づいて、強化した画像を生成するステップを含んでもよい。
【0159】
いくつかの実施形態では、この方法は、少なくとも1つのプロセッサによって、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するステップを含んでもよい。いくつかの実施形態では、当該相関関数は、輝度参照行インデックスに基づいて識別されてもよい。
【0160】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、同じ値であってもよい。
【0161】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含む。
【0162】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含む。
【0163】
いくつかの実施形態では、当該ビットストリームは、さらに色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに基づいて識別されてもよい。
【0164】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、異なる値であってもよい。
【0165】
いくつかの実施形態では、当該ビットストリームは、さらに輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示とを含んでもよい。いくつかの実施形態では、当該相関関数は、デルタ値の指示に基づいて識別されてもよい。
【0166】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0167】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0168】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0169】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0170】
本開示のさらに別の方面によれば、デコーダによる復号化を行うシステムが提供される。このシステムは、少なくとも1つのプロセッサと、命令を格納するメモリを含んでもよい。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、画像エンコーダから、輝度CUに関連する輝度画素値セットと、色度CUに関連する色度画素値セットを含むビットストリームを受信させることができる命令を格納する。メモリは、少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに、輝度CUに隣接していなく且つ画像エンコーダによって輝度画素値セットを生成するために用いられる第1参照行セットと、色度CUに隣接していなく且つ画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別させることができる命令を格納する。
【0171】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、相関関数に基づいてビットストリームを復号化して輝度CUに関連する輝度画素値セットと色度CUに関連する色度画素値セットを識別させることができる命令を格納する。いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、輝度CUに関連する輝度画素値セットと色度CUに関連する色度画素値セットとに基づいて強化した画像を生成させることができる命令を格納する。
【0172】
いくつかの実施形態では、メモリは、少なくとも1つのプロセッサによって実行される時に、さらに少なくとも1つのプロセッサに、ビットストリームからの、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックスに関連する情報、または、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに関連する情報を識別させることができる命令を格納する。いくつかの実施形態では、当該相関関数は、輝度参照行インデックスに基づいて識別されてもよい。
【0173】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値は、同じ値であってもよい。
【0174】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの上方に位置する参照行とを含む。
【0175】
いくつかの実施形態では、色度CUに隣接していない第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに基づいて識別されてもよく、当該第2参照行セットは、輝度CUに隣接していない第1参照行セットと、輝度CUに隣接していない第1参照行セットの下方に位置する参照行とを含む。
【0176】
いくつかの実施形態では、当該ビットストリームは、さらに色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスを含んでもよい。いくつかの実施形態では、当該相関関数は、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックスに基づいて識別されてもよい。
【0177】
いくつかの実施形態では、輝度CUに隣接していない第1参照行セットに関連する輝度参照行インデックス値と、色度CUに隣接していない第2参照行セットに関連する色度参照行インデックス値とは、異なる値であってもよい。
【0178】
いくつかの実施形態では、当該ビットストリームは、さらに輝度CUに隣接していない第1参照行セットと、色度CUに隣接していない第2参照行セットとの間の差分に関連するデルタ値の指示を含んでもよい。いくつかの実施形態では、当該相関関数は、デルタ値の指示に基づいて識別されてもよい。
【0179】
いくつかの実施形態では、輝度CUと色度CUに関連する符号化ツリー構造は、同じであってもよい。
【0180】
いくつかの実施形態では、その指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含んでもよい。いくつかの実施形態では、その指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含んでもよい。
【0181】
いくつかの実施形態では、その指示は、デルタ値を含んでもよい。
【0182】
いくつかの実施形態では、その指示は、デルタ値を含まなくてもよい。
【0183】
実施形態に関する上記の説明は、本開示の一般的な性質を明らかにするものであり、当業者は、本開示の一般的な概念を逸脱することなく、過度の実験を行うことなく、技術的な知識を応用して、このような実施形態を容易に補正および/または変更して、様々な用途に応用させることができる。したがって、このような変更や補正は、ここで提供された示唆とガイダンスに基づいて、開示されている実施形態の同等物の意味および範囲内に含まれることが意図されている。本明細書における用語や表現が、説明の目的のためのものであり、制限の目的ではないことは理解されたい。したがって、本明細書の用語や表現は、当業者が示唆とガイダンスに照らして解釈するものとする。
【0184】
本開示の実施形態は、特定の機能とそれらの関係の実現形態を説明する機能的なビルディングブロックを借助して、説明された。これらの機能的なビルディングブロックの境界は、説明の便宜上、ここでは任意に定義されている。特定の機能とそれらの関係が適切に実行される限り、代替の境界を定義することができる。
【0185】
発明の概要および要約では、1人以上の発明者が考える本開示の1つ以上の(ただしすべてではない)例示的な実施形態が記載されており、そのため、本開示および添付の特許請求の範囲をいかなる形でも制限する意図はない。
【0186】
上述したように、様々な機能ブロック、モジュール、およびステップが開示されている。提供されている配置は、例示的なものであり、限定的なものではない。したがって、機能ブロック、モジュール、およびステップは、上述の例とは異なる方法で並べ替えられたり、組み合わされたりしてもよい。同様に、いくつかの実施形態は、機能ブロック、モジュール、およびステップのサブセットのみを含んでおり、そのようなサブセットは許容される。
【0187】
本開示の幅と範囲は、上述の例示的な実施形態のいずれによっても制限されるべきではなく、以下の特許請求の範囲とその同等物に従ってのみ定義されるべきである。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
エンコーダにより符号化を行う方法であって、
少なくとも1つのプロセッサによって、輝度符号化ユニットCUに隣接していない第1参照行セットを識別するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに隣接していない前記第1参照行セットに基づいて輝度イントラ予測手順を実行するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度イントラ予測手順に基づいて前記輝度CUの輝度画素値セットを取得するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに隣接していない前記第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別するスデップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに隣接していない前記第1参照行セット、前記色度CUに隣接していない前記第2参照行セット、及び前記輝度CUの前記輝度画素値セットに基づいて、前記色度CUに関連する相関関数を推定するスデップと、を含む、
エンコーダにより符号化を行う方法。
【請求項2】
エンコーダにより符号化を行うシステムであって、
少なくとも1つのプロセッサと、
メモリであって、前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、
輝度符号化ユニットCUに隣接していない第1参照行セットを識別させ、
前記輝度CUに隣接していない前記第1参照行セットに基づいて輝度イントラ予測手順を実行させ、
前記輝度イントラ予測手順に基づいて前記輝度CUの輝度画素値セットを取得させ、
前記輝度CUに隣接していない前記第1参照行セットに基づいて、色度CUに隣接していない第2参照行セットを識別させ、
前記輝度CUに隣接していない前記第1参照行セット、前記色度CUに隣接していない前記第2参照行セット、及び前記輝度CUの前記輝度画素値セットに基づいて、前記色度CUに関連する相関関数を推定させる命令を格納するメモリと、を含む、
エンコーダにより符号化を行うシステム。
【請求項3】
デコーダにより復号化を行う方法であって、
通信インターフェースによって、画像エンコーダから、輝度符号化ユニットCUに関連する輝度画素値セットと、色度符号化ユニットCUに関連する色度画素値セットを含むビットストリームを受信するスデップと、
少なくとも1つのプロセッサによって、前記輝度CUに隣接していなく且つ前記画像エンコーダによって前記輝度画素値セットを生成するために用いられる第1参照行セットと、前記色度CUに隣接していなく且つ前記画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別するステップと、を含む、
デコーダにより復号化を行う方法。
【請求項4】
前記方法は、
前記少なくとも1つのプロセッサによって、前記相関関数に基づいて前記ビットストリームを復号化して、前記輝度CUに関連する前記輝度画素値セットと、前記色度CUに関連する前記色度画素値セットを識別するステップと、
前記少なくとも1つのプロセッサによって、前記輝度CUに関連する前記輝度画素値
セットと、前記色度CUに関連する前記色度画素値セットとに基づいて、強化した画像を生成するステップと、をさらに含む、
請求項
3に記載の方法。
【請求項5】
前記方法は、
前記少なくとも1つのプロセッサによって、前記ビットストリームからの、前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックスに関連する情報、または、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスに関連する情報を識別するステップをさらに含み、
前記相関関数は、前記輝度参照行インデックスに基づいて識別される、
請求項
4に記載の方法。
【請求項6】
前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックス値とは、同じ値である、
請求項
5に記載の方法。
【請求項7】
前記色度CUに隣接していない前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含み、
前記相関関数は、前記色度CUに隣接していない前記第2参照行セットに基づいて識別され、前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの上方に位置する参照行とを含む、
請求項
3に記載の方法。
【請求項8】
前記色度CUに隣接していない前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する参照行とを含み、
前記相関関数は、前記色度CUに隣接していない第2参照行セットに基づいて識別され、前記第2参照行セットは、前記輝度CUに隣接していない前記第1参照行セットと、前記輝度CUに隣接していない前記第1参照行セットの下方に位置する前記参照行とを含む、
請求項
3に記載の方法。
【請求項9】
前記ビットストリームは、前記色度CUに隣接していない前記第2参照行セットに関連する色度参照行インデックスをさらに含み、
前記相関関数は、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックスに基づいて識別される、
請求項
3に記載の方法。
【請求項10】
前記輝度CUに隣接していない前記第1参照行セットに関連する輝度参照行インデックス値と、前記色度CUに隣接していない前記第2参照行セットに関連する前記色度参照行インデックス値とは、異なる値である、
請求項
9に記載の方法。
【請求項11】
前記ビットストリームは、前記輝度CUに隣接していない前記第1参照行セットと、前記色度CUに隣接していない前記第2参照行セットとの間の差分に関連するデルタ値の指示をさらに含み、
前記相関関数は、前記デルタ値の前記指示に基づいて識別される、
請求項
10に記載の方法。
【請求項12】
前記輝度CUと前記色度CUに関連する符号化ツリー構造は、同じである、
請求項
11に記載の方法。
【請求項13】
前記指示は、ネガティブなデルタ値を表すために、第1値に設定されたビットを含み、
または、
前記指示は、ポジティブなデルタ値を表すために、第1値とは異なる第2値に設定されたビットを含む、
請求項
11に記載の方法。
【請求項14】
前記指示は、前記デルタ値を含む、
または、
前記指示は、前記デルタ値を含まない、
請求項
11に記載の方法。
【請求項15】
デコーダにより復号化を行うシステムであって、
少なくとも1つのプロセッサと、
メモリであって、前記メモリは、前記少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、
画像エンコーダから、輝度符号化ユニットCUに関連する輝度画素値セットと、色度符号化ユニットCUに関連する色度画素値セットを含むビットストリームを受信させ、
前記輝度CUに隣接していなく且つ前記画像エンコーダによって前記輝度画素値セットを生成するために用いられる第1参照行セットと、前記色度CUに隣接していなく且つ前記画像エンコーダによって色度画素値セットを生成するために用いられる第2参照行セットとに関連する相関関数を識別させる命令を格納するメモリと、を含む、
デコーダにより復号化を行うシステム。
【国際調査報告】