本出願の実施形態は、独立請求項による符号化および復号のための装置および方法を提供する。
上述のおよびその他の目的は、独立請求項の主題により達成される。さらなる実装の形態は、従属請求項、明細書、および図面から明らかである。
特定の実施形態は、添付の独立請求項に要点を述べられ、その他の実施形態は、従属請求項に示される。
第1の態様によれば、本開示は、復号デバイスによって実施されるビデオのビットストリームの復号のための方法であって、ビデオのビットストリームが、タイルの列を含むコーディングされたピクチャを表すデータを含み、復号方法が、ビデオのビットストリームを解析することによってシンタックス要素を取得するステップであって、シンタックス要素がタイルの列の幅を導出するために使用され、タイルの列の幅が一様である、ステップと、タイルの列の幅によってコーディングされたピクチャを予測するステップとを含む、復号方法に関する。
復号方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
復号方法において、タイルの列の幅は、コーディングされたピクチャを予測するプロセスにおいてタイルの列のタイル内のCTUの位置を特定するために使用される可能性がある。たとえば、CTUがタイルの第1のCTUであるのかまたはタイルのCTUの行の第1のCTUであるのかを判定する。
第1の態様それ自体による方法の可能な実装の形態において、タイルの列の幅は、同じである。
第1の態様の任意の上述の実装または第1の態様それ自体による方法の可能な実装の形態において、タイルの列は、少なくとも2つの列を含む。
第2の態様によれば、本開示は、復号デバイスによって実施されるビデオのビットストリームの復号のための方法であって、ビデオのビットストリームが、複数のタイルの列を含むコーディングされたピクチャを表すデータを含み、復号方法が、ビデオのビットストリームを解析することによってシンタックス要素を取得するステップであって、シンタックス要素が、複数のタイルの列のうちのタイルの列の幅を導出するために使用される、ステップと、タイルの列の幅に基づいて複数のタイルの列の数を決定するステップと、タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測するステップとを含む、復号方法に関する。
復号方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
復号方法において、タイルの列の幅は、コーディングされたピクチャを予測するプロセスにおいてタイルの列のタイル内のCTUの位置を特定するために使用される可能性がある。たとえば、CTUがタイルの第1のCTUであるのかまたはタイルのCTUの行の第1のCTUであるのかを判定する。
復号方法において、複数のタイルの列の数は、コーディングされたピクチャを予測するプロセスにおいてタイルの列のタイルの位置を特定するために使用される可能性がある。
第2の態様それ自体による方法の可能な実装の形態において、複数のタイルの列は、幅が一様な1つまたは複数のタイルの列を含み、1つまたは複数のタイルの列は、タイルの列を含み、ビデオのビットストリームを解析することによってシンタックス要素を取得するステップは、ビデオのビットストリームを解析することによってシンタックス要素を取得することであって、シンタックス要素が、1つまたは複数のタイルの列の幅を導出するために使用され、タイルの列の幅が、1つまたは複数のタイルの列の幅を含む、取得することを含む。
復号方法において、1つまたは複数のタイルの列は、2つ以上のタイルの列を含む可能性がある。
復号方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
第2の態様の任意の上述の実装または第2の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列の幅は、同じである。
第2の態様の任意の上述の実装または第2の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列は、少なくとも2つの列を含む。
第3の態様によれば、本開示は、符号化デバイスによって実施されるコーディングの方法であって、ピクチャを符号化するプロセスにおいてピクチャ内のタイルの列の幅を取得するステップであって、タイルの列の幅が一様である、ステップと、タイルの列の幅に従ってタイルの列の幅を導出するために使用されるシンタックス要素を取得するステップと、シンタックス要素をピクチャのビットストリームに符号化するステップとを含む、コーディング方法に関する。
コーディング方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
コーディング方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
第3の態様それ自体による方法の可能な実装の形態において、タイルの列の幅は、同じである。
第3の態様の任意の上述の実装または第3の態様それ自体による方法の可能な実装の形態において、タイルの列は、少なくとも2つの列を含む。
第3の態様による方法は、第1の態様の任意の上述の実装または第1の態様による方法の実装の形態に対応する実装の形態に拡張され得る。したがって、第3の態様による方法の実装の形態は、第1の態様の対応する実装の形態の特徴を含む。
第3の態様による方法の利点は、第1の態様による方法の対応する実装の形態に関する利点と同じである。
第4の態様によれば、本開示は、符号化デバイスによって実施されるコーディングの方法であって、ピクチャ内の複数のタイルの列のうちのタイルの列の幅を取得するステップと、タイルの列の幅に基づいて複数のタイルの列の数を決定するステップと、タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測するステップとを含む、コーディング方法に関する。
第4の態様それ自体による方法の可能な実装の形態において、複数のタイルの列は、幅が一様な1つまたは複数のタイルの列を含み、1つまたは複数のタイルの列は、タイルの列を含み、タイルの列の幅は、1つまたは複数のタイルの列の幅を含む。
第4の態様の任意の上述の実装または第4の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列の幅は、同じである。
第4の態様の任意の上述の実装または第4の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列は、少なくとも2つの列を含む。
第4の態様による方法は、第2の態様の任意の上述の実装または第2の態様による方法の実装の形態に対応する実装の形態に拡張され得る。したがって、第4の態様による方法の実装の形態は、第2の態様の対応する実装の形態の特徴を含む。
第4の態様による方法の利点は、第2の態様による方法の対応する実装の形態に関する利点と同じである。
第5の態様によれば、本開示は、ビデオのビットストリームの復号のための復号デバイスであって、ビデオのビットストリームが、タイルの列を含むコーディングされたピクチャを表すデータを含み、復号デバイスが、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成された解析ユニットであって、シンタックス要素が、タイルの列の幅を導出するために使用され、タイルの列の幅が、一様である、解析ユニットと、タイルの列の幅によってピクチャを予測するように構成された予測ユニットとを含む、復号デバイスに関する。
復号デバイスにおいて、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号デバイスにおいて、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
第5の態様それ自体による方法の可能な実装の形態において、タイルの列の幅は、同じである。
第5の態様の任意の上述の実装または第5の態様それ自体による方法の可能な実装の形態において、タイルの列は、少なくとも2つの列を含む。
第6の態様によれば、本開示は、ビデオのビットストリームの復号のための復号デバイスであって、ビデオのビットストリームが、複数のタイルの列を含むコーディングされたピクチャを表すデータを含み、復号デバイスが、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成された解析ユニットであって、シンタックス要素が、複数のタイルの列のうちのタイルの列の幅を導出するために使用される、解析ユニットと、タイルの列の幅に基づいて複数のタイルの列の数を決定するように構成された決定ユニットと、タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測するように構成された予測ユニットとを含む、復号デバイスに関する。
第6の態様それ自体による方法の可能な実装の形態において、複数のタイルの列は、幅が一様な1つまたは複数のタイルの列を含み、1つまたは複数のタイルの列は、タイルの列を含み、解析ユニットは、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成され、シンタックス要素は、1つまたは複数のタイルの列の幅を導出するために使用され、タイルの列の幅は、1つまたは複数のタイルの列の幅を含む。
第6の態様の任意の上述の実装または第6の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列の幅は、同じである。
第6の態様の任意の上述の実装または第6の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列は、少なくとも2つの列を含む。
第7の態様によれば、本開示は、ピクチャを符号化するプロセスにおいてピクチャ内のタイルの列の幅を取得することであって、タイルの列の幅が、一様である、取得すること、およびタイルの列の幅に従ってタイルの列の幅を導出するために使用されるシンタックス要素を取得することを行うように構成された取得ユニット、シンタックス要素をピクチャのビットストリームに符号化するように構成されたコーディングユニットを含む符号化デバイスに関する。
第7の態様それ自体による方法の可能な実装の形態において、タイルの列の幅は、同じである。
第7の態様の任意の上述の実装または第7の態様それ自体による方法の可能な実装の形態において、タイルの列は、少なくとも2つの列を含む。
第8の態様によれば、本開示は、ピクチャ内の複数のタイルの列のうちのタイルの列の幅を取得するように構成された取得ユニット、タイルの列の幅に基づいて複数のタイルの列の数を決定するように構成された決定ユニット、タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測するように構成された予測ユニットを含む符号化デバイスに関する。
第8の態様それ自体による方法の可能な実装の形態において、複数のタイルの列は、幅が一様な1つまたは複数のタイルの列を含み、1つまたは複数のタイルの列は、タイルの列を含み、タイルの列の幅は、1つまたは複数のタイルの列の幅を含む。
第8の態様の任意の上述の実装または第8の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列の幅は、同じである。
第8の態様の任意の上述の実装または第8の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの列は、少なくとも2つの列を含む。
第9の態様によれば、本開示は、第1の態様、第1の態様の任意の可能な実装、第2の態様、または第2の態様の任意の可能な実装による方法を実行するための処理回路を含むデコーダに関する。
第10の態様によれば、本開示は、第3の態様、第3の態様の任意の可能な実装、第4の態様、または第4の態様の任意の可能な実装による方法を実行するための処理回路を含むエンコーダに関する。
第11の態様によれば、本開示は、コンピュータまたはプロセッサ上で実行されるときに上述の方法のいずれか1つによる方法を実行するためのプログラムコードを含むコンピュータプログラム製品に関する。
第12の態様によれば、本開示は、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためにプログラミングを記憶する非一時的コンピュータ可読ストレージ媒体であって、プログラミングが、プロセッサによって実行されるときに、上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行するようにデコーダを構成する、非一時的コンピュータ可読ストレージ媒体とを含むデコーダに関する。
第13の態様によれば、本開示は、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためにプログラミングを記憶する非一時的コンピュータ可読ストレージ媒体であって、プログラミングが、プロセッサによって実行されるときに、上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行するようにエンコーダを構成する、非一時的コンピュータ可読ストレージ媒体とを含むエンコーダに関する。
第14の態様によれば、本開示は、コンピュータデバイスによって実行されるときに、コンピュータデバイスに上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行させるプログラムコードを運ぶコンピュータ可読媒体に関する。
第15の態様によれば、本開示は、符号化された画像データを記憶する非一時的コンピュータ可読媒体であって、符号化された画像データが、ピクチャ内のタイルの列の幅に従ってタイルの列の幅を導出するために使用されるシンタックス要素のデータを含み、タイルの列の幅が一様である、非一時的コンピュータ可読媒体に関する。
第15の態様それ自体による方法の可能な実装の形態において、タイルの列の幅は、同じである。
第15の態様の任意の上述の実装または第15の態様それ自体による方法の可能な実装の形態において、タイルの列は、少なくとも2つの列を含む。
第16の態様によれば、本開示は、上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行するためのプログラムコードを含むコンピュータプログラムに関する。
本開示の第1の態様による方法は、本開示の第5の態様によるデバイスによって実行され得る。本開示の第5の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第1の態様による方法の特徴および実装の形態に対応する。
第5の態様によるデバイスの利点は、第1の態様による方法の対応する実装の形態に関する利点と同じである。
本開示の第2の態様による方法は、本開示の第6の態様による装置によって実行され得る。本開示の第6の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第2の態様による方法の特徴および実装の形態に対応する。
第6の態様によるデバイスの利点は、第2の態様による方法の対応する実装の形態に関する利点と同じである。
本開示の第3の態様による方法は、本開示の第7の態様によるデバイスによって実行され得る。本開示の第7の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第3の態様による方法の特徴および実装の形態に対応する。
第7の態様によるデバイスの利点は、第3の態様による方法の対応する実装の形態に関する利点と同じである。
本開示の第4の態様による方法は、本開示の第8の態様による装置によって実行され得る。本開示の第8の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第4の態様による方法の特徴および実装の形態に対応する。
第8の態様によるデバイスの利点は、第4の態様による方法の対応する実装の形態に関する利点と同じである。
第17の態様によれば、本開示は、復号デバイスによって実施されるビデオのビットストリームの復号のための方法であって、ビデオのビットストリームが、タイルの行を含むコーディングされたピクチャを表すデータを含み、復号方法が、ビデオのビットストリームを解析することによってシンタックス要素を取得するステップであって、シンタックス要素がタイルの行の高さを導出するために使用され、タイルの行の高さが一様である、ステップと、タイルの行の高さによってコーディングされたピクチャを予測するステップとを含む、復号方法に関する。
復号方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
復号方法において、タイルの列の幅は、コーディングされたピクチャを予測するプロセスにおいてタイルの列のタイル内のCTUの位置を特定するために使用される可能性がある。
復号方法において、複数のタイルの列の数は、コーディングされたピクチャを予測するプロセスにおいてタイルの列のタイルの位置を特定するためまたはコーディングされたピクチャ内のタイルの数を決定するために使用される可能性がある。
第17の態様それ自体による方法の可能な実装の形態において、タイルの行の高さは、同じである。
第17の態様の任意の上述の実装または第17の態様それ自体による方法の可能な実装の形態において、タイルの行は、少なくとも2つの列を含む。
第18の態様によれば、本開示は、復号デバイスによって実施されるビデオのビットストリームの復号のための方法であって、ビデオのビットストリームが、複数のタイルの行を含むコーディングされたピクチャを表すデータを含み、復号方法が、ビデオのビットストリームを解析することによってシンタックス要素を取得するステップであって、シンタックス要素が、複数のタイルの行のうちのタイルの行の高さを導出するために使用される、ステップと、タイルの行の高さに基づいて複数のタイルの行の数を決定するステップと、タイルの行の高さおよび/または複数のタイルの行の数によってピクチャを予測するステップとを含む、復号方法に関する。
復号方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
第18の態様それ自体による方法の可能な実装の形態において、複数のタイルの行は、高さが一様な1つまたは複数のタイルの行を含み、1つまたは複数のタイルの行は、タイルの行を含み、ビデオのビットストリームを解析することによってシンタックス要素を取得するステップは、ビデオのビットストリームを解析することによってシンタックス要素を取得することであって、シンタックス要素が、1つまたは複数のタイルの行の高さを導出するために使用され、タイルの行の高さが、1つまたは複数のタイルの行の高さを含む、取得することを含む。
復号方法において、1つまたは複数のタイルの行は、2つ以上のタイルの行を含む可能性がある。
復号方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
復号方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
第18の態様の任意の上述の実装または第18の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行の高さは、同じである。
第18の態様の任意の上述の実装または第18の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行は、少なくとも2つの列を含む。
第19の態様によれば、本開示は、符号化デバイスによって実施されるコーディングの方法であって、ピクチャを符号化するプロセスにおいてピクチャ内のタイルの行の高さを取得するステップであって、タイルの行の高さが一様である、ステップと、タイルの行の高さに従ってタイルの行の高さを導出するために使用されるシンタックス要素を取得するステップと、シンタックス要素をピクチャのビットストリームに符号化するステップとを含む、コーディング方法に関する。
コーディング方法において、シンタックス要素は、ビデオのビットストリームのピクチャパラメータセットまたはピクチャヘッダに含まれる。
コーディング方法において、ピクチャパラメータセットまたはピクチャヘッダは、コーディングされたピクチャに関連する。
第19の態様それ自体による方法の可能な実装の形態において、タイルの行の高さは、同じである。
第19の態様の任意の上述の実装または第19の態様それ自体による方法の可能な実装の形態において、タイルの行は、少なくとも2つの列を含む。
第19の態様による方法は、第17の態様の任意の上述の実装または第17の態様による方法の実装の形態に対応する実装の形態に拡張され得る。したがって、第19の態様による方法の実装の形態は、第17の態様の対応する実装の形態の特徴を含む。
第19の態様による方法の利点は、第17の態様による方法の対応する実装の形態に関する利点と同じである。
第20の態様によれば、本開示は、符号化デバイスによって実施されるコーディングの方法であって、ピクチャ内の複数のタイルの行のうちのタイルの行の高さを取得するステップと、タイルの行の高さに基づいて複数のタイルの行の数を決定するステップと、タイルの行の高さおよび/または複数のタイルの行の数によってピクチャを予測するステップとを含む、コーディング方法に関する。
第20の態様それ自体による方法の可能な実装の形態において、複数のタイルの行は、高さが一様な1つまたは複数のタイルの行を含み、1つまたは複数のタイルの行は、タイルの行を含み、タイルの行の高さは、1つまたは複数のタイルの行の高さを含む。
第20の態様の任意の上述の実装または第20の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行の高さは、同じである。
第20の態様の任意の上述の実装または第20の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行は、少なくとも2つの列を含む。
第20の態様による方法は、第18の態様の任意の上述の実装または第18の態様による方法の実装の形態に対応する実装の形態に拡張され得る。したがって、第20の態様による方法の実装の形態は、第18の態様の対応する実装の形態の特徴を含む。
第20の態様による方法の利点は、第18の態様による方法の対応する実装の形態に関する利点と同じである。
第21の態様によれば、本開示は、ビデオのビットストリームの復号のための復号デバイスであって、ビデオのビットストリームが、タイルの行を含むコーディングされたピクチャを表すデータを含み、復号デバイスが、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成された解析ユニットであって、シンタックス要素がタイルの行の高さを導出するために使用され、タイルの行の高さが一様である、解析ユニットと、タイルの行の高さによってピクチャを予測するように構成された予測ユニットとを含む、復号デバイスに関する。
第21の態様それ自体による方法の可能な実装の形態において、タイルの行の高さは、同じである。
第21の態様の任意の上述の実装または第21の態様それ自体による方法の可能な実装の形態において、タイルの行は、少なくとも2つの列を含む。
第22の態様によれば、本開示は、ビデオのビットストリームの復号のための復号デバイスであって、ビデオのビットストリームが、複数のタイルの行を含むコーディングされたピクチャを表すデータを含み、復号デバイスが、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成された解析ユニットであって、シンタックス要素が、複数のタイルの行のうちのタイルの行の高さを導出するために使用される、解析ユニットと、タイルの行の高さに基づいて複数のタイルの行の数を決定するように構成された決定ユニットと、タイルの行の高さおよび/または複数のタイルの行の数によってピクチャを予測するように構成された予測ユニットとを含む、復号デバイスに関する。
第22の態様それ自体による方法の可能な実装の形態において、複数のタイルの行は、高さが一様な1つまたは複数のタイルの行を含み、1つまたは複数のタイルの行は、タイルの行を含み、解析ユニットは、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成され、シンタックス要素は、1つまたは複数のタイルの行の高さを導出するために使用され、タイルの行の高さは、1つまたは複数のタイルの行の高さを含む。
第22の態様の任意の上述の実装または第22の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行の高さは、同じである。
第22の態様の任意の上述の実装または第22の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行は、少なくとも2つの列を含む。
第23の態様によれば、本開示は、ピクチャを符号化するプロセスにおいてピクチャ内のタイルの行の高さを取得することであって、タイルの行の高さが一様である、取得すること、およびタイルの行の高さに従ってタイルの行の高さを導出するために使用されるシンタックス要素を取得することを行うように構成された取得ユニットと、シンタックス要素をピクチャのビットストリームに符号化するように構成されたコーディングユニットとを含む符号化デバイスに関する。
第23の態様それ自体による方法の可能な実装の形態において、タイルの行の高さは、同じである。
第23の態様の任意の上述の実装または第23の態様それ自体による方法の可能な実装の形態において、タイルの行は、少なくとも2つの列を含む。
第24の態様によれば、本開示は、ピクチャ内の複数のタイルの行のうちのタイルの行の高さを取得するように構成された取得ユニットと、タイルの行の高さに基づいて複数のタイルの行の数を決定するように構成された決定ユニットと、タイルの行の高さおよび/または複数のタイルの行の数によってピクチャを予測するように構成された予測ユニットとを含む、符号化デバイスに関する。
第24の態様それ自体による方法の可能な実装の形態において、複数のタイルの行は、高さが一様な1つまたは複数のタイルの行を含み、1つまたは複数のタイルの行は、タイルの行を含み、タイルの行の高さは、1つまたは複数のタイルの行の高さを含む。
第24の態様の任意の上述の実装または第24の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行の高さは、同じである。
第24の態様の任意の上述の実装または第24の態様それ自体による方法の可能な実装の形態において、1つまたは複数のタイルの行は、少なくとも2つの列を含む。
第25の態様によれば、本開示は、第17の態様、第17の態様の任意の可能な実装、第18の態様、または第18の態様の任意の可能な実装による方法を実行するための処理回路を含むデコーダに関する。
第26の態様によれば、本開示は、第19の態様、第19の態様の任意の可能な実装、第20の態様、または第20の態様の任意の可能な実装による方法を実行するための処理回路を含むエンコーダに関する。
第27の態様によれば、本開示は、コンピュータまたはプロセッサ上で実行されるときに上述の方法のいずれか1つによる方法を実行するためのプログラムコードを含むコンピュータプログラム製品に関する。
第28の態様によれば、本開示は、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためにプログラミングを記憶する非一時的コンピュータ可読ストレージ媒体であって、プログラミングが、プロセッサによって実行されるときに、上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行するようにデコーダを構成する、非一時的コンピュータ可読ストレージ媒体とを含むデコーダに関する。
第29の態様によれば、本開示は、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためにプログラミングを記憶する非一時的コンピュータ可読ストレージ媒体であって、プログラミングが、プロセッサによって実行されるときに、上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行するようにエンコーダを構成する、非一時的コンピュータ可読ストレージ媒体とを含むエンコーダに関する。
第30の態様によれば、本開示は、コンピュータデバイスによって実行されるときに、コンピュータデバイスに上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行させるプログラムコードを運ぶコンピュータ可読媒体に関する。
第31の態様によれば、本開示は、符号化された画像データを記憶する非一時的コンピュータ可読媒体であって、符号化された画像データが、ピクチャ内のタイルの行の高さに従ってタイルの行の高さを導出するために使用されるシンタックス要素のデータを含み、タイルの行の高さが一様である、非一時的コンピュータ可読媒体に関する。
第31の態様それ自体による方法の可能な実装の形態において、タイルの行の高さは、同じである。
第31の態様の任意の上述の実装または第31の態様それ自体による方法の可能な実装の形態において、タイルの行は、少なくとも2つの列を含む。
第32の態様によれば、本開示は、上述の方法の態様または上述の方法の態様の任意の可能な実施形態のいずれか1つによる方法を実行するためのプログラムコードを含むコンピュータプログラムに関する。
本開示の第17の態様による方法は、本開示の第21の態様によるデバイスによって実行され得る。本開示の第21の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第17の態様による方法の特徴および実装の形態に対応する。
第21の態様によるデバイスの利点は、第17の態様による方法の対応する実装の形態に関する利点と同じである。
本開示の第18の態様による方法は、本開示の第22の態様による装置によって実行され得る。本開示の第22の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第18の態様による方法の特徴および実装の形態に対応する。
第22の態様によるデバイスの利点は、第18の態様による方法の対応する実装の形態に関する利点と同じである。
本開示の第19の態様による方法は、本開示の第23の態様によるデバイスによって実行され得る。本開示の第23の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第19の態様による方法の特徴および実装の形態に対応する。
第23の態様によるデバイスの利点は、第19の態様による方法の対応する実装の形態に関する利点と同じである。
本開示の第20の態様による方法は、本開示の第24の態様による装置によって実行され得る。本開示の第24の態様によるデバイスのさらなる特徴および実装の形態は、本開示の第20の態様による方法の特徴および実装の形態に対応する。
第24の態様によるデバイスの利点は、第20の態様による方法の対応する実装の形態に関する利点と同じである。
1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。その他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
明瞭にする目的で、上述の実施形態の任意の1つが、本開示の範囲内の新しい実施形態を生成するためにその他の上述の実施形態のうちの任意の1つまたは複数と組み合わされる可能性がある。
本開示をより完全に理解するために、同様の参照番号が同様の部分を表す添付の図面および詳細な説明に関連して解釈される以下の簡単な説明がここで参照される。
以下で、同一の参照符号は、別途明記されない場合、同一のまたは少なくとも機能的に等価な特徴を指す。
1つまたは複数の実施形態の例示的な実装が以下で与えられるが、開示されるシステムおよび/または方法は、現在知られているのかまたは存在しているのかにかかわらず任意の数の技術を使用して実装される可能性があることを最初に理解されたい。本開示は、本明細書において例示され、説明される例示的な設計および実装を含む、以下で示される例示的な実装、図面、および技術にまったく限定されるべきでなく、添付の請求項の均等物の全範囲と併せたそれらの請求項の範囲内で修正される可能性がある。
以下の説明においては、本開示の一部を形成し、本開示の実施形態の特定の態様または本開示の実施形態が使用される可能性がある特定の態様を例として示す添付の図面が参照される。本開示の実施形態は、その他の態様において使用され、図面に示されない構造的または論理的変更を含む可能性があることが理解される。したがって、以下の詳細な説明は、限定的意味に理解されるべきでなく、本開示の範囲は、添付の特許請求の範囲によって定義される。
たとえば、説明される方法に関連する開示は、方法を実行するように構成された対応するデバイスまたはシステムにも当てはまる可能性があり、その逆の可能性もあることが理解される。たとえば、1つまたは複数の特定の方法のステップが説明される場合、対応するデバイスは、説明される1つまたは複数の方法のステップを実行するための1つまたは複数のユニット、たとえば、機能ユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数をそれぞれが実行する複数のユニット)を、たとえそのような1つまたは複数のユニットが明示的に説明されないかまたは図に示されないとしても含む可能性がある。一方、たとえば、特定の装置が1つまたは複数のユニット、たとえば、機能ユニットに基づいて説明される場合、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの1つもしくは複数の機能をそれぞれが実行する複数のステップ)を、たとえそのような1つまたは複数のステップが明示的に説明されないかまたは図に示されないとしても含む可能性がある。さらに、本明細書において説明される様々な例示的な実施形態および/または態様の特徴は、そうでないことが明記されない限り互いに組み合わされる可能性があることが理解される。
ビデオコーディングは、概して、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの処理を指す。用語「ピクチャ」の代わりに、用語「フレーム」または「画像」が、ビデオコーディングの分野において同義語として使用される可能性がある。ビデオコーディング(または概してコーディング)は、2つの部分、ビデオ符号化およびビデオ復号を含む。ビデオ符号化は、送信元の側で実行され、概して、(より効率的な記憶および/または送信のために)ビデオピクチャを表現するために必要とされるデータの量を減らすために元のビデオピクチャを(たとえば、圧縮によって)処理することを含む。ビデオ復号は、送信先の側で実行され、概して、ビデオピクチャを再構築するためにエンコーダと比べて逆の処理を含む。ビデオピクチャ(または概してピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャまたはそれぞれのビデオシーケンスの「符号化」または「復号」に関すると理解される。符号化部分と復号部分との組合せは、コーデック(コーディングおよびデコーディング)とも呼ばれる。
可逆ビデオコーディングの場合、(記憶または送信中に送信損失またはその他のデータ損失がないと仮定して)元のビデオピクチャが再構築されることが可能であり、つまり、再構築されたビデオピクチャは元のビデオピクチャと同じ品質を有する。不可逆ビデオコーディングの場合、ビデオピクチャを表現するデータの量を減らすために、たとえば、量子化によるさらなる圧縮が実行され、これは、デコーダにおいて完全に再構築され得ず、つまり、再構築されたビデオピクチャの品質は、元のビデオピクチャの品質に比べてより低いまたはより悪い。
いくつかのビデオコーディング規格は、「不可逆ハイブリッドビデオコーデック」のグループに属する(つまり、サンプル領域(sample domain)における空間および時間予測と変換領域(transform domain)において量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、概して、1組の重なり合わないブロックに区分けされ、コーディングは、概して、ブロックレベルで実行される。言い換えると、エンコーダにおいて、ビデオは、概して、たとえば、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を使用して予測ブロック(prediction block)を生成し、現在のブロック(現在処理されている/処理されるブロック)から予測ブロックを差し引いて残差ブロックを取得し、残差ブロックを変換し、変換領域において残差ブロックを量子化して送信されるデータの量を削減する(圧縮)ことによってブロック(ビデオブロック)レベルで処理され、つまり、符号化され、一方、デコーダにおいては、表現するために現在のブロックを再構築するために、エンコーダと比べて逆の処理が、符号化されたまたは圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理する、つまり、コーディングするために両方が同一の予測(たとえば、イントラおよびインター予測)ならびに/または再構築を生成するようにデコーダの処理ループを複製する。
以下で、ビデオコーディングシステム10、ビデオエンコーダ20およびビデオデコーダ30の実施形態が、図1から図3に基づいて説明される。
図1Aは、本出願の技術を利用する可能性がある例示的なコーディングシステム10、たとえば、ビデオコーディングシステム10(または短くコーディングシステム10)を示す概略的なブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または短くエンコーダ20)およびビデオデコーダ30(または短くデコーダ30)は、本出願において説明される様々な例による技術を実行するように構成される可能性があるデバイスの例を示す。
図1Aに示されるように、コーディングシステム10は、符号化されたピクチャデータ13を復号するために、たとえば、送信先デバイス14に符号化されたピクチャデータ21を提供するように構成された送信元デバイス12を含む。
送信元デバイス12は、エンコーダ20を含み、追加的に、つまり、任意選択で、ピクチャソース16、プリプロセッサ(または前処理ユニット)18、たとえば、ピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を含む可能性がある。
ピクチャソース16は、任意の種類のピクチャ撮影デバイス、たとえば、実世界のピクチャを撮影するためのカメラ、ならびに/または任意の種類のピクチャ生成デバイス、たとえば、コンピュータによってアニメーションされるピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界のピクチャ、コンピュータによって生成されたピクチャ(たとえば、画面コンテンツ(screen content)、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類のその他のデバイスを含むかまたはそのようなデバイスである可能性がある。ピクチャソースは、上述のピクチャのいずれかを記憶するための任意の種類のメモリまたはストレージである可能性がある。
プリプロセッサ18および前処理ユニット18によって実行される処理と区別して、ピクチャまたはピクチャデータ17は、生ピクチャまたは生ピクチャデータ17とも呼ばれる可能性がある。
プリプロセッサ18は、(生)ピクチャデータ17を受け取り、ピクチャデータ17に対して前処理を実行して前処理されたピクチャ19または前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、(たとえば、RGBからYCbCrへの)カラーフォーマット変換、色補正、または雑音除去を含む可能性がある。前処理ユニット18は、任意の構成要素である可能性があることが理解され得る。
ビデオエンコーダ20は、前処理されたピクチャデータ19を受け取り、符号化されたピクチャデータ21を提供するように構成される(さらなる詳細が、下で、たとえば、図2に基づいて説明される)。
送信元デバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受け取り、符号化されたピクチャデータ21(またはその任意のさらに処理されたバージョン)を、記憶するかまたは直接再構築するために別のデバイス、たとえば、送信先デバイス14または任意のその他のデバイスに通信チャネル13を介して送信するように構成される可能性がある。
送信先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を含み、追加的に、つまり、任意選択で、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、およびディスプレイデバイス34を含む可能性がある。
送信先デバイス14の通信インターフェース28は、たとえば、送信元デバイス12から直接、または任意のその他のソース、たとえば、ストレージデバイス、たとえば、符号化されたピクチャデータのストレージデバイスから符号化されたピクチャデータ21(またはその任意のさらに処理されたバージョン)を受信し、符号化されたピクチャデータ21をデコーダ30に提供するように構成される。
通信インターフェース22および通信インターフェース28は、送信元デバイス12と送信先デバイス14との間の直接通信リンク、たとえば、直接有線もしくはワイヤレス接続を介して、あるいは任意の種類のネットワーク、たとえば、有線もしくはワイヤレスネットワークもしくはそれらの任意の組合せ、または任意の種類のプライベートおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して符号化されたピクチャデータ21または符号化されたデータ13を送信または受信するように構成される可能性がある。
通信インターフェース22は、たとえば、符号化されたピクチャデータ21を適切なフォーマット、たとえば、パケットにパッケージングする、および/または通信リンクもしくは通信ネットワークを介して送信するための任意の種類の送信の符号化もしくは処理を使用して符号化されたピクチャデータを処理するように構成される可能性がある。
通信インターフェース22の相手先を形成する通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する送信の復号もしくは処理および/またはパッケージングの解除を使用して送信データを処理して符号化されたピクチャデータ21を取得するように構成される可能性がある。
通信インターフェース22と通信インターフェース28との両方が、送信元デバイス12から送信先デバイス14の方を指す図1Aの通信チャネル13に関する矢印によって示される単方向通信インターフェース、または双方向通信インターフェースとして構成される可能性があり、たとえば、接続をセットアップし、通信リンクおよび/またはデータ送信、たとえば、符号化されたピクチャデータの送信に関連する任意のその他の情報を確認し、やりとりするために、たとえば、メッセージを送信および受信するように構成される可能性がある。
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(さらなる詳細が、下で、たとえば、図3または図5に基づいて説明される)。
送信先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構築されたピクチャデータとも呼ばれる)、たとえば、復号されたピクチャ31を後処理して後処理されたピクチャデータ33、たとえば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、たとえば、(たとえば、YCbCrからRGBへの)カラーフォーマット変換、色補正、トリミング、またはリサンプリング、またはたとえばディスプレイデバイス34による表示のためにたとえば復号されたピクチャデータ31を準備するための任意のその他の処理を含む可能性がある。
送信先デバイス14のディスプレイデバイス34は、たとえば、ユーザまたは視聴者に対してピクチャを表示するために後処理されたピクチャデータ33を受け取るように構成される。ディスプレイデバイス34は、再構築されたピクチャを示すための任意の種類のディスプレイ、たとえば、一体型または外部ディスプレイもしくはモニタであるかまたはそのようなディスプレイもしくはモニタを含む可能性がある。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS: liquid crystal on silicon)、デジタル光プロセッサ(DLP: digital light processor)、または任意の種類のその他のディスプレイを含む可能性がある。
図1Aは送信元デバイス12および送信先デバイス14を別々のデバイスとして示すが、デバイスの実施形態は、両方または両方の機能、送信元デバイス12または対応する機能および送信先デバイス14または対応する機能を含む可能性もある。そのような実施形態において、送信元デバイス12または対応する機能および送信先デバイス14または対応する機能は、同じハードウェアおよび/もしくはソフトウェアを使用してまたは別々のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組合せによって実装される可能性がある。
説明に基づいて当業者に明らかになるように、異なるユニットの機能または図1Aに示される送信元デバイス12および/もしくは送信先デバイス14内の機能の存在および(厳密な)分割は、実際のデバイスおよびアプリケーションに応じて変わる可能性がある。
エンコーダ20(たとえば、ビデオエンコーダ20)またはデコーダ30(たとえば、ビデオデコーダ30)またはエンコーダ20とデコーダ30との両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、それらのビデオコーディングに専用のまたは任意の組合せなどの、図1Bに示された処理回路によって実装される可能性がある。エンコーダ20は、図2のエンコーダ20および/または本明細書において説明される任意のその他のエンコーダシステムもしくはサブシステムに関連して検討される様々なモジュールを具現化するために処理回路46によって実装される可能性がある。デコーダ30は、図3のデコーダ30および/または本明細書において説明される任意のその他のデコーダシステムもしくはサブシステムに関連して検討される様々なモジュールを具現化するために処理回路46によって実装される可能性がある。処理回路は、後で検討される様々な動作を実行するように構成される可能性がある。図5に示されるように、技術が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読ストレージ媒体にソフトウェアのための命令を記憶する可能性があり、本開示の技術を実行するために1つまたは複数のプロセッサを使用するハードウェアにおいて命令を実行する可能性がある。ビデオエンコーダ20およびビデオデコーダ30のどちらかが、たとえば、図1Bに示されるように単一のデバイス内の組み合わされたエンコーダ/デコーダ(コーデック)の一部として組み込まれる可能性がある。
送信元デバイス12および送信先デバイス14は、任意の種類のハンドヘルドまたは固定デバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイル電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、放送受信機デバイス、放送送信機デバイスなどを含む広範なデバイスのいずれかを含む可能性があり、オペレーティングシステムを使用しないかまたは任意の種類のオペレーティングシステムを使用する可能性がある。場合によっては、送信元デバイス12および送信先デバイス14は、ワイヤレス通信に対応している可能性がある。したがって、送信元デバイス12および送信先デバイス14は、ワイヤレス通信デバイスである可能性がある。
場合によっては、図1Aに示されたビデオコーディングシステム10は、例であるに過ぎず、本開示の技術は、符号化デバイスと復号デバイスとの間のいかなるデータ通信も含むとは限らないビデオコーディングの状況(たとえば、ビデオの符号化またはビデオの復号)に適用される可能性がある。その他の例においては、データが、ローカルメモリから取り出される、またはネットワークを介してストリーミングされる、などである。ビデオコーディングデバイスが、データを符号化し、メモリに記憶する可能性があり、および/またはビデオ復号デバイスが、メモリからデータを取り出し、復号する可能性がある。いくつかの例において、符号化および復号が、互いに通信せず、単にメモリにデータを符号化し、および/またはメモリからデータを取り出し、復号するデバイスによって実行される。
説明の便宜上、本開示の実施形態は、たとえば、高効率ビデオコーディング(HEVC: High-Efficiency Video Coding)、または多目的ビデオコーディング(VVC: Versatile Video coding)、ITU-Tビデオコーディング専門家グループ(VCEG: Video Coding Experts Group)およびISO/IEC動画専門家グループ(MPEG: Motion Picture Experts Group)のビデオコーディングに関する共同作業チーム(JCT-VC: Joint Collaboration Team on Video Coding)によって開発された次世代ビデオコーディング規格の参照ソフトウェアを参照することによって本明細書において説明される。当業者は、本開示の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
エンコーダおよび符号化方法
図2は、本出願の技術を実装するように構成される例示的なビデオエンコーダ20の概略的なブロック図を示す。図2の例において、ビデオエンコーダ20は、入力201(または入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、量子化解除ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタユニット220、復号ピクチャバッファ(DPB: decoded picture buffer)230、モード選択ユニット260、エントロピーコーディングユニット270、および出力272(または出力インターフェース272)を含む。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、および区分けユニット262を含む可能性がある。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含む可能性がある。図2に示されたビデオエンコーダ20は、ハイブリッドビデオエンコーダまたはハイブリッドビデオコーデックによるビデオエンコーダとも呼ばれる可能性がある。
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向信号経路を形成するとみなされる可能性があり、一方、量子化解除ユニット210、逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するとみなされる可能性があり、ビデオエンコーダ20の逆方向信号経路は、デコーダの信号経路(図3のビデオデコーダ30を参照されたい)に対応する。量子化解除ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の「内蔵デコーダ」を形成するともみなされる。
ピクチャ&ピクチャの区分け(ピクチャ&ブロック)
エンコーダ20は、たとえば、入力201を介してピクチャ17(またはピクチャデータ17)、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受け取るように構成される可能性がある。受け取られたピクチャまたはピクチャデータは、前処理されたピクチャ19(または前処理されたピクチャデータ19)である可能性もある。簡単にするために、以下の説明は、ピクチャ17に言及する。ピクチャ17は、(特に、ビデオコーディングにおいて、現在のピクチャをその他のピクチャ、たとえば、同じビデオシーケンス、つまり、現在のピクチャも含むビデオシーケンスの既に符号化されたおよび/または復号されたピクチャと区別するために)現在のピクチャまたはコーディングされるピクチャとも呼ばれる可能性がある。
(デジタル)ピクチャは、強度(intensity)値を有するサンプルの2次元配列または行列とみなされるかまたはみなされ得る。配列のサンプルは、ピクセル(ピクチャエレメントの短縮形)またはペルとも呼ばれる可能性がある。配列またはピクチャの水平および垂直方向(または軸)のサンプル数は、ピクチャのサイズおよび/または解像度を定義する。色の表現のために、概して、3つの色成分が使用され、つまり、ピクチャが表現されるかまたは3つのサンプル配列を含む可能性がある。RBGフォーマットまたは色空間で、ピクチャは、対応する赤、緑、および青のサンプル配列を含む。しかし、ビデオコーディングにおいて、各ピクセルは、概して、輝度(luminance)およびクロミナンス(chrominance)フォーマットまたは色空間、たとえば、Y(代わりにLが使用されることもある)によって示される輝度成分ならびにCbおよびCrによって示される2つのクロミナンス成分を含むYCbCrで表される。輝度(または短くルマ(luma))成分Yは、明るさまたは(たとえば、グレースケールピクチャと同様の)グレーレベルの強度を表し、一方、2つのクロミナンス(または短くクロマ(chroma))成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプル配列およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプル配列を含む。RGBフォーマットのピクチャは、YCbCrフォーマットに変換される(converted)または変換される(transformed)可能性があり、その逆の可能性があり、プロセスは、色変換(transformation)または変換(conversion)としても知られる。ピクチャがモノクロである場合、ピクチャは、輝度サンプル配列のみを含む可能性がある。したがって、ピクチャは、たとえば、モノクロフォーマットにおいてはルマサンプルの配列であり、または4:2:0、4:2:2、および4:4:4カラーフォーマットにおいてはルマサンプルの配列およびクロマサンプルの2つの対応する配列である可能性がある。
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重なり合わない)ピクチャブロック203に区分けするように構成されたピクチャ区分けユニット(図2に示さず)を含む可能性がある。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)、またはコーディングツリーブロック(CTB: coding tree block)もしくはコーディングツリーユニット(CTU: coding tree unit)(H.265/HEVCおよびVVC)とも呼ばれる可能性がある。ピクチャ区分けユニットは、ビデオシーケンスのすべてのピクチャおよびブロックサイズを定義する対応するグリッドに関して同じブロックサイズを使用するか、あるいはピクチャまたはピクチャのサブセットもしくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックに区分けするように構成される可能性がある。
さらなる実施形態において、ビデオエンコーダは、ピクチャ17のブロック203、たとえば、ピクチャ17を形成する1つの、いくつかの、またはすべてのブロックを直接受け取るように構成される可能性がある。ピクチャブロック203は、現在のピクチャブロックまたはコーディングされるピクチャブロックとも呼ばれる可能性がある。
ピクチャ17と同様に、ピクチャブロック203は、ピクチャ17よりも寸法が小さいが、強度値(サンプル値)を有するサンプルの2次元配列または行列とやはりみなされるかまたはみなされ得る。言い換えると、ブロック203は、適用されるカラーフォーマットに応じて、たとえば、1つのサンプル配列(たとえば、モノクロピクチャ17の場合はルマ配列、またはカラーピクチャの場合はルマもしくはクロマ配列)、あるいは3つのサンプル配列(たとえば、カラーピクチャ17の場合はルマおよび2つのクロマ配列)、あるいは任意のその他の数および/または種類の配列を含む可能性がある。ブロック203の水平および垂直方向(または軸)のサンプル数は、ブロック203のサイズを定義する。したがって、ブロックは、たとえば、サンプルのMxN(M列×N行)配列または変換係数のMxN配列である可能性がある。
図2に示されたビデオエンコーダ20の実施形態は、ピクチャ17をブロック毎に符号化するように構成される可能性があり、たとえば、符号化および予測が、ブロック203毎に実行される。
図2に示されるビデオエンコーダ20の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによってピクチャを区分けするおよび/または符号化するようにさらに構成される可能性があり、ピクチャは、1つもしくは複数の(概して重なり合わない)スライスに区分けされるかまたは1つもしくは複数の(概して重なり合わない)スライスを使用して符号化される可能性があり、各スライスは、1つもしくは複数のブロック(たとえば、CTU)またはブロックの1つもしくは複数のグループ(たとえば、タイル(H.265/HEVCおよびVVC)もしくはブリック(brick)(VVC))を含む可能性がある。
図2に示されるビデオエンコーダ20の実施形態は、スライス/タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによってピクチャを区分けするおよび/または符号化するようにさらに構成される可能性があり、ピクチャは、1つもしくは複数の(概して重なり合わない)スライス/タイルグループに区分けされるかまたは1つもしくは複数の(概して重なり合わない)スライス/タイルグループを使用して符号化される可能性があり、各スライス/タイルグループは、たとえば、1つもしくは複数のブロック(たとえば、CTU)または1つもしくは複数のタイルを含む可能性があり、各タイルは、たとえば、長方形の形をしている可能性があり、1つまたは複数のブロック(たとえば、CTU)、たとえば、完全なまたは断片的なブロックを含む可能性がある。
以下で、ピクチャがサブピクチャ、スライス、およびタイルにどのようにして区分けされるかを明示する。
ピクチャは、1つまたは複数のタイルの行および1つまたは複数のタイルの列に分割される。タイルは、ピクチャの長方形の領域を包含するCTUのシーケンスである。タイル内のCTUは、そのタイル内でラスタスキャン順にスキャンされる。
スライスは、整数個の完全なタイルまたはピクチャのタイル内の整数個の連続する完全なCTUの行からなる。
スライスの2つのモード、すなわち、ラスタスキャンスライスモードおよび長方形スライスモードが、サポートされる。ラスタスキャンスライスモードにおいて、スライスは、ピクチャのタイルのラスタスキャンの完全なタイルのシーケンスを含む。長方形スライスモードにおいて、スライスは、ピクチャの長方形の領域を集合的に形成するいくつかの完全なタイルか、またはピクチャの長方形の領域を集合的に形成する1つのタイルのいくつかの連続する完全なCTUの行かのどちらかを含む。長方形スライス内のタイルは、そのスライスに対応する長方形領域内でタイルのラスタスキャン順にスキャンされる。
サブピクチャは、ピクチャの長方形の領域を集合的に包含する1つまたは複数のスライスを含む。
ピクチャは、コーディングツリーユニット(CTU: coding tree unit)のシーケンスに分割される。CTUの概念は、HEVCのCTUの概念と同じである。3つのサンプル配列を有するピクチャに関して、CTUは、ルマサンプルのN×Nのブロックと、クロマサンプルの2つの対応するブロックとからなる。
CTUのルマブロックの最大の許容されるサイズは、128×128であるように規定される(しかし、ルマ変換ブロック(transform block)の最大サイズは、64×64である)。
残差の計算
残差計算ユニット204は、たとえば、サンプル毎に(ピクセル毎に)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を差し引いてサンプル領域において残差ブロック205を取得することによって、ピクチャブロック203および予測ブロック265(予測ブロック265についてのさらなる詳細は後で与えられる)に基づいて残差ブロック205(残差205とも呼ばれる)を計算するように構成される可能性がある。
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用して変換領域において変換係数207を取得するように構成される可能性がある。変換係数207は、変換残差係数とも呼ばれ、変換領域において残差ブロック205を表現する可能性がある。
変換処理ユニット206は、H.265/HEVCのために規定された変換などのDCT/DSTの整数近似を適用するように構成される可能性がある。直交DCT変換と比較して、そのような整数近似は、概して、特定の率でスケーリングされる。順および逆変換によって処理される残差ブロックのノルム(norm)を維持するために、追加的な倍率(scaling factor)が、変換プロセスの一部として適用される。倍率は、概して、倍率がシフト演算のために2の累乗であること、変換係数のビット深度、正確さと実装コストとの間のトレードオフなどのような特定の制約に基づいて選択される。たとえば、特定の倍率が、たとえば、逆変換処理ユニット212による逆変換(およびたとえば、ビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)のために指定され、たとえば、エンコーダ20の変換処理ユニット206による順変換のための対応する倍率が、それに応じて指定される可能性がある。
ビデオエンコーダ20(それぞれ、変換処理ユニット206)の実施形態は、たとえば、ビデオデコーダ30が変換パラメータを受信し、復号のために使用する可能性があるように、たとえば、そのままであるかまたはエントロピーコーディングユニット270によって符号化されるかもしくは圧縮される変換パラメータ、たとえば、ある種の1つの変換または複数の変換を出力するように構成される可能性がある。
量子化
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって変換係数207を量子化して量子化された係数209を取得するように構成される可能性がある。量子化された係数209は、量子化された変換係数209または量子化された残差係数209とも呼ばれる可能性がある。
量子化プロセスは、変換係数207の一部またはすべてに関連するビット深度を削減する可能性がある。たとえば、nビットの変換係数が、量子化中にmビットの変換係数に切り捨てられる可能性があり、nは、mよりも大きい。量子化の度合いは、量子化パラメータ(QP: quantization parameter)を調整することによって修正される可能性がある。たとえば、スカラー量子化に関して、より細かいまたはより粗い量子化を達成するために異なるスケーリングが適用される可能性がある。より小さな量子化ステップサイズは、より細かい量子化に対応し、一方、より大きな量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズが、量子化パラメータ(QP)によって示される可能性がある。量子化パラメータは、たとえば、適用可能な量子化ステップサイズの予め定義された組へのインデックスである可能性がある。たとえば、小さな量子化パラメータが、細かい量子化(小さな量子化ステップサイズ)に対応する可能性があり、大きな量子化パラメータが、粗い量子化(大きな量子化ステップサイズ)に対応する可能性があり、またはその逆である可能性がある。量子化は、量子化ステップサイズによる除算を含む可能性があり、たとえば、量子化解除ユニット210による対応するおよび/または逆量子化解除は、量子化ステップサイズによる乗算を含む可能性がある。一部の規格、たとえば、HEVCによる実施形態は、量子化パラメータを使用して量子化ステップサイズを決定するように構成される可能性がある。概して、量子化ステップサイズは、除算を含む等式の固定小数点近似(fixed point approximation)を使用して量子化パラメータに基づいて計算される可能性がある。量子化ステップサイズおよび量子化パラメータに関する等式の固定小数点近似において使用されるスケーリングが原因で修正される可能性がある残差ブロックのノルムを復元するために、量子化および量子化解除に関して追加的な倍率が導入される可能性がある。1つの例示的な実装においては、逆変換および量子化解除のスケーリングが、組み合わされる可能性がある。代替的に、カスタマイズされた量子化テーブルが使用され、たとえば、ビットストリーム内でエンコーダからデコーダにシグナリングされる可能性がある。量子化は
、不可逆演算であり、損失は、量子化ステップサイズが大きくなるにつれて増加する。
ビデオエンコーダ20(それぞれ、量子化ユニット208)の実施形態は、たとえば、ビデオデコーダ30が量子化パラメータを受信し、復号のために適用する可能性があるように、たとえば、そのままであるかまたはエントロピーコーディングユニット270によって符号化される量子化パラメータ(QP)を出力するように構成される可能性がある。
量子化解除
量子化解除ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいてまたはそれを使用して、量子化ユニット208により適用された量子化方式の逆を適用することによって、量子化された係数に量子化ユニット208の量子化解除を適用して量子化解除された係数211を取得するように構成される。量子化解除された係数211は、量子化解除された残差係数211とも呼ばれ、--量子化による損失が原因で概して変換係数と同一ではないが--変換係数207に対応する可能性がある。
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、たとえば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)またはその他の逆変換を適用してサンプル領域において再構築された残差ブロック213(または対応する量子化解除された係数213)を取得するように構成される。再構築された残差ブロック213は、変換ブロック(transform block)213とも呼ばれる可能性がある。
再構築
再構築ユニット214(たとえば、加算器または合算器214)は、たとえば、再構築された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを--サンプル毎に--足すことによって予測ブロック265に変換ブロック213(すなわち、再構築された残差ブロック213)を足してサンプル領域において再構築されたブロック215を取得するように構成される。
フィルタリング
ループフィルタユニット220(または短く「ループフィルタ」220)は、再構築されたブロック215をフィルタリングしてフィルタリングされたブロック221を取得する、または概して、再構築されたサンプルをフィルタリングしてフィルタリングされたサンプル値を取得するように構成される。ループフィルタユニットは、たとえば、ピクセルの遷移を平滑化するかまたはそれ以外の方法でビデオの品質を改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO: sample-adaptive offset)フィルタ、または1つもしくは複数のその他のフィルタ、たとえば、適応ループフィルタ(ALF: adaptive loop filter)、雑音抑制フィルタ(NSF: noise suppression filter)、もしくはこれらの任意の組合せなどの1つまたは複数のループフィルタを含む可能性がある。例において、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ、およびALFフィルタを含む可能性がある。フィルタリングプロセスの順序は、デブロッキングフィルタ、SAO、およびALFである可能性がある。別の例においては、クロマスケーリングをともなうルママッピング(LMCS: luma mapping with chroma scaling)(つまり、適応的なループ内再整形器(reshaper))と呼ばれるプロセスが、追加される。このプロセスは、デブロッキングの前に実行される。別の例において、デブロッキングフィルタプロセスは、内部の下位ブロックのエッジ、たとえば、アフィンの下位ブロックのエッジ、ATMVPの下位ブロックのエッジ、下位ブロック変換(SBT: sub-block transform)のエッジ、および下位区画内(ISP: intra sub-partition)のエッジに適用される可能性もある。ループフィルタユニット220は図2にループ内フィルタであるものとして示されるが、その他の構成において、ループフィルタユニット220は、ループ後フィルタとして実装される可能性がある。フィルタリングされたブロック221は、フィルタリングされた再構築されたブロック221とも呼ばれる可能性がある。
ビデオエンコーダ20(それぞれ、ループフィルタユニット220)の実施形態は、たとえば、デコーダ30が同じループフィルタのパラメータまたはそれぞれのループフィルタを受信し、復号のために適用する可能性があるように、たとえば、そのままであるかまたはエントロピーコーディングユニット270によって符号化される(SAOフィルタのパラメータ、またはALFフィルタのパラメータ、またはLMCSのパラメータなどの)ループフィルタのパラメータを出力するように構成される可能性がある。
復号ピクチャバッファ
復号ピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータを符号化するための参照ピクチャまたは概して参照ピクチャデータを記憶するメモリである可能性がある。DPB230は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗変化型RAM(RRAM: resistive RAM)、またはその他の種類のメモリデバイスなどの様々なメモリデバイスのいずれかによって形成される可能性がある。復号ピクチャバッファ(DPB)230は、1つまたは複数のフィルタリングされたブロック221を記憶するように構成される可能性がある。復号ピクチャバッファ230は、同じ現在のピクチャまたは異なるピクチャ、たとえば、既に再構築されたピクチャのその他の既にフィルタリングされたブロック、たとえば、既に再構築され、フィルタリングされたブロック221を記憶するようにさらに構成される可能性があり、たとえば、インター予測のために、完全な既に再構築された、つまり、復号されたピクチャ(および対応する参照ブロックおよびサンプル)ならびに/または部分的に再構築された現在のピクチャ(および対応する参照ブロックおよびサンプル)を提供する可能性がある。復号ピクチャバッファ(DPB)230は、たとえば、再構築されたブロック215がループフィルタユニット220によってフィルタリングされない場合、1つもしくは複数のフィルタリングされていない再構築されたブロック215もしくは概してフィルタリングされていない再構築されたサンプルを記憶し、または再構築されたブロックもしくはサンプルの任意のその他のさらに処理されたバージョンを記憶するようにも構成される可能性がある。
モード選択(区分け&予測)
モード選択ユニット260は、区分けユニット262、インター予測ユニット244、およびイントラ予測ユニット254を含み、元のピクチャデータ、たとえば、元のブロック203(現在のピクチャ17の現在のブロック203)と、再構築されたピクチャデータ、たとえば、同じ(現在の)ピクチャの、および/またはたとえば復号ピクチャバッファ230もしくはその他のバッファ(たとえば、図示されていないラインバッファ)からの1つもしくは複数の既に復号されたピクチャからのフィルタリングされたおよび/またはフィルタリングされていない再構築されたサンプルまたはブロックとを受け取るかまたは取得するように構成される。再構築されたピクチャデータは、予測ブロック265または予測子(predictor)265を取得するための予測、たとえば、インター予測またはイントラ予測のための参照ピクチャデータとして使用される。
モード選択ユニット260は、(区分けを含まない)現在のブロックの予測モードのための区分けおよび予測モード(たとえば、イントラまたはインター予測モード)を決定するかまたは選択し、残差ブロック205の計算および再構築されたブロック215の再構築のために使用される対応する予測ブロック265を生成するように構成される可能性がある。
モード選択ユニット260の実施形態は、最良の一致もしくは言い換えると最小の残差(最小の残差は送信もしくは記憶のためのより優れた圧縮を意味する)または最小のシグナリングオーバーヘッド(最小のシグナリングオーバーヘッドは送信もしくは記憶のためのより優れた圧縮を意味する)を提供する、あるいはそれら両方を考慮するかまたは釣り合いを取る区分けおよび予測モードを(たとえば、モード選択ユニット260によってサポートされるかまたはモード選択ユニット260が利用可能な区分けおよび予測モードから)選択するように構成される可能性がある。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて区分けおよび予測モードを決定する、つまり、最小のレート歪みを提供する予測モードを選択するように構成される可能性がある。この文脈の「最良の」、「最小の」、「最適な」などのような用語は、必ずしも全体の「最良の」、「最小の」、「最適な」などを指さず、値が閾値を超えることもしくは下回ることのような終了もしくは選択の基準、または潜在的に「準最適な選択」につながるが、複雑さおよび処理時間を削減するその他の制約を満たすことをも指す可能性もある。
言い換えると、区分けユニット262は、ビデオシーケンスのピクチャをコーディングツリーユニット(CTU)のシーケンスに区分けするように構成される可能性があり、CTU 203は、たとえば、四分木区分け(QT)、二分木区分け(BT)、または三分木区分け(TT)、またはこれらの任意の組合せを反復的に使用して、(再度ブロックを形成する)より小さなブロックの区画または下位ブロックにさらに区分けされる可能性があり、区分けユニット262は、たとえば、ブロックの区画または下位ブロックの各々に関して予測を実行するように構成される可能性があり、モード選択は、区分けされたブロック203の木構造の選択を含み、予測モードは、ブロックの区画または下位ブロックの各々に適用される。
以下で、例示的なビデオエンコーダ20によって実行される(たとえば、区分けユニット260による)区分けならびに(インター予測ユニット244およびイントラ予測ユニット254による)予測処理が、より詳細に説明される。
区分け
区分けユニット262は、ビデオシーケンスのピクチャをコーディングツリーユニット(CTU)のシーケンスに区分けするように構成される可能性があり、区分けユニット262は、コーディングツリーユニット(CTU)203をより小さな区画、たとえば、正方形または長方形のサイズのより小さなブロックに区分けする(または分割する)可能性がある。3つのサンプル配列を有するピクチャに関して、CTUは、ルマサンプルのN×Nのブロックと、クロマサンプルの2つの対応するブロックとからなる。CTUのルマブロックの最大の許容されるサイズは、開発中の多目的ビデオコーディング(VVC)においては128×128であるように規定されるが、将来は128×128よりも大きな値、たとえば、256×256であるように規定され得る。ピクチャのCTUは、スライス/タイルグループ、タイル、またはブリックとしてクラスタリングされる/グループ化される可能性がある。タイルは、ピクチャの長方形の領域を包含し、タイルは、1つまたは複数のブリックに分割され得る。ブリックは、タイル内のいくつかのCTUの行からなる。複数のブリックに区分けされないタイルは、ブリックと呼ばれ得る。しかし、ブリックは、タイルの純粋なサブセットであり、タイルとは呼ばれない。VVCにおいてサポートされるタイルグループの2つのモード、すなわち、ラスタスキャンスライス/タイルグループモードおよび長方形スライスモードが、存在する。ラスタ・スキャン・タイル・グループ・モードにおいて、スライス/タイルグループは、ピクチャのタイルのラスタスキャンのタイルのシーケンスを含む。長方形スライスモードにおいて、スライスは、ピクチャの長方形の領域を集合的に形成するピクチャのいくつかのブリックを含む。長方形スライス内のブリックは、スライスのブリックのラスタスキャンの順序になっている。これらのより小さなブロック(下位ブロックとも呼ばれる可能性がある)は、より一層小さな区画にさらに区分けされる可能性がある。これは、木区分けまたは階層的木区分けとも呼ばれ、たとえば、ルートツリーレベル0(階層レベル0、深さ0)のルートブロックが、再帰的に区分けされ、たとえば、次に低いツリーレベルの2つ以上のブロック、たとえば、ツリーレベル1(階層レベル1、深さ1)のノードに区分けされる可能性があり、これらの
ブロックが、次に低いレベル、たとえば、ツリーレベル2(階層レベル2、深さ2)の2つ以上のブロックに再び区分けされる可能性があり、たとえば、終了基準が満たされる、たとえば、最大のツリーの深さまたは最小のブロックサイズが達せられるので区分けが終了されるまで以下同様である。さらに区分けされないブロックは、木の葉ブロックまたは葉ノードとも呼ばれる。2つの区画への区分けを使用する木は、二分木(BT)と呼ばれ、3つの区画への区分けを使用する木は、三分木(TT)と呼ばれ、4つの区画への区分けを使用する木は、四分木(QT)と呼ばれる。
たとえば、コーディングツリーユニット(CTU)は、ルマサンプルのCTB、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するCTB、またはモノクロピクチャもしくはサンプルをコーディングするために使用される3つの別々の色平面(colour plane)およびシンタックス(syntax)構造を使用してコーディングされるピクチャのサンプルのCTBであるかまたはそれらを含む可能性がある。それに対応して、コーディングツリーブロック(CTB)は、構成要素のCTBへの分割が区分けであるようなNの何らかの値に関するサンプルのN×Nのブロックである可能性がある。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するコーディングブロック、またはモノクロピクチャもしくはサンプルをコーディングするために使用される3つの別々の色平面およびシンタックス構造を使用してコーディングされるピクチャのサンプルのコーディングブロックであるかまたはそれらを含む可能性がある。それに対応して、コーディングブロック(CB)は、CTBのコーディングブロックへの分割が区分けであるようなMおよびNの何らかの値に関するサンプルのM×Nのブロックである可能性がある。
たとえば、HEVCによる実施形態において、コーディングツリーユニット(CTU)は、コーディングツリーとして表される四分木構造を使用することによってCUに分割される可能性がある。インターピクチャ(時間)予測を使用してピクチャエリアをコーディングすべきかまたはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングすべきかの判断は、葉CUレベルで行われる。各葉CUは、PU分割タイプに従って1つ、2つ、または4つのPUにさらに分割され得る。1つのPU内では、同じ予測プロセスが適用され、関連する情報がPUに基づいてデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、葉CUは、CUに関するコーディングツリーと同様の別の四分木構造によって変換ユニット(TU)に区分けされ得る。
たとえば、多目的ビデオコーディング(VVC)と呼ばれる現在開発されている最新のビデオコーディング規格による実施形態においては、たとえば、二分割および三分割セグメンテーション構造を使用する組み合わされた四分木の入れ子にされたマルチタイプツリーが、コーディングツリーユニットを区分けするために使用される。コーディングツリーユニット内のコーディングツリー構造において、CUは、正方形かまたは長方形かのどちらかの形状を持ち得る。たとえば、コーディングツリーユニット(CTU)は、まず、四分木によって区分けされる。それから、四分木の葉ノードが、マルチタイプツリー構造によってさらに区分けされ得る。マルチタイプツリー構造に4つの分割タイプ、すなわち、垂直二分割(SPLIT_BT_VER)、水平二分割(SPLIT_BT_HOR)、垂直三分割(SPLIT_TT_VER)、および水平三分割(SPLIT_TT_HOR)が存在する。マルチタイプツリーの葉ノードは、コーディングユニット(CU: coding unit)と呼ばれ、CUが最大の変換長(transform length)に関して長すぎない限り、このセグメンテーションが、いかなるさらなる区分けもなしに予測および変換処理のために使用される。これは、ほとんどの場合、CU、PU、およびTUが入れ子にされたマルチタイプツリーコーディングブロック構造を有する四分木内で同じブロックサイズを有することを意味する。例外は、最大のサポートされる変換長がCUの色成分の幅または高さよりも小さいときに発生する。VVCは、入れ子にされたマルチタイプツリーコーディングツリー構造を有する四分木内の区画分割情報の独特なシグナリングメカニズムを開発する。シグナリングメカニズムにおいて、コーディングツリーユニット(CTU)は、四分木の根として扱われ、四分木構造によって最初に区分けされる。(それを許すのに十分なだけ大きいとき)それぞれの四分木の葉ノードは、マルチタイプツリー構造によってさらに区分けされる。マルチタイプツリー構造においては、第1のフラグ(mtt_split_cu_flag)が、ノードがさらに区分けされるかどうかを示すためにシグナリングされ、ノードがさらに区分けされるとき、第2のフラグ(mtt_split_cu_vertical_flag)が、分割方向を示すためにシグナリングされ、それから、第3のフラグ(mtt_split_cu_binary_flag)が、分割が二分割であるかまたは三分割であるかを示すためにシグナリングされる。mtt_split_cu_vertical_flagおよびmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプツリー分割モード(MttSplitMode)が、予め定義された規則またはテーブルに基づいてデコーダによって導出され得る。特定の設計、たとえば、VVCハードウェアデコーダの64×64ルマブロックおよび32×32クロマパイプライン設計に関しては、図6に示されるように、ルマコーディングブロックの幅かまたは高さかのどちらかが64よりも大きいとき、TT分割は禁止されることに留意されたい。TT分割は、クロマコーディングブロックの幅かまたは高さかのどちらかが32よりも大きいときも禁止される。パイプライン設計は、ピクチャを、ピクチャ内の重なり合わない単位として定義される仮想パイプラインデータユニット(VPDU: Virtual pipeline data unit)に分割する。ハードウェアデコーダにおいては、連続的なVPDUが、複数のパイプラインの段階によって同時に処理される。VPDUのサイズは、ほとんどのパイプラインの段階のバッファサイズにおおよそ比例し、したがって、VPDUのサイズを小さく保つことが重要である。ほとんどのハードウェアデコーダにおいて、VPDUのサイズは、最大変換ブロック(TB)サイズに設定され得る。しかし、VVCにおいては、三分木(TT)および二分木(BT)区分けが、VPDUのサイズの増加につながる可能性がある。
さらに、ツリーノードブロックの一部が下または右のピクチャの境界を越えるとき、ツリーノードブロックは、あらゆるコーディングされたCUのすべてのサンプルがピクチャの境界の中に入るまで強制的に分割される。
例として、下位区画内(ISP)ツールは、ルマのイントラ予測されたブロックをブロックサイズに応じて2つまたは4つの下位区画に垂直にまたは水平に分割する可能性がある。
一例において、ビデオエンコーダ20のモード選択ユニット260は、本明細書において説明される区分け技術の任意の組合せを実行するように構成される可能性がある。
上述のように、ビデオエンコーダ20は、1組の(たとえば、予め決定された)予測モードから最良のまたは最適な予測モードを決定するまたは選択するように構成される。1組の予測モードは、たとえば、イントラ予測モードおよび/またはインター予測モードを含む可能性がある。
イントラ予測
1組のイントラ予測モードは、たとえばHEVCにおいて定義された35個の異なるイントラ予測モード、たとえば、DC(もしくは平均)モードおよび平面モードのような非方向性モード、または方向性モードを含む可能性があり、あるいはたとえばVVCのために定義された67個の異なるイントラ予測モード、たとえば、DC(もしくは平均)モードおよび平面モードのような非方向性モード、または方向性モードを含む可能性がある。例として、いくつかの通常の方向性イントラ予測モード(angular intra prediction mode)が、たとえば、VVCにおいて定義される、非正方形ブロックのための広角イントラ予測モード(wide-angle intra prediction mode)によって適応的に置き換えられる。別の例として、DC予測のための分割動作を避けるために、長辺のみが、非正方形ブロックに関して平均を計算するために使用される。また、平面モードのイントラ予測の結果が、位置依存イントラ予測組合せ(PDPC: position dependent intra prediction combination)の方法によってさらに修正される可能性がある。
イントラ予測ユニット254は、1組のイントラ予測モードのうちのイントラ予測モードによって、同じ現在のピクチャの近隣のブロックの再構築されたサンプルを使用してイントラ予測ブロック265を生成するように構成される。
イントラ予測ユニット254(または概してモード選択ユニット260)は、たとえば、ビデオデコーダ30が予測パラメータを受信し、復号のために使用する可能性があるように、符号化されたピクチャデータ21に含めるためにシンタックス要素266の形態でエントロピーコーディングユニット270にイントラ予測パラメータ(または概してブロックに関する選択されたイントラ予測モードを示す情報)を出力するようにさらに構成される。
インター予測
1組の(または可能な)インター予測モードは、利用可能な参照ピクチャ(つまり、たとえば、DBP230に記憶された前の少なくとも部分的に復号されたピクチャ)ならびにその他のインター予測パラメータ、たとえば、最もよく一致する参照ブロックを探索するために参照ピクチャ全体が使用されるのかもしくは参照ピクチャの一部のみ、たとえば、現在のブロックのエリアの周りの探索窓(search window)エリアのみが使用されるか、ならびに/またはたとえば、ピクセル補間、たとえば、半/セミペル(half/semi-pel)、4分の1ペルおよび/もしくは1/16ペル補間が適用されるか否かに依存する。
上述の予測モードに加えて、スキップモード、ダイレクトモード、および/またはその他のインター予測モードが、適用される可能性がある。
たとえば、拡張されたマージ予測において、そのようなモードのマージ候補リストは、以下の5種類の候補、すなわち、空間的な近隣のCUからの空間的MVP、同じ場所にあるCUからの時間的MVP、FIFOテーブルからの履歴に基づくMVP、ペアの平均MVP、およびゼロMVを順に含めることによって構築される。また、両方向マッチングに基づくデコーダ側動きベクトル改善(DMVR: decoder side motion vector refinement)が、マージモードのMVの正確性を高めるために適用される可能性がある。MVDを用いるマージモード(MMVD: merge mode with MVD)は、動きベクトルの差分を用いるマージモードに由来する。MMVDモードがCUのために使用されるかどうかを指定するために、スキップフラグおよびマージフラグを送信した直後にMMVDフラグがシグナリングされる。また、CUレベルの適応的動きベクトル解像度(AMVR: adaptive motion vector resolution)方式が、適用される可能性がある。AMVRは、CUのMVDが異なる精度でコーディングされることを可能にする。現在のCUのための予測モードに応じて、現在のCUのMVDが、適応的に選択され得る。CUがマージモードでコーディングされるとき、複合インター/イントラ予測(CIIP: combined inter/intra prediction)モードが、現在のCUに適用される可能性がある。インターおよびイントラ予測信号の加重平均が、CIIP予測を得るために実行される。アフィン動き補償予測においては、ブロックのアフィン動きフィールド(affine motion field)が、2つの制御点(4パラメータ)または3つの制御点動きベクトル(6パラメータ)の動き情報によって記述される。下位ブロックに基づく時間的動きベクトル予測(SbTMVP: subblock-based temporal motion vector prediction)は、HEVCの時間的動きベクトル予測(TMVP: temporal motion vector prediction)に似ているが、現在のCU内の下位CUの動きベクトルを予測する。以前はBIOと呼ばれていた双方向オプティカルフロー(BDOF)は、特に乗算の回数および乗算器のサイズの点でずっと少ない計算を必要とするより単純なバージョンである。三角形区分けモードに関して、そのようなモードにおいて、CUは、対角分割または反対角分割かのどちらかを使用して2つの三角形の区画に均等に分割される。さらに、双予測(bi-prediction)モードが、2つの予測信号の加重平均を可能にするように単純平均から拡張される。
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニット(どちらも図2に示さず)を含む可能性がある。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在のピクチャ17の現在のピクチャブロック203)および復号されたピクチャ231、または少なくとも1つのもしくは複数の既に再構築されたブロック、たとえば、1つもしくは複数のその他の/異なる既に復号されたピクチャ231の再構築されたブロックを受信するかまたは取得するように構成される可能性がある。たとえば、ビデオシーケンスは、現在のピクチャおよび既に復号されたピクチャ231を含む可能性があり、または言い換えると、現在のピクチャおよび既に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であるかもしくはそのようなピクチャのシーケンスを形成する可能性がある。
エンコーダ20は、たとえば、複数のその他のピクチャのうちの同じまたは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(もしくは参照ピクチャインデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして動き推定ユニットに提供するように構成される可能性がある。このオフセットは、動きベクトル(MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得、たとえば、受信し、インター予測パラメータに基づいてまたはインター予測パラメータを使用してインター予測を実行してインター予測ブロック265を取得するように構成される。動き補償ユニットによって実行される動き補償は、おそらくはサブピクセルの精度の補間を実行する動き推定によって決定された動き/ブロックベクトルに基づく予測ブロックのフェッチまたは生成を含む可能性がある。補間フィルタリングが、知られているピクセルサンプルから追加的なピクセルサンプルを生成する可能性があり、したがって潜在的に、ピクチャブロックをコーディングするために使用される可能性がある候補予測ブロックの数を増やす。現在のピクチャブロックのPUに関する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックを見つける可能性がある。
動き補償ユニットは、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30によって使用するためのブロックおよびビデオスライスに関連するシンタックス要素も生成する可能性がある。スライスおよびそれぞれのシンタックス要素に加えて、またはスライスおよびそれぞれのシンタックス要素の代替として、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が、生成されるかまたは使用される可能性がある。
エントロピーコーディング
エントロピーコーディングユニット270は、たとえば、ビデオデコーダ30がパラメータを受信し、復号のために使用する可能性があるように、たとえば、符号化されたビットストリーム21の形態で出力272を介して出力され得る符号化されたピクチャデータ21を得るために、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/またはその他のシンタックス要素に対して、たとえば、エントロピーコーディングアルゴリズムもしくは方式(たとえば、可変長コーディング(VLC: variable length coding)方式、コンテキスト適応VLC方式(CAVLC: context adaptive VLC)、算術コーディング方式、2値化、コンテキスト適応2値算術コーディング(CABAC: context adaptive binary arithmetic coding)、シンタックスに基づくコンテキスト適応2値算術コーディング(SBAC: syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE: probability interval partitioning entropy)符号化、もしくは別のエントロピーコーディング方法もしくは技術)またはバイパス(bypass)(非圧縮)を適用するように構成される。符号化されたビットストリーム21は、ビデオデコーダ30に送信されるか、または後の送信またはビデオデコーダ30による取り出しのためにメモリに記憶される可能性がある。
ビデオエンコーダ20その他の構造の変化形が、ビデオストリームを符号化するために使用され得る。たとえば、変換に基づかないエンコーダ20は、特定のブロックまたはフレームに関して変換処理ユニット206なしに残差信号を直接量子化し得る。別の実装において、エンコーダ20は、単一のユニットに組み合わされた量子化ユニット208および量子化解除ユニット210を持ち得る。
デコーダおよび復号方法
図3は、本出願の技術を実装するように構成されるビデオデコーダ30の例を示す。ビデオデコーダ30は、復号されたピクチャ331を取得するために、たとえば、エンコーダ20によって符号化された符号化されたピクチャデータ21(たとえば、符号化されたビットストリーム21)を受信するように構成される。符号化されたピクチャデータまたはビットストリームは、符号化されたピクチャデータ、たとえば、符号化されたビデオスライス(および/またはタイルグループもしくはタイル)のピクチャブロックならびに関連するシンタックス要素を表すデータを復号するための情報を含む。
図3の例において、デコーダ30は、エントロピー復号ユニット304、量子化解除ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、合算器314)、ループフィルタ320、復号ピクチャバッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、およびイントラ予測ユニット354を含む。インター予測ユニット344は、動き補償ユニットであるかまたは動き補償ユニットを含む可能性がある。ビデオデコーダ30は、いくつかの例において、図2のビデオエンコーダ100に関連して説明された符号化パスと概して逆である復号パスを実行する可能性がある。
エンコーダ20に関連して説明されたように、量子化解除ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354は、ビデオエンコーダ20の「内蔵デコーダ」を形成するともみなされる。したがって、量子化解除ユニット310は、量子化解除ユニット110と機能的に同一である可能性があり、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一である可能性があり、再構築ユニット314は、再構築ユニット214と機能的に同一である可能性があり、ループフィルタ320は、ループフィルタ220と機能的に同一である可能性があり、復号ピクチャバッファ330は、復号ピクチャバッファ230と機能的に同一である可能性がある。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能に関して与えられた説明が、ビデオデコーダ30のそれぞれのユニットおよび機能に準用される。
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(または概して符号化されたピクチャデータ21)を解析し、たとえば、符号化されたピクチャデータ21にエントロピー復号を実行して、たとえば、量子化された係数309ならびに/あるいは復号されたコーディングパラメータ(図3に示さず)、たとえば、インター予測パラメータ(たとえば、参照ピクチャインデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードもしくはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/またはその他のシンタックス要素のいずれかまたはすべてを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピーコーディングユニット270に関連して説明された符号化方式に対応する復号アルゴリズムまたは方式を適用するように構成される可能性がある。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/またはその他のシンタックス要素をモード適用ユニット360に提供し、その他のパラメータをデコーダ30のその他のユニットに提供するようにさらに構成される可能性がある。ビデオデコーダ30は、ビデオスライスのレベルおよび/またはビデオブロックのレベルでシンタックス要素を受信する可能性がある。スライスおよびそれぞれのシンタックス要素に加えて、またはスライスおよびそれぞれのシンタックス要素の代替として、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が、受信されるおよび/または使用される可能性がある。
量子化解除
量子化解除ユニット310は、(たとえば、エントロピー復号ユニット304によって、たとえば、解析および/または復号することによって)符号化されたピクチャデータ21から量子化パラメータ(QP)(または概して量子化解除に関連する情報)および量子化された係数を受け取り、復号された量子化された係数309に対して量子化パラメータに基づいて量子化解除を適用して、変換係数311とも呼ばれる可能性がある量子化解除された係数311を取得するように構成される可能性がある。量子化解除プロセスは、量子化の度合いと、同様に、適用されるべき量子化解除の度合いとを決定するために、ビデオスライス(またはタイルまたはタイルグループ)内の各ビデオブロックに関してビデオエンコーダ20によって決定された量子化パラメータを使用することを含む可能性がある。
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる量子化解除された係数311を受け取り、サンプル領域において再構築された残差ブロック213を取得するために、量子化解除された係数311に変換を適用するように構成される可能性がある。再構築された残差ブロック213は、変換ブロック213とも呼ばれる可能性がある。変換は、逆変換、たとえば、逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスである可能性がある。逆変換処理ユニット312は、量子化解除された係数311に適用される変換を決定するために、(たとえば、エントロピー復号ユニット304によって、たとえば、解析および/または復号することによって)符号化されたピクチャデータ21から変換パラメータまたは対応する情報を受け取るようにさらに構成される可能性がある。
再構築
再構築ユニット314(たとえば、加算器または合算器314)は、たとえば、再構築された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを足すことによって予測ブロック365に再構築された残差ブロック313を足してサンプル領域において再構築されたブロック315を取得するように構成される可能性がある。
フィルタリング
(コーディングループ内かまたはコーディングループの後かのどちらかの)ループフィルタユニット320は、たとえば、ピクセルの遷移を平滑化するかまたはそれ以外の方法でビデオの品質を改善するために再構築されたブロック315をフィルタリングしてフィルタリングされたブロック321を取得するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、または1つもしくは複数のその他のフィルタ、たとえば、適応ループフィルタ(ALF)、雑音抑制フィルタ(NSF)、もしくはこれらの任意の組合せなどの1つまたは複数のループフィルタを含む可能性がある。例において、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ、およびALFフィルタを含む可能性がある。フィルタリングプロセスの順序は、デブロッキングフィルタ、SAO、およびALFである可能性がある。別の例においては、クロマスケーリングをともなうルママッピング(LMCS)(つまり、適応的なループ内再整形器)と呼ばれるプロセスが、追加される。このプロセスは、デブロッキングの前に実行される。別の例において、デブロッキングフィルタプロセスは、内部の下位ブロックのエッジ、たとえば、アフィンの下位ブロックのエッジ、ATMVPの下位ブロックのエッジ、下位ブロック変換(SBT)のエッジ、および下位区画内(ISP)のエッジに適用される可能性もある。ループフィルタユニット320は図3にループ内フィルタであるものとして示されるが、その他の構成において、ループフィルタユニット320は、ループ後フィルタとして実装される可能性がある。
復号ピクチャバッファ
それから、ピクチャの復号されたビデオブロック321は、その他のピクチャに関するその後の動き補償のための参照ピクチャとしておよび/またはディスプレイ上にそれぞれ出力するために復号されたピクチャ331を記憶する復号ピクチャバッファ330に記憶される。
デコーダ30は、復号されたピクチャ311を、ユーザへの提示または視聴のために、たとえば、出力312を介して出力するように構成される。
予測
インター予測ユニット344は、インター予測ユニット244と(特に動き補償ユニットと)同一である可能性があり、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一である可能性があり、(たとえば、エントロピー復号ユニット304によって、たとえば、解析および/または復号することによって)復号されたピクチャデータ21から受け取られた区分けおよび/または予測パラメータまたはそれぞれの情報に基づいて分割または区分けの判断および予測を実行する。モード適用ユニット360は、予測ブロック365を得るために、(フィルタリングされたまたはフィルタリングされていない)再構築されたピクチャ、ブロック、またはそれぞれのサンプルに基づいてブロック毎に予測(イントラまたはインター予測)を実行するように構成される可能性がある。
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードおよび現在のピクチャの既に復号されたブロックからのデータに基づいて現在のビデオスライスのピクチャブロックに関する予測ブロック365を生成するように構成される。ビデオピクチャがインターコーディングされた(つまり、BまたはP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、エントロピー復号ユニット304から受け取られたモーションベクトルおよびその他のシンタックス要素に基づいて現在のビデオスライスのビデオブロックに関する予測ブロック365を生成するように構成される。インター予測に関して、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される可能性がある。ビデオデコーダ30は、DPB330に記憶された参照ピクチャに基づいてデフォルトの構築技術を使用して参照フレームリスト、List 0およびList 1を構築する可能性がある。同じまたは同様のことが、スライス(たとえば、ビデオスライス)に加えてまたはスライス(たとえば、ビデオスライス)の代替としてタイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態のためにまたはそのような実施形態によって適用される可能性があり、たとえば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされる可能性がある。
モード適用ユニット360は、動きベクトルまたは関連する情報およびその他のシンタックス要素を解析することによって現在のビデオスライスのビデオブロックに関する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックに関する予測ブロックを生成するように構成される。たとえば、モード適用ユニット360は、受信されたシンタックス要素の一部を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)、インター予測のスライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための参照ピクチャリストのうちの1つまたは複数に関する構築情報、スライスのそれぞれのインターコーディングされたビデオブロックに関する動きベクトル、スライスのそれぞれのインターコーディングされたビデオブロックに関するインター予測のステータス、および現在のビデオスライス内のビデオブロックを復号するためのその他の情報を決定する。同じまたは同様のことが、スライス(たとえば、ビデオスライス)に加えてまたはスライス(たとえば、ビデオスライス)の代替としてタイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態のためにまたはそのような実施形態によって適用される可能性があり、たとえば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされる可能性がある。
図3に示されるビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによってピクチャを区分けするおよび/または復号するように構成される可能性があり、ピクチャは、1つもしくは複数の(概して重なり合わない)スライスに区分けされるかまたは1つもしくは複数の(概して重なり合わない)スライスを使用して復号される可能性があり、各スライスは、1つもしくは複数のブロック(たとえば、CTU)またはブロックの1つもしくは複数のグループ(たとえば、タイル(H.265/HEVCおよびVVC)もしくはブリック(VVC))を含む可能性がある。
図3に示されるビデオデコーダ30の実施形態は、スライス/タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによってピクチャを区分けするおよび/または復号するように構成される可能性があり、ピクチャは、1つもしくは複数の(概して重なり合わない)スライス/タイルグループに区分けされるかまたは1つもしくは複数の(概して重なり合わない)スライス/タイルグループを使用して復号される可能性があり、各スライス/タイルグループは、たとえば、1つもしくは複数のブロック(たとえば、CTU)または1つもしくは複数のタイルを含む可能性があり、各タイルは、たとえば、長方形の形をしている可能性があり、1つまたは複数のブロック(たとえば、CTU)、たとえば、完全なまたは断片的なブロックを含む可能性がある。
ビデオデコーダ30のその他の変化形が、符号化されたピクチャデータ21を復号するために使用され得る。たとえば、デコーダ30は、ループフィルタリングユニット320なしで出力ビデオストリームを生成し得る。たとえば、変換に基づかないデコーダ30は、特定のブロックまたはフレームに関して逆変換処理ユニット312なしに残差信号を直接量子化解除し得る。別の実装において、ビデオデコーダ30は、単一のユニットに組み合わされた量子化解除ユニット310および逆変換処理ユニット312を持ち得る。
エンコーダ20およびデコーダ30において、現在のステップの処理結果は、さらに処理され、それから次のステップに出力される可能性があることを理解されたい。たとえば、補間フィルタリング、動きベクトルの導出、またはループフィルタリングの後、Clipまたはシフトなどのさらなる演算が、補間フィルタリング、動きベクトルの導出、またはループフィルタリングの処理結果に対して実行される可能性がある。
さらなる演算が、(アフィンモードの制御点動きベクトル(control point motion vector)、アフィン、平面、ATMVPモードの下位ブロック動きベクトル、時間動きベクトル(temporal motion vector)などを含むがこれらに限定されない)現在のブロックの導出された動きベクトルに適用される可能性があることに留意されたい。たとえば、動きベクトルの値は、その表現ビットに従って所定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1であり、「^」は、累乗を意味する。たとえば、bitDepthが16に等しいように設定される場合、範囲は、-32768~32767であり、bitDepthが18に等しいように設定される場合、範囲は、-131072~131071である。たとえば、導出された動きベクトル(たとえば、1つの8×8ブロック内の4つの4×4下位ブロックのMV)の値は、4つの4×4下位ブロックのMVの整数部分の間の最大の差が1ピクセル以下などNピクセル以下であるように制約される。ここでは、bitDepthに応じて動きベクトルを制約するための2つの方法を提供する。
図4は、本開示の実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書において説明されるように開示される実施形態を実装するのに好適である。実施形態において、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダまたは図1Aのビデオエンコーダ20などのエンコーダである可能性がある。
ビデオコーディングデバイス400は、データを受信するための着信ポート410(または入力ポート410)および受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央演算処理装置(CPU)430、データを送信するための送信機ユニット(Tx)440および発信ポート450(または出力ポート450)、ならびにデータを記憶するためのメモリ460を含む。ビデオコーディングデバイス400は、光または電気信号の発信または着信のために着信ポート410、受信機ユニット420、送信機ユニット440、および発信ポート450に結合された光-電気(OE)構成要素および電気-光(EO)構成要素も含む可能性がある。
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装される可能性がある。プロセッサ430は、着信ポート410、受信機ユニット420、送信機ユニット440、発信ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上述の開示された実施形態を実装する。たとえば、コーディングモジュール470は、様々なコーディング動作を実装するか、処理するか、準備するか、または提供する。したがって、コーディングモジュール470を含むことは、ビデオコーディングデバイス400の機能を大幅に改善し、ビデオコーディングデバイス400の異なる状態への転換をもたらす。代替的に、コーディングモジュール470は、メモリ460に記憶され、プロセッサ430によって実行される命令として実装される。
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含む可能性があり、プログラムが実行するために選択されるときにそのようなプログラムを記憶するためならびにプログラムの実行中に読まれる命令およびデータを記憶するためのオーバーフローデータストレージデバイス(over-flow data storage device)として使用される可能性がある。メモリ460は、たとえば、揮発性および/または不揮発性である可能性があり、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM: ternary content-addressable memory)、および/またはスタティックランダムアクセスメモリ(SRAM)である可能性がある。
図5は、例示的な実施形態による、図1の送信元デバイス12および送信先デバイス14のどちらかまたは両方として使用される可能性がある装置500の簡略化されたブロック図である。
装置500のプロセッサ502は、中央演算処理装置であることが可能である。代替的に、プロセッサ502は、既存のまたは今後開発される、情報を操作または処理することができる任意のその他の種類の1つのデバイスまたは複数のデバイスであることが可能である。開示される実装は示されるように単一のプロセッサ、たとえば、プロセッサ502によって実施され得るが、2つ以上のプロセッサを使用することによって速度および効率面の利点が実現され得る。
装置500のメモリ504は、実装において、読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであることが可能である。任意のその他の好適な種類のストレージデバイスが、メモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含み得る。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含むことが可能であり、アプリケーションプログラム510は、プロセッサ502が本明細書において説明される方法を実行すること可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、本明細書において説明される方法を実行するビデオコーディングアプリケーションをさらに含むアプリケーション1からNを含み得る。
装置500は、ディスプレイ518などの1つまたは複数の出力デバイスも含み得る。ディスプレイ518は、一例において、ディスプレイをタッチ入力を感知するように動作可能であるタッチ感知要素と組み合わせるタッチ式ディスプレイである可能性がある。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
ここでは単一のバスとして示されるが、装置500のバス512は、複数のバスから構成され得る。さらに、二次ストレージ514は、装置500のその他の構成要素に直接結合されることが可能であり、またはネットワークを介してアクセスされることが可能であり、メモリカードなどの単一の統合されたユニットもしくは複数のメモリカードなどの複数のユニットを含むことが可能である。したがって、装置500は、多種多様な構成で実装され得る。
以下は、本明細書において使用される頭字語の定義である。
CTB コーディングツリーブロック
CTU コーディングツリーユニット
CU コーディングユニット
CVS コーディングされたビデオシーケンス
JVET 合同ビデオ専門家チーム(Joint Video Experts Team)
MCTS 動き制約タイルセット(Motion-Constrained Tile Set)
MTU 最大転送ユニット
NAL ネットワーク抽象化レイヤ
POC ピクチャ順序カウント(Picture Order Count)
RBSP 生バイトシーケンスペイロード
SPS シーケンスパラメータセット
VVC 多目的ビデオコーディング
WD 作業草案
概して、本開示は、ピクチャを区分けするビデオコーディングにおけるタイルのシグナリングのための方法を説明する。より詳細には、本開示は、区分け方式が、区分けの結果として得られた行および列の数に基づいておよびときには区分け結果の幅および高さに基づいてシグナリングされる場合があるタイルの区分けのシグナリングのための方法を説明する。技術の説明は、ITU-TおよびISO/IECの合同ビデオ専門家チーム(JVET)による開発中の新しいビデオコーディング規格の多目的ビデオコーディング(VVC)に基づく。しかし、技術は、その他のビデオコーデックの仕様にも適合する。
ビデオコーディングの基本は、付録Aに見られ、以下で検討される。
ビデオ圧縮技術は、空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行してビデオシーケンスに固有の冗長性を減らすかまたは取り除く。ブロックに基づくビデオコーディングのために、ビデオスライス(つまり、ビデオピクチャまたはビデオピクチャの一部)が、ビデオブロックに区分けされる可能性があり、ビデオブロックは、ツリーブロック、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードとも呼ばれる可能性がある。ピクチャのイントラコーディングされる(I)スライス内のビデオブロックは、同じピクチャ内の近隣のブロック内の参照サンプルに関連する空間予測を使用して符号化される。ピクチャのインターコーディングされる(PまたはB)スライス内のビデオブロックは、同じピクチャ内の近隣のブロック内の参照サンプルに関連する空間予測またはその他の参照ピクチャ内の参照サンプルに関連する時間予測を使用する可能性がある。ピクチャは、フレームと呼ばれる可能性があり、参照ピクチャは、参照フレームと呼ばれる可能性がある。
空間または時間予測は、コーディングされるブロックに関する予測ブロックをもたらす。残差データは、コーディングされる元のブロックと予測ブロックとの間のピクセルの差を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コーディングされたブロックと予測ブロックとの間の差を示す残差データとによって符号化される。イントラコーディングされたブロックは、イントラコーディングモードおよび残差データによって符号化される。さらなる圧縮のために、残差データが、ピクセル領域から変換領域に変換される可能性があり、残差変換係数をもたらし、そして、残差変換係数が、量子化される可能性がある。最初に2次元配列に配列された量子化された変換係数は、変換係数の1次元ベクトルを生成するためにスキャンされる可能性があり、エントロピーコーディングが、より一層の圧縮を実現するために適用される可能性がある。
ビデオコーディング規格が、検討される。
ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1パート2、ITU-T H.262またはISO/IEC MPEG-2パート2、ITU-T H.263、ISO/IEC MPEG-4パート2、ITU-T H.264またはISO/IEC MPEG-4パート10としても知られる高度ビデオコーディング(AVC)、およびITU-T H.265またはMPEG-Hパート2としても知られる高効率ビデオコーディング(HEVC)を含む。AVCは、スケーラブルビデオコーディング(SVC: Scalable Video Coding)、多視点ビデオコーディング(MVC: Multiview Video Coding)および多視点ビデオコーディングプラス深度(MVC+D: Multiview Video Coding plus Depth)、ならびに3D AVC(3D-AVC)などの拡張を含む。HEVCは、スケーラブルHEVC(SHVC)、多視点HEVC(MV-HEVC)、および3D HEVC(3D-HEVC)などの拡張を含む。
ITU-TおよびISO/IECの合同ビデオ専門家チーム(JVET)によって開発されている、多目的ビデオコーディング(VVC)と命名された新しいビデオコーディング規格も、存在する。執筆時点で、JVET-L1001-v5に含まれるVVCの最新の作業草案(WD)は、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v11.zipに公開されている。
HEVCにおけるピクチャ区分け方式が、検討される。
HEVCは、4つの異なるピクチャ区分け方式、すなわち、通常のスライス(regular slice)と、従属スライス(dependent slice)と、タイルと、最大転送ユニット(MTU)のサイズのマッチング、並列処理、およびエンドツーエンドの遅延の削減のために適用される可能性がある波面並列処理(WPP: Wavefront Parallel Processing)を含む。
通常のスライスは、H.264/AVCと同様である。それぞれの通常のスライスは、独自のNALユニットにカプセル化され、スライスの境界をまたぐピクチャ内予測(イントラサンプル予測、動き情報予測、符号化モード予測)およびエントロピーコーディングの依存は、無効化される。したがって、通常のスライスは、同じピクチャ内のその他の通常のスライスとは独立して再構築され得る(ただし、ループフィルタリング動作が原因の相互依存関係を引き続き有する可能性がある)。
通常のスライスは、H.264/AVCにおいて実質的に同一の形態でやはり利用可能である並列化のために使用され得る唯一のツールである。通常のスライスに基づく並列化は、(ピクチャ内予測が原因であるプロセッサ間またはコア間データ共有よりも通常ずっと重い、予測によってコーディングされたピクチャを復号するときの動き補償のためのプロセッサ間またはコア間データ共有を除いて)多くのプロセッサ間またはコア間通信を必要としない。しかし、同じ理由で、通常のスライスの使用は、スライスヘッダのビットコストが原因でおよびスライスの境界をまたぐ予測を欠くことが原因で多大なコーディングのオーバーヘッドを招き得る。さらに、(下で述べるその他のツールと対照的に)通常のスライスは、通常のスライスのピクチャ内の独立性と、それぞれの通常のスライスが独自のNALユニットにカプセル化されることとにより、ビットストリームの区分けがMTUのサイズの要件に適合するための重要なメカニズムとしても働く。多くの場合、並列化の目的およびMTUのサイズのマッチングの目的は、ピクチャ内のスライスのレイアウトに矛盾する要求を課す。この状況の認識が、下で述べる並列ツールの開発につながった。
従属スライスは、短いスライスヘッダを有し、いかなるピクチャ内予測も乱すことなくツリーブロックの境界におけるビットストリームの区分けを可能にする。基本的に、従属スライスは、通常のスライス全体の符号化が終了される前に通常のスライスの一部が送出されることを可能にすることによってエンドツーエンドの遅延を削減するために、複数のNALユニットへの通常のスライスの断片化を提供する。
WPPにおいては、ピクチャが、コーディングツリーブロック(CTB)の単一行に区分けされる。エントロピー復号および予測は、その他の区画のCTBからのデータを使用することを許される。並列処理が、CTBの行の並列的な復号により可能であり、CTBの行の復号の始まりは、対象のCTBが復号される前に対象のCTBの上および右のCTBに関連するデータが利用可能であることを保証するために2CTBだけ遅らされる。このずらされた始まり(図式的に表現されるとき、波面(wavefront)のように見える)を使用して、並列化が、最大でピクチャが含むCTBの行数と同じ数のプロセッサ/コアによって可能である。ピクチャ内の近隣のツリーブロックの行の間のピクチャ内予測が許されるので、ピクチャ内予測を可能にするための必要とされるプロセッサ間/コア間通信は、多大になり得る。WPPの区分けは、それが適用されないときに比べて追加的なNALユニットの生成を引き起こさず、したがって、WPPは、MTUのサイズのマッチングのためのツールではない。しかし、MTUのサイズのマッチングが必要とされる場合、通常のスライスが、特定のコーディングのオーバーヘッドをともないながらWPPとともに使用され得る。
タイルは、ピクチャをタイルの列および行に区分けする水平および垂直の境界を定義する。タイルの列は、ピクチャの上からピクチャの下に延びる。同様に、タイルの行は、ピクチャの左からピクチャの右に延びる。ピクチャ内のタイルの数は、単純にタイルの列数とタイルの行数とをかけた数として導出され得る。
CTBのスキャン順は、ピクチャのタイルのラスタスキャンの順序で次のタイルの左上のCTBを復号する前にタイル内に局所的(タイルのCTBのラスタスキャン順)であるように変更される。通常のスライスと同様に、タイルは、ピクチャ内予測の依存関係およびエントロピー復号の依存関係を断つ。しかし、タイルは、個々のNALユニットに含められる必要がなく(この点ではWPPと同じ)、したがって、タイルは、MTUのサイズのマッチングのために使用され得ない。各タイルは、1つのプロセッサ/コアによって処理されることが可能であり、近隣のタイルを復号する処理ユニットの間でピクチャ内予測のために必要とされるプロセッサ間/コア間通信は、スライスが2つ以上のタイルにわたっている場合に共有されたスライスヘッダを運ぶことと、再構築されたサンプルおよびメタデータのループフィルタリングに関連する共有とに限られる。2つ以上のタイルまたはWPPのセグメントがスライスに含まれるとき、スライスの初めのタイル以外の各タイルまたはWPPのセグメントに関するエントリポイントのバイトオフセットが、スライスヘッダ内でシグナリングされる。
簡単にするために、4つの異なるピクチャ区分け方式の適用に対する制限が、HEVCにおいて規定された。所与のコーディングされたビデオシーケンスは、HEVCに規定されたプロファイルのほとんどに関してタイルと波面との両方を含むことができない。各スライスおよびタイルに関して、以下の条件、すなわち、1)スライス内のすべてのコーディングされたツリーブロックが同じタイルに属する、2)タイル内のすべてのコーディングされたツリーブロックが同じスライスに属するのどちらかまたは両方が満たされなければならない。最後に、波面のセグメントは、ちょうど1つのCTBの行を含み、WPPが使用されているとき、スライスがCTBの行内で始まる場合、そのスライスは、同じCTBの行内で終わらなければならない。
タイルのグループ化が、検討される。
2018年10月のマカオにおける第12回JVET会合の後、スライスの概念をタイルグループによって置き換えることが合意された。しかし、このIDFが書かれる時点で、VVCの最新の草案は、合意されたタイルグループの概念をまだ含んでいない。http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0686-v2.zipに公開されている投稿JVET-L0686は、合意されたタイルグループのテキストを含む。第12回JVET会合の合意されたタイルグループは、タイルグループへの1つまたは複数のタイルのグループ化を可能にし、タイルグループに属するタイルは、ピクチャのラスタスキャン順で連続している。便宜上、投稿JVET-L0686による草案の仕様のテキストは、下に添付される。本明細書の残りに関しては、JVET-L0686に記載のタイルグループは、ラスタスキャンタイルグループと呼ばれる。
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0114-v1.zipに公開されているJVETの投稿JVET-L0114は、タイルのグループ化のための別の手法を記載する。そこに記載されているタイルグループは、タイルグループに一緒にグループ化されるタイルがピクチャ内の長方形の形のエリアを形成するように制約される。本明細書の残りに関しては、JVET-L0114に記載のタイルグループは、長方形タイルグループと呼ばれる。
360°ビデオのユースケースシナリオにおける時間の使用
タイルおよびMCTSを使用するピクチャの区分けは、3600ビデオの応用において使用される特徴である。MPEGは、現在、3600ビデオおよびその応用を含む全方位ビデオの規格を規定することに取り組んでいる。規格は、全方位メディアアプリケーションフォーマット(OMAF: Omnidirectional Media Application Format)と命名される。執筆時点で、OMAFの最新の作業草案(WD)は、http://wg11.sc29.org/doc_end_user/documents/124_Macao/wg11/w17963.zipにおいて入手可能なMPEGの出力文書N17963に含まれる。
全方位ビデオの特異な特徴は、どんな特定の時間にもビューポート(viewport)のみが表示されることであり、一方、通常のビデオアプリケーションにおいては、概して、ビデオ全体が表示される。この特徴は、ユーザのビューポート(または推奨されるビューポートと同期したメタデータ(recommended viewport timed metadata)などの任意のその他の基準)に応じた選択的な配信によって全方位ビデオシステムの性能を向上させるために利用される可能性がある。ビューポートに依存する配信は、たとえば、領域毎のパッキングまたはビューポートに依存するビデオコーディングによって可能にされる可能性がある。性能の改善は、ユーザに提示されるビデオの部分の同じ解像度/品質の下での、通常の全方位ビデオシステムと比較してより少ない送信帯域幅およびより低い復号の複雑さのどちらかまたは両方である可能性がある。OMAFの仕様の付録Dは、OMAFビデオメディアプロファイルによって可能にされるビューポートに依存する動作のためのいくつかの方法を記載する。
ビューポートに依存する動作によって可能にされる記載されたユースケースシナリオのうちの1つは、HEVCに基づくビューポートに依存するOMAFビデオプロファイルによって5K有効正距円筒図法投影(ERP: effective equirectangular projection)解像度を実現するためのMCTSに基づく手法である。
図6においては、異なるタイルサイズ、つまり、ケースA)の4×4およびケースB)の2×2を有する2つのタイル構造が存在する。もちろん、グリッドのより高い粒度は、タイル間の独立性が原因であるビットレートのオーバーヘッドを有するが、それはほとんど記憶に関する問題であり、緑色によって印されたピクチャの部分の送信のために、より低い粒度は、より大きなエリア(赤い長方形)を送信する必要がある。
既存の時間の構造の問題が、検討される。
現在のタイル構造は、1組のタイルの列および1組のタイルの行によって定義される。タイルの列は、ピクチャの上からピクチャの下に延びる。同様に、タイルの行は、ピクチャの左からピクチャの右に延びる。そのような構造は、タイルの定義をより簡単にするが、タイル構造のパラメータのシグナリングは、より効率的になる可能性がある。
本明細書において説明されるユースケースシナリオにおいて、コンテンツプロバイダから受信機(つまり、OMAFプレーヤー)に配信されるピクチャに関して、タイル構造が、図6に示される。
(4K、8K、またはさらに高い)高解像度のビデオに関しては、並列処理が使用され、より高い解像度はより多くの処理ユニットを必要とし、したがって、より粒度を高められたタイル構造が、必要とされる。よくある高解像度ビデオのためのそのような粒度の例が、Table 1(表1)に示される。図のケースa)は、64×64ピクセルのサイズのCTUを単位として4×4に等しい最小タイルサイズを用いるHEVC規格に対応する。数ColumnsおよびRowsの代わりにWidthおよびHeightによる固定のシグナリングさえもより効率的であることが、留意され得る。さらに、MCTS抽出プロセス中、タイルグループ内の列および行の数の更新が必要とされるが、幅および高さがシグナリングのために必要とされる場合、各タイルの幅および高さが抽出の前後で同じであるので、シグナリングに変更はない。
結論として、ピクチャをタイルに区分けするためのタイルの行数およびタイルの列数に応じて、ならびに次に低いレベルのタイルを高レベルのタイルに区分けするためのより高レベルのタイルの行数およびより高レベルのタイルの列数に応じて、行および列の数に基づいて区分け方式をシグナリングすることがより効率的であることがあり、区分け結果の幅および高さに基づいて区分け方式をシグナリングすることがより効率的であることがある。よって、常に行および列の数に基づいて区分け方式をシグナリングする現在の方式は、シグナリングの効率の点で最適でない。
本開示の技術的な説明および基本的な概念が、提供される。
上に挙げられた問題を解決するために、本開示は、以下の態様を開示する(それらの態様の各々は、個々に適用されることが可能であり、それらの態様の一部は、組み合わせて適用されることが可能である)。
1) タイルの区分けのシグナリングのために、以下のステップが使用される。
a. ピクチャのタイル構造を定義するためにタイルの幅およびタイルの高さを使用する。
b. 以下によってタイル構造の分布の種類を定義する。
i. HEVCと同じ様式のタイルの列およびタイルの行。タイルの列およびタイルの行は、HEVCと同じようにまたは同様に、サイズが一様である可能性がありまたは一様でない可能性があることに留意されたい。
ii. タイルの幅およびタイルの高さ。幅および高さを使用してタイルの分布を定義することによって、一様なまたは一様でない分布が実現される可能性があることに留意されたい。
iii. 予め決められた分布パターン。
c. 水平のタイルの分布の種類に応じて列の数または列の幅である可能性がある水平の分布に関するシグナリングされたパラメータの値を定義する。
d. 垂直のタイルの分布の種類に応じて行の数または行の高さである可能性がある垂直の分布に関するシグナリングされたパラメータの値を定義する。
e. 分布の種類のフラグの存在が、以下に応じて条件付きでシグナリングされる可能性がある。
i. ピクチャの幅および/または高さ
ii. タイルが第2のレベルのタイルの列および/または第2のレベルのタイルの行にさらに分割される場合、列に関する第2のレベルのタイルの幅および/または行に関する第2のレベルのタイルの高さ。その場合、2つ以上のタイルの分布のレイヤが存在すると言われ得る。
iii. ピクチャ内のタイルユニットの数
iv. より上のレイヤのタイル内のタイルユニットの数
v. タイルのさらなる分割のフラグ
f. 簡単にするために、垂直方向と水平方向との両方の分布の種類が、1つのフラグによってシグナリングされる可能性がある。
2) 一様でない分布に関して、タイルの幅およびタイルの高さによるシグナリングが、単にタイルの列およびタイルの行の数を定義するために使用される可能性があり、さらに、各タイルのタイルの幅およびタイルの高さが、明示的に更新される可能性がある。
3) 2つ以上のタイルの分布のレイヤが存在するとき、以下のいくつかの可能な実装が存在する。
a. 第1のレイヤが、決まった一様なまたは一様でない分布を使用する可能性があり、さらなるタイルの区分けのレイヤは、別の分布を使用する可能性がある。
i. 分布の種類が、区分けのレイヤ全体に関してシグナリングされ、適用される可能性がある。
ii. 簡単にするために、第1のレイヤが、列の数および行の数によって決まったタイルの分布の種類を使用する可能性があり、一方、第2のおよびさらなるレイヤは、タイルの幅およびタイルの高さによる決まった種類のタイルの分布を使用する。
4) 項目1)a~1)dに記載の手法によって定義されたタイルの分布の導出は、下で本明細書のセクション4.2の実施形態において説明される。
本開示の実施形態1の詳細な説明が、提供される。
この項は、項4.1に要約された本開示の発明の態様1)の実施形態を示す。説明は、JVETの投稿JVET-L0686である基本的な原典に関連する。言い換えると、差分のみが説明されるが、下で述べられない基本的な原典のテキストはそのまま当てはまる。基本的な原典に対して修正されたテキストが、強調される。
CTBのラスタおよびタイルスキャンプロセスが、説明される。
ピクチャ内のタイルの列の数引く1を指定する変数NumTileColumnsMinus1と、CTBを単位として第iのタイルの列の幅を指定する、0およびNumTileColumnsMinus1を含んで0からNumTileColumnsMinus1までの範囲のiに対するリストColWidth[ i ]が、以下のように導出される。
if( uniform_tile_spacing_flag ) {
NumTileColumnsMinus1 = tile_distribution_by_width_flag ?
(PicWidthInCtbsY) / (tile_hor_split_param_minus1[ i ] + 1) - 1 :
tile_hor_split_param_minus1
for( i = 0; i <= NumTileColumnsMinus1; i++ )
ColWidth[ i ] = ( ( i + 1 ) * PicWidthInCtbsY ) / ( NumTileColumnsMinus1 + 1 ) - ( i * PicWidthInCtbsY ) / ( NumTileColumnsMinus1 + 1 )
}
else {
ColWidth[ NumTileColumnsMinus1 ] = PicWidthInCtbsY (6-1)
for( i = 0; i < NumTileColumnsMinus1; i++ ) {
ColWidth[ i ] = tile_column_width_minus1[ i ] + 1
ColWidth[ NumTileColumnsMinus1 ] -= ColWidth[ i ]
}
}
ピクチャ内のタイルの行の数引く1を指定する変数NumTileRowsMinus1と、CTBを単位として第jのタイルの行の高さを指定する、0およびNumTileRowsMinus1を含んで0からNumTileRowsMinus1までの範囲のjに対するリストRowHeight[ j ]が、以下のように導出される。
if( uniform_tile_spacing_flag ) {
NumTileRowsMinus1 = tile_distribution_by_height_flag ?
(PicHeightInCtbsY) / (tile_ver_split_param_minus1[ i ] + 1) - 1 :
tile_ver_split_param_minus1
for( j = 0; j <= NumTileRowsMinus1; j++ )
RowHeight[ j ] = ( ( j + 1 ) * PicHeightInCtbsY ) / ( NumTileRowsMinus1 + 1 ) - ( j * PicHeightInCtbsY ) / ( NumTileRowsMinus1 + 1 )
}
else {
RowHeight[ NumTileRowsMinus1 ] = PicHeightInCtbsY (6-2)
for( j = 0; j < NumTileRowsMinus1; j++ ) {
RowHeight[ j ] = tile_row_height_minus1[ j ] + 1
RowHeight[ NumTileRowsMinus1 ] -= RowHeight[ j ]
}
}
ピクチャパラメータセットのRBSPのシンタックスが、提供される。
ピクチャパラメータセットのRBSPのセマンティクスは、以下の通りである。
tile_distribution_by_width_flagは、列の分布に関して列の数がシグナリングされるかまたは列の幅がシグナリングされるかを指定する。存在しないとき、tile_distribution_by_width_flagの値は、0に等しいと推測される。
tile_distribution_by_height_flagは、行の分布に関して行の数がシグナリングされるかまたは行の高さがシグナリングされるかを指定する。存在しないとき、tile_distribution_by_height_flagの値は、0に等しいと推測される。
num_tile_hor_split_param_minus1足す1は、tile_distribution_by_width_flagの値に応じて、ピクチャを区分けするタイルの列の数またはnum_tile_column_width_minus1を指定する。存在しないとき、num_tile_hor_split_param_minus1の値は、0に等しいと推測される。
num_tile_ver_split_param_minus1足す1は、tile_distribution_by_height_flagの値に応じて、ピクチャを区分けするタイルの行の数またはnum_tile_rows_height_minus1を指定する。存在しないとき、num_tile_ver_split_param_minus1の値は、0に等しいと推測される。
いくつかの実施形態が本開示において与えられたが、開示されたシステムおよび方法は、本開示の精神または範囲を逸脱することなく多くのその他の特定の形態で具現化される可能性があることを理解されたい。これらの例は、例示的であって限定的でないと考えられるべきであり、意図は、本明細書において与えられた詳細に限定されるべきでない。たとえば、様々な要素もしくは構成要素が、組み合わされるかもしくは別のシステムに統合される可能性があり、または特定の特徴が、省略されるかもしくは実装されない可能性がある。
加えて、様々な実施形態において分離しているまたは別々であるものとして説明され、図示された技術、システム、サブシステム、および方法は、本開示の範囲を逸脱することなくその他のシステム、モジュール、技術、または方法と組み合わされるかまたは統合される可能性がある。互いに結合されるかもしくは直接結合されるか、または互いに通信しているものとして示されたかまたは検討されたその他のものが、電気的であるか、機械的であるか、またはそれ以外であるかにかかわらず何らかのインターフェース、デバイス、または中間構成要素を通じて間接的に結合されるかまたは通信している可能性がある。変更、置き換え、および改変のその他の例が、当業者によって突き止められる可能性があり、本明細書において開示された精神および範囲を逸脱することなくなされる可能性がある。
図7は、復号デバイスによって実施されるビデオのビットストリームの復号の対応する方法を示し、ビデオのビットストリームは、タイルの列を含むコーディングされたピクチャを表すデータを含む。復号方法は、以下のステップを含む。
S701 ビデオのビットストリームを解析することによってシンタックス要素を取得し、シンタックス要素は、タイルの列の幅を導出するために使用され、タイルの列の幅は、一様である。
S702 タイルの列の幅によってピクチャを予測する。
本開示の実施形態の特定の特徴に関しては、上の復号方法の実施形態を参照されたい。詳細は、本明細書において再度説明されない。
図8は、復号デバイスによって実施されるビデオのビットストリームの復号の対応する方法を示し、ビデオのビットストリームは、複数のタイルの列を含むコーディングされたピクチャを表すデータを含む。復号方法は、以下のステップを含む。
S801 ビデオのビットストリームを解析することによってシンタックス要素を取得し、シンタックス要素は、複数のタイルの列のうちのタイルの列の幅を導出するために使用される。
S802 タイルの列の幅に基づいて複数のタイルの列の数を決定する。
S803 タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測する。
本開示の実施形態の特定の特徴に関しては、上の復号方法の実施形態を参照されたい。詳細は、本明細書において再度説明されない。
図9は、符号化デバイスによって実施されるコーディングの対応する方法を示し、コーディング方法は、以下のステップを含む。
S901 ピクチャを符号化するプロセスにおいてピクチャ内のタイルの列の幅を取得し、タイルの列の幅は、一様である。
S902 タイルの列の幅に従ってタイルの列の幅を導出するために使用されるシンタックス要素を取得する。
S903 シンタックス要素をピクチャのビットストリームに符号化する。
本開示の実施形態の特定の特徴に関しては、上の復号方法の実施形態を参照されたい。詳細は、本明細書において再度説明されない。
図10は、符号化デバイスによって実施されるコーディングの対応する方法を示し、コーディング方法は、以下のステップを含む。
S1001 ピクチャ内の複数のタイルの列のうちのタイルの列の幅を取得する。
S1002 タイルの列の幅に基づいて複数のタイルの列の数を決定する。
S1003 タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測する。
本開示の実施形態の特定の特徴に関しては、上の復号方法の実施形態を参照されたい。詳細は、本明細書において再度説明されない。
図11は、ビデオのビットストリームを復号するための復号デバイス(デコーダ)1100を示す。ビデオのビットストリームは、タイルの列を含むコーディングされたピクチャを表すデータを含み、復号デバイスは、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成された解析ユニット1110であって、シンタックス要素が、タイルの列の幅を導出するために使用され、タイルの列の幅が、一様である、解析ユニット1110と、シンタックス要素をピクチャのビットストリームに符号化するように構成された予測ユニット1120とを含む。
復号デバイス1100において、解析ユニット1110は、エントロピー復号ユニット304である可能性がある。
復号デバイス1100において、予測ユニット1120は、インター予測ユニット344またはイントラ予測ユニット354である可能性がある。
本開示の実施形態のデコーダ1100のユニットの特定の機能に関しては、本開示の復号方法の実施形態の関連する説明を参照されたい。詳細は、本明細書において再度説明されない。
デコーダ1100のユニットは、ソフトウェアまたは回路によって実装される可能性がある。
デコーダ1100は、デコーダ30、ビデオコーディングデバイス400、もしくは装置500、またはデコーダ30、ビデオコーディングデバイス400、もしくは装置500の一部である可能性がある。
図12は、ビデオのビットストリームを復号するための復号デバイス(デコーダ)1200を示す。ビデオのビットストリームは、複数のタイルの列を含むコーディングされたピクチャを表すデータを含み、復号デバイスは、ビデオのビットストリームを解析することによってシンタックス要素を取得するように構成された解析ユニット1210であって、シンタックス要素が、複数のタイルの列のうちのタイルの列の幅を導出するために使用される、解析ユニット1210と、タイルの列の幅に基づいて複数のタイルの列の数を決定するように構成された決定ユニット1220と、タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測するように構成された予測ユニット1230とを含む。
復号デバイス1200において、解析ユニット1210は、エントロピー復号ユニット304である可能性がある。
復号デバイス1200において、決定ユニット1220は、インター予測ユニット344もしくはイントラ予測ユニット354、またはピクチャ区分けユニット(図3に示さず)である可能性がある。
復号デバイス1200において、予測ユニット1230は、インター予測ユニット344またはイントラ予測ユニット354である可能性がある。
本開示の実施形態のデコーダ1200のユニットの特定の機能に関しては、本開示の復号方法の実施形態の関連する説明を参照されたい。詳細は、本明細書において再度説明されない。
デコーダ1200のユニットは、ソフトウェアまたは回路によって実装される可能性がある。
デコーダ1200は、デコーダ30、ビデオコーディングデバイス400、もしくは装置500、またはデコーダ30、ビデオコーディングデバイス400、もしくは装置500の一部である可能性がある。
図13は、ビデオのビットストリームの符号化のための符号化デバイス(エンコーダ)1300を示す。符号化デバイスは、ピクチャを符号化するプロセスにおいてピクチャ内のタイルの列の幅を取得することであって、タイルの列の幅が、一様である、取得すること、およびタイルの列の幅に従ってタイルの列の幅を導出するために使用されるシンタックス要素を取得することを行うように構成された取得ユニット1310と、シンタックス要素をピクチャのビットストリームに符号化するように構成されたコーディングユニット1320とを含む。
符号化デバイス1300において、取得ユニット1310は、インター予測ユニット244もしくはイントラ予測ユニット254、またはピクチャ区分けユニット(図2に示さず)である可能性がある。
符号化デバイス1300において、コーディングユニット1320は、エントロピーコーディングユニット270である可能性がある。
本開示の実施形態のエンコーダ1300のユニットの特定の機能に関しては、本開示の符号化方法の実施形態の関連する説明を参照されたい。詳細は、本明細書において再度説明されない。
エンコーダ1300のユニットは、ソフトウェアまたは回路によって実装される可能性がある。
エンコーダ1300は、エンコーダ20、ビデオコーディングデバイス400、もしくは装置500、またはエンコーダ20、ビデオコーディングデバイス400、もしくは装置500の一部である可能性がある。
図14は、ビデオのビットストリームの符号化のための符号化デバイス(エンコーダ)1400を示す。符号化デバイスは、ピクチャ内の複数のタイルの列のうちのタイルの列の幅を取得するように構成された取得ユニット1410と、タイルの列の幅に基づいて複数のタイルの列の数を決定するように構成された決定ユニット1420と、タイルの列の幅および/または複数のタイルの列の数によってピクチャを予測するように構成された予測ユニット1430とを含む。
符号化デバイス1400において、取得ユニット1410は、インター予測ユニット244もしくはイントラ予測ユニット254、またはピクチャ区分けユニット(図2に示さず)である可能性がある。
符号化デバイス1400において、決定ユニット1420は、インター予測ユニット244もしくはイントラ予測ユニット254、またはピクチャ区分けユニット(図2に示さず)である可能性がある。
符号化デバイス1400において、予測ユニット1430は、インター予測ユニット244またはイントラ予測ユニット254である可能性がある。
本開示の実施形態のエンコーダ1400のユニットの特定の機能に関しては、本開示の符号化方法の実施形態の関連する説明を参照されたい。詳細は、本明細書において再度説明されない。
エンコーダ1400のユニットは、ソフトウェアまたは回路によって実装される可能性がある。
エンコーダ1400は、エンコーダ20、ビデオコーディングデバイス400、もしくは装置500、またはエンコーダ20、ビデオコーディングデバイス400、もしくは装置500の一部である可能性がある。
以下は、上述の実施形態において示された符号化方法および復号方法の応用ならびにそれらを使用するシステムの説明である。
図15は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意選択でディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上述の通信チャネル13を含む可能性がある。通信リンク3104は、WIFI、イーサネット、ケーブル、ワイヤレス(3G/4G/5G)、USB、またはこれらの任意の種類の組合せなどを含むがこれらに限定されない。
キャプチャデバイス3102は、データを生成し、上の実施形態に示された符号化方法によってデータを符号化する可能性がある。代替的に、キャプチャデバイス3102は、データをストリーミングサーバ(図示せず)に配信する可能性があり、サーバが、データを符号化し、符号化されたデータを端末デバイス3106に送信する。キャプチャデバイス3102は、カメラ、スマートフォンもしくはスマートパッド、コンピュータもしくはラップトップ、テレビ会議システム、PDA、車載デバイス、またはこれらのいずれかの組合せなどを含むがこれらに限定されない。たとえば、キャプチャデバイス3102は、上述の送信元デバイス12を含む可能性がある。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20が、ビデオコーディング処理を実際に実行する可能性がある。データがオーディオ(つまり、声)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダが、オーディオ符号化処理を実際に実行する可能性がある。いくつかの実際のシナリオに関して、キャプチャデバイス3102は、符号化されたビデオおよびオーディオデータを一緒に多重化することによってそれらのデータを配信する。その他の実際のシナリオに関して、たとえば、テレビ会議システムにおいて、符号化されたオーディオデータおよび符号化されたビデオデータは、多重化されない。キャプチャデバイス3102は、符号化されたオーディオデータおよび符号化されたビデオデータを端末デバイス3106に別々に配信する。
コンテンツ供給システム3100において、端末デバイス310は、符号化されたデータを受信し、再生する。端末デバイス3106は、上述の符号化されたデータを復号することができるスマートフォンもしくはスマートパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV 3114、セットトップボックス(STB)3116、テレビ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車載デバイス3124、またはこれらのいずれかの組合せなどの、データ受信および復元能力を有するデバイスであることが可能である。たとえば、端末デバイス3106は、上述の送信先デバイス14を含む可能性がある。符号化されたデータがビデオを含むとき、端末デバイスに含まれるビデオデコーダ30が、ビデオの復号を実行するために優先される。符号化されたデータがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダが、オーディオ復号処理を実行するために優先される。
ディスプレイを有する端末デバイス、たとえば、スマートフォンもしくはスマートパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV 3114、携帯情報端末(PDA)、または車載デバイス3124に関して、端末デバイスは、復号されたデータをその端末デバイスのディスプレイに供給することができる。ディスプレイを備えていない端末デバイス、たとえば、STB 3116、テレビ会議システム3118、またはビデオ監視システム3120に関しては、外部ディスプレイ3126に連絡を取り、復号されたデータが受信され示される。
このシステムの各デバイスが符号化または復号を実行するとき、上述の実施形態において示されたピクチャ符号化デバイスまたはピクチャ復号デバイスが、使用され得る。
図16は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル進行ユニット3202が、ストリームの送信プロトコルを分析する。プロトコルは、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはこれらの任意の種類の組合せなどを含むがこれらに限定されない。
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、多重分離ユニット3204に出力される。多重分離ユニット3204は、多重化されたデータを符号化されたオーディオデータおよび符号化されたビデオデータに分離することができる。上述のように、いくつかの実際のシナリオに関して、たとえば、テレビ会議システムにおいて、符号化されたオーディオデータおよび符号化されたビデオデータは、多重化されない。この状況では、符号化されたデータは、多重分離ユニット3204を通さずにビデオデコーダ3206およびオーディオデコーダ3208に送信される。
多重分離処理によって、ビデオエレメンタリストリーム(ES)、オーディオES、および任意選択で字幕が生成される。上述の実施形態において説明されたビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態において示された復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替的に、ビデオフレームは、そのビデオフレームを同期ユニット3212に供給する前に、(図Yに示されていない)バッファに記憶される可能性がある。同様に、オーディオフレームは、そのオーディオフレームを同期ユニット3212に供給する前に、(図Yに示されていない)バッファに記憶される可能性がある。
同期ユニット3212は、ビデオフレームとオーディオフレームとを同期し、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオ情報およびオーディオ情報の提示を同期する。情報は、コーディングされたオーディオデータおよびビジュアルデータの提示に関するタイムスタンプならびにデータストリームの配信自体に関するタイムスタンプを使用するシンタックスにおいてコーディングし得る。
字幕がストリームに含まれる場合、字幕デコーダ3210が、字幕を復号し、その字幕をビデオフレームおよびオーディオフレームと同期し、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
本開示は、上述のシステムに限定されず、上述の実施形態のピクチャ符号化デバイスかまたはピクチャ復号デバイスかのどちらかが、その他のシステム、たとえば、自動車のシステムに組み込まれ得る。
数学演算子
本出願において使用される数学演算子は、Cプログラミング言語において使用される数学演算子に似ている。しかし、整数の除算および算術シフト演算の結果は、より厳密に定義され、累乗および実数値の除算などの追加の演算が、定義される。付番およびカウントの規則は、概して0から始まり、たとえば、「第1」は、0番と等価であり、「第2」は、1番と等価であり、以下同様である。
算術演算子
以下の算術演算子が、以下の通り定義される。
+ 加算
- 減算(2引数の演算子として)または否定(単項前置演算子として)
* 行列の乗算を含む乗算
xy 累乗。xのy乗を規定する。その他の文脈で、そのような表記は、累乗として解釈されるように意図されない上付きの書き込みのために使用される。
/ 結果のゼロへの切り捨てを行う整数の除算。たとえば、7 / 4および-7 / -4は、1に切り捨てられ、-7 / 4および7 / -4は、-1に切り捨てられる。
÷ 切り捨てまたは丸めが意図されない数学的方程式の除算を表すために使用される。
切り捨てまたは丸めが意図されない数学的方程式の除算を表すために使用される。
iがxからyを含んでyまでのすべての整数値を取るf( i )の総和。
x % y 法。x >= 0およびy > 0である整数xおよびyに関してのみ定義されるx割るyの余り。
論理演算子
以下の論理演算子が、以下の通り定義される。
x && y xおよびyのブール論理「積」
x || y xおよびyのブール論理「和」
! ブール論理「否定」
x ? y : z xが真であるかまたは0に等しくない場合、値yと評価され、そうでない場合、値zと評価される。
関係演算子
以下の関係演算子が、以下の通り定義される。
> より大きい
>= 以上
< 未満
<= 以下
== 等しい
!= 等しくない
関係演算子が値「na」(該当なし)を割り振られたシンタックス要素または変数に適用されるとき、値「na」は、シンタックス要素または変数に関する異なる値として扱われる。値「na」は、いかなるその他の値とも等しくないとみなされる。
ビット演算子
以下のビット演算子が、以下の通り定義される。
& ビット毎の「論理積」。整数引数に対する演算のとき、整数値の2の補数表現に対して作用する。別の引数よりも少ないビットを含む2進数引数に対する演算のとき、より短い引数が、0に等しいさらに上位桁のビットを追加することによって拡張される。
ビット毎の「論理和」。整数引数に対する演算のとき、整数値の2の補数表現に対して作用する。別の引数よりも少ないビットを含む2進数引数に対する演算のとき、より短い引数が、0に等しいさらに上位桁のビットを追加することによって拡張される。
^ ビット毎の「排他的論理和」。整数引数に対する演算のとき、整数値の2の補数表現に対して作用する。別の引数よりも少ないビットを含む2進数引数に対する演算のとき、より短い引数が、0に等しいさらに上位桁のビットを追加することによって拡張される。
x>>y xの2の補数による整数の表現の、2進数のy桁分の算術右シフト。この関数は、yの非負の整数値に対してのみ定義される。右シフトの結果として最上位ビット(MSB)にシフトされるビットは、シフト演算の前のxのMSBに等しい値を有する。
x<<y xの2の補数による整数の表現の、2進数のy桁分の算術左シフト。この関数は、yの非負の整数値に対してのみ定義される。左シフトの結果として最下位ビット(LSB)にシフトされるビットは、0に等しい値を有する。
代入演算子
以下の算術演算子が、以下の通り定義される。
= 代入演算子
++ インクリメント、つまり、x++は、x = x + 1と等価であり、配列のインデックスに使用されるとき、インクリメント演算の前に変数の値と評価される。
-- デクリメント、つまり、x--は、x = x - 1と等価であり、配列のインデックスに使用されるとき、デクリメント演算の前に変数の値と評価される。
+= 指定された量のインクリメント、つまり、x += 3は、x = x + 3と等価であり、x += (-3)は、x = x + (-3)と等価である。
-= 指定された量のデクリメント、つまり、x -= 3は、x = x - 3と等価であり、x -= (-3)は、x = x - (-3)と等価である。
範囲の表記
以下の表記が、値の範囲を指定するために使用される。
x = y..z xは、x、y、およびzが整数値であり、zがyよりも大きいものとして、yおよびzを含んでyからzまでの整数値を取る。
数学関数
以下の数学関数が、定義される。
Asin( x ) -1.0および1.0を含んで-1.0から1.0までの範囲内の引数xに作用し、ラジアンを単位として-π÷2およびπ÷2を含んで-π÷2からπ÷2までの範囲の出力値を有する三角法の逆正弦関数
Atan( x ) 引数xに作用し、ラジアンを単位として-π÷2およびπ÷2を含んで-π÷2からπ÷2までの範囲の出力値を有する三角法の逆正接関数
Ceil( x ) x以上の最小の整数。
Clip1Y( x ) = Clip3( 0, ( 1 << BitDepthY ) - 1, x )
Clip1C( x ) = Clip3( 0, ( 1 << BitDepthC ) - 1, x )
Cos( x ) ラジアンを単位とする引数xに作用する三角法の余弦関数。
Floor(x) x以下の最大の整数。
Ln( x ) xの自然対数(eを底とする対数であり、eは、自然対数の底の定数2.718281828...である)。
Log2( x ) xの2を底とする対数。
Log10( x ) xの10を底とする対数。
Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )
Sin( x ) ラジアンを単位とする引数xに作用する三角法の正弦関数
Swap( x, y ) = ( y, x )
Tan( x ) ラジアンを単位とする引数xに作用する三角法の正接関数
演算の優先順位
式中の優先順位が括弧を使用して明示されないとき、以下の規則が、適用される。
より高い優先度の演算は、より低い優先度のいかなる演算よりも前に評価される。
同じ優先度の演算は、左から右に順に評価される。
下の表は、最も高い方から最も低い方へ演算の優先度を明示し、表のより上の位置は、より高い優先度を示す。
Cプログラミング言語においても使用される演算子に関して、本明細書において使用される優先順位は、Cプログラミング言語において使用されるのと同じである。
Table: (表の一番上の)最も高い方から(表の一番下の)最も低い方への演算の優先度
論理演算のテキストの記述
本文中、以下の形態で、すなわち、
if( 条件0 )
ステートメント0
else if( 条件1 )
ステートメント1
else /* 残りの条件に関する情報を伝えるコメント */
ステートメントn
の形態で数学的に記述される論理演算のステートメントは、以下のように記述される可能性がある。
以下のように / ...以下が適用される。
- 条件0の場合、ステートメント0
- そうではなく、条件1の場合、ステートメント1
- ...
- それ以外の場合(残りの条件に関する情報を伝えるコメント)、ステートメントn
本文中のそれぞれの「...の場合、...、そうではなく...の場合、...、それ以外の場合、...」のステートメントは、「...の場合、...」が直後に続く「以下のように...」または「...以下が適用される」によって導入される。「...の場合、...、そうではなく...の場合、...、それ以外の場合、...」の最後の条件は、常に「それ以外の場合、...」である。交互に挿入された「...の場合、...、そうではなく...の場合、...、それ以外の場合、...」のステートメントは、「以下のように...」または「...以下が適用される」を終わりの「それ以外の場合、...」とマッチングすることによって特定され得る。
本文中、以下の形態で、すなわち、
if( 条件0a && 条件0b )
ステートメント0
else if( 条件1a || 条件1b )
ステートメント1
...
else
ステートメントn
の形態で数学的に記述される論理演算のステートメントは、以下のように記述される可能性がある。
以下のように... / ...以下が適用される。
- 以下の条件のすべてが真である場合、ステートメント0
- 条件0a
- 条件0b
- そうでなく、以下の条件のうちの1つまたは複数が真である場合、ステートメント1
- 条件1a
- 条件1b
- ...
- それ以外の場合、ステートメントn
本文中、以下の形態で、すなわち、
if( 条件0 )
ステートメント0
if( 条件1 )
ステートメント1
の形態で数学的に記述される論理演算のステートメントは、以下のように記述される可能性がある。
条件0のとき、ステートメント0
条件1のとき、ステートメント1
1つまたは複数の例において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装される可能性がある。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるかまたは送信され、ハードウェアに基づく処理ユニットによって実行される可能性がある。コンピュータ可読媒体は、データストレージ媒体などの有形の媒体に対応するコンピュータ可読ストレージ媒体、またはたとえば通信プロトコルによるある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む可能性がある。このようにして、概して、コンピュータ可読媒体は、(1)非一時的である有形のコンピュータ可読ストレージ媒体または(2)信号もしくは搬送波などの通信媒体に対応する可能性がある。データストレージ媒体は、本開示において説明された技術の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体である可能性がある。コンピュータプログラム製品は、コンピュータ可読媒体を含む可能性がある。
限定ではなく例として、そのようなコンピュータ可読ストレージ媒体は、RAM、ROM、EEPROM、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用されることが可能であり、コンピュータによってアクセスされることが可能である任意のその他の媒体を含み得る。また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、ラジオ波、およびマイクロ波などのワイヤレステクノロジーを用いてウェブサイト、サーバ、またはその他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、ラジオ波、およびマイクロ波などのワイヤレステクノロジーは、媒体の定義に含まれる。しかし、コンピュータ可読ストレージ媒体およびデータストレージ媒体は、接続、搬送波、信号、またはその他の一時的媒体を含まず、その代わりに、非一時的な有形のストレージ媒体を対象とすることを理解されたい。本明細書において使用されるとき、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD: compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタルバーサタイルディスク(DVD: digital versatile disc)、フロッピーディスク(floppy disk)、およびブルーレイディスク(Blu-ray(登録商標) disc)を含み、ディスク(disk)が、通常、磁気的にデータを再生する一方、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記のものの組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、またはその他の等価な集積もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行される可能性がある。したがって、用語「プロセッサ」は、本明細書において使用されるとき、上述の構造または本明細書において説明された技術の実装に好適な任意のその他の構造のいずれかを指す可能性がある。加えて、一部の態様において、本明細書において説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内に提供されるか、または組み合わされたコーデックに組み込まれる可能性がある。また、技術は、1つまたは複数の回路または論理要素にすべて実装される可能性がある。
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または1組のIC(たとえば、チップセット)を含む多種多様なデバイスまたは装置に実装される可能性がある。様々な構成要素、モジュール、またはユニットが、開示された技術を実行するように構成されたデバイスの機能の態様を強調するために本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述のように、様々なユニットが、コーデックハードウェアユニットにおいて組み合わされるか、または好適なソフトウェアおよび/もしくはファームウェアと連携した、上述の1つもしくは複数のプロセッサを含む相互運用性のあるハードウェアユニットの集合によって提供される可能性がある。
いくつかの実施形態が本開示において与えられたが、開示されたシステムおよび方法は、本開示の精神または範囲を逸脱することなく多くのその他の特定の形態で具現化される可能性があることが理解されるであろう。これらの例は、例示的であって限定的でないと考えられるべきであり、意図は、本明細書において与えられた詳細に限定されるべきでない。たとえば、様々な要素もしくは構成要素が、組み合わされるかもしくは別のシステムに統合される可能性があり、または特定の特徴が、省略されるかもしくは実装されない可能性がある。
加えて、様々な実施形態において分離しているまたは別々であるものとして説明され、図示された技術、システム、サブシステム、および方法は、本開示の範囲を逸脱することなくその他のシステム、構成要素、技術、または方法と組み合わされるかまたは統合される可能性がある。変更、置き換え、および改変のその他の例が、当業者によって突き止められる可能性があり、本明細書において開示された精神および範囲を逸脱することなくなされる可能性がある。