(57)【要約】  ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、ピクチャが２つ以上のセグメントに区分されるという情報を復号することと、１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号することと、１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定することと、ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号することと、１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号することと、セグメントユニットの数におけるピクチャ幅および第１の値に基づいてセグメント列幅を導出することと、セグメントユニットの数におけるピクチャ高さおよび第２の値に基づいてセグメント行高さを導出することと、導出されたセグメント列幅および導出されたセグメント高さに基づいて、現在ブロックについての空間ロケーションを導出することと、導出された空間ロケーションに基づいて現在ブロックを復号することとを含む、ピクチャを復号するための方法。【選択図】図１５
2021524683.tif 000002
【特許請求の範囲】
【請求項１】
ピクチャ（１０）を復号するための方法（１５００）であって、前記方法は、
ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、前記ピクチャが２つ以上のセグメントに区分されるという情報を復号すること（１５０２）と、
前記ビットストリーム中の前記１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号すること（１５０４）と、
前記１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定すること（１５０６）と、
前記ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号すること（１５０８）と、
前記ビットストリーム中の前記１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号すること（１５１０）と、
セグメントユニットの数におけるピクチャ幅および前記第１の値に基づいてセグメント列幅を導出すること（１５１２）と、
セグメントユニットの数におけるピクチャ高さおよび前記第２の値に基づいてセグメント行高さを導出すること（１５１４）と、
前記導出されたセグメント列幅および前記導出されたセグメント行高さに基づいて、現在ブロックについての空間ロケーションを導出すること（１５１６）と、
前記導出された空間ロケーションに基づいて前記現在ブロックを復号すること（１５１８）と
を含む、方法（１５００）。
【請求項２】
セグメント列幅を導出することが、
１つの列を除く、前記ピクチャ中のすべてのセグメント列の列幅値を前記第１の値に等しく設定することと、前記１つの残っているセグメント列の列幅値を、前記ピクチャ幅マイナス前記１つのセグメント列を除くすべてのセグメント列の前記幅値の和に等しく設定することと
を含む、請求項１に記載の方法。
【請求項３】
セグメント行高さを導出することが、
１つの行を除く、前記ピクチャ中のすべてのセグメント行の行高さ値を前記第２の値に等しく設定することと、前記１つの残っているセグメント行の行高さ値を、ピクチャ高さマイナス前記１つのセグメント行を除くすべてのセグメント行の前記高さ値の和に等しく設定することと
を含む、請求項１または２に記載の方法。
【請求項４】
前記１つまたは複数のシンタックス要素がピクチャパラメータセット中に位置する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記１つまたは複数のシンタックス要素は、前記空間セグメンテーションが均一であるかどうかを指定する１ビットフラグを含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
セグメントユニットがコーディングツリーユニットまたはコーディングツリーブロックである、請求項１から５のいずれか一項に記載の方法。
【請求項７】
セグメントユニットの数における前記ピクチャのサイズを計算することをさらに含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
セグメントユニットの数における前記ピクチャの前記サイズを計算することが、前記ピクチャセグメントのサイズを高さについて計算することと、前記ピクチャセグメントのサイズを幅について計算することとを含む、請求項７に記載の方法。
【請求項９】
前記第１の値がセグメントユニットにおけるタイル幅を表し、前記第２の値がセグメントユニットにおけるタイル高さを表す、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記ビットストリーム中の１つまたは複数のコードワードから前記第１の値を復号することが、前記ビットストリーム中の特定のコードワードの値を復号することと、前記復号された値に１を加算することとからなる、および／または
前記ビットストリーム中の１つまたは複数のコードワードから前記第２の値を復号することが、前記ビットストリーム中の第２の特定のコードワードの値を復号することと、前記復号された値に１を加算することとからなる、
請求項１から９のいずれか一項に記載の方法。
【請求項１１】
セグメント列幅を導出することが、（Ａ−ＴｉｌｅＷｉｄｔｈ）に等しい値をＴｉｌｅＷｉｄｔｈと比較することを含み、ＴｉｌｅＷｉｄｔｈが前記第１の値に等しく、Ａが残っている幅値に等しい、および／または
セグメント行高さを導出することが、（Ａ−ＴｉｌｅＨｅｉｇｈｔ）に等しい値をＴｉｌｅＨｅｉｇｈｔと比較することを含み、ＴｉｌｅＨｅｉｇｈｔが前記第２の値に等しく、Ａが残っている高さ値に等しい、
請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
前記残っている幅値が前記ピクチャ幅に等しい、および／または
前記残っている高さ値が前記ピクチャ高さに等しい、
請求項１１に記載の方法。
【請求項１３】
（Ａ−ＴｉｌｅＷｉｄｔｈ）の前記値がＴｉｌｅＷｉｄｔｈよりも大きいことが決定された場合、第１の列幅変数をＴｉｌｅＷｉｄｔｈに等しく設定するステップと、（Ａ−（２×ＴｉｌｅＷｉｄｔｈ））に等しい値をＴｉｌｅＷｉｄｔｈと比較するステップとを実行すること、および／または
（Ａ−ＴｉｌｅＨｅｉｇｈｔ）の前記値がＴｉｌｅＨｅｉｇｈｔよりも大きいことが決定された場合、第１の行高さ変数をＴｉｌｅＨｅｉｇｈｔに等しく設定するステップと、（Ａ−（２×ＴｉｌｅＨｅｉｇｈｔ））に等しい値をＴｉｌｅＨｅｉｇｈｔと比較するステップとを実行すること
をさらに含む、請求項１１または１２に記載の方法。
【請求項１４】
前記値（Ａ−ＴｉｌｅＷｉｄｔｈ）をＴｉｌｅＷｉｄｔｈと比較することが、Ａを（Ａ−ＴｉｌｅＷｉｄｔｈ）に等しく設定することと、ＡをＴｉｌｅＷｉｄｔｈと比較することとを含む、および／または
前記値（Ａ−ＴｉｌｅＨｅｉｇｈｔ）をＴｉｌｅＨｅｉｇｈｔと比較することが、Ａを（Ａ−ＴｉｌｅＨｅｉｇｈｔ）に等しく設定することと、ＡをＴｉｌｅＨｅｉｇｈｔと比較することとを含む、
請求項１１、１２、または１３に記載の方法。
【請求項１５】
Ａ−ＴｉｌｅＷｉｄｔｈがＴｉｌｅＷｉｄｔｈよりも小さいことが決定されたか、またはＡ−ＴｉｌｅＷｉｄｔｈがＴｉｌｅＷｉｄｔｈよりも大きくないことが決定された場合、第２の列幅変数をＡ−ＴｉｌｅＷｉｄｔｈに等しく設定すること、および／または
Ａ−ＴｉｌｅＨｅｉｇｈｔがＴｉｌｅＨｅｉｇｈｔよりも小さいことが決定されたか、またはＡ−ＴｉｌｅＨｅｉｇｈｔがＴｉｌｅＨｅｉｇｈｔよりも大きくないことが決定された場合、第２の行高さ変数をＡ−ＴｉｌｅＨｅｉｇｈｔに等しく設定すること
をさらに含む、請求項１３または１４に記載の方法。
【請求項１６】
前記第２の列幅変数をＡ−ＴｉｌｅＷｉｄｔｈに等しく設定することは、Ａ−ＴｉｌｅＷｉｄｔｈが０よりも大きい場合にのみ実行される、および／または
前記第２の行高さ変数をＡ−ＴｉｌｅＨｅｉｇｈｔに等しく設定することは、Ａ−ＴｉｌｅＨｅｉｇｈｔが０よりも大きい場合にのみ実行される、
請求項１５に記載の方法。
【請求項１７】
前記ピクチャ中のタイル列の数を表す変数を変数ｉの値に等しくまたは前記変数ｉの値＋１に等しく設定することであって、ｉは、値（Ａ−（（ｉ−１）×ＴｉｌｅＷｉｄｔｈ））がＴｉｌｅＷｉｄｔｈよりも小さくないが、値（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））がＴｉｌｅＷｉｄｔｈよりも小さくなるような整数である、前記ピクチャ中のタイル列の数を表す変数を設定すること、および／または
前記ピクチャ中のタイル行の数を表す変数を変数ｉの値に等しくまたは前記変数ｉの値＋１に等しく設定することであって、ｉは、値（Ａ−（（ｉ−１）×ＴｉｌｅＨｅｉｇｈｔ））がＴｉｌｅＨｅｉｇｈｔよりも小さくないが、値（Ａ−（ｉ×ＴｉｌｅＨｅｉｇｈｔ））がＴｉｌｅＨｅｉｇｈｔよりも小さくなるような整数である、前記ピクチャ中のタイル行の数を表す変数を設定すること
をさらに含む、請求項１５または１６に記載の方法。
【請求項１８】
前記ピクチャ中のタイル列の数を表す前記変数は、Ａ−ＴｉｌｅＷｉｄｔｈが０よりも大きくない場合はｉに等しく設定され、Ａ−ＴｉｌｅＷｉｄｔｈが０よりも大きい場合はｉ＋１に等しく設定される、および／または
前記ピクチャ中のタイル行の数を表す前記変数は、Ａ−ＴｉｌｅＨｅｉｇｈｔが０よりも大きくない場合はｉに等しく設定され、Ａ−ＴｉｌｅＨｅｉｇｈｔが０よりも大きい場合はｉ＋１に等しく設定される、
請求項１７に記載の方法。
【請求項１９】
セグメント列幅を導出することが、
１ａ）変数Ａを残っている幅値に設定することと、
２ａ）変数ｉを初期値に設定することと、
３ａ）ＴｉｌｅＷｉｄｔｈが前記第１の値に等しい、（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しい値がＴｉｌｅＷｉｄｔｈよりも小さいかどうかを決定することと、
４ａ）（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しい前記値がＴｉｌｅＷｉｄｔｈよりも小さくないことが決定された場合、変数ｃｏｌ＿ｗｉｄｔｈ［ｉ］をＴｉｌｅＷｉｄｔｈに等しく設定するステップと、ｉを増分するステップと、その後、ステップ３ａ）およびステップ４ａ）を繰り返すステップとを実行することとを含む、および／または
セグメント行高さを導出することが、
１ｂ）変数Ａを残っている高さ値に設定することと、
２ｂ）変数ｉを初期値に設定することと、
３ｂ）ＴｉｌｅＨｅｉｇｈｔが前記第１の値に等しい、（Ａ−（ｉ×ＴｉｌｅＨｅｉｇｈｔ））に等しい値がＴｉｌｅＨｅｉｇｈｔよりも小さいかどうかを決定することと、
４ｂ）（Ａ−（ｉ×ＴｉｌｅＨｅｉｇｈｔ））に等しい前記値がＴｉｌｅＨｅｉｇｈｔよりも小さくないことが決定された場合、変数ｒｏｗ＿ｈｅｉｇｈｔ［ｉ］をＴｉｌｅＨｅｉｇｈｔに等しく設定するステップと、ｉを増分するステップと、その後、ステップ３ｂ）およびステップ４ｂ）を繰り返すステップとを実行することと
を含む、
請求項１から１０のいずれか一項に記載の方法。
【請求項２０】
（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しい前記値がＴｉｌｅＷｉｄｔｈよりも小さく、０よりも大きいことが決定された後に、ｃｏｌ＿ｗｉｄｔｈ［ｉ］を（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しく設定することと、ｉを増分することとを実行すること、および／または
（Ａ−（ｉ×ＴｉｌｅＨｅｉｇｈｔ））に等しい前記値がＴｉｌｅＨｅｉｇｈｔよりも小さく、０よりも大きいことが決定された後に、ｒｏｗ＿ｈｅｉｇｈｔ［ｉ］を（Ａ−（ｉ×ＴｉｌｅＨｅｉｇｈｔ））に等しく設定することと、ｉを増分することとを実行すること
をさらに含む、請求項１９に記載の方法。
【請求項２１】
前記残っている幅値が前記ピクチャ幅に等しい、および／または
前記残っている高さ値が前記ピクチャ高さに等しい、
請求項１９または２０に記載の方法。
【請求項２２】
命令（１１４４）を含むコンピュータプログラム（１１４３）であって、前記命令（１１４４）が処理回路（１１０２）によって実行されたとき、前記処理回路（１１０２）に請求項１から２１のいずれか一項に記載の方法を実行させる、コンピュータプログラム（１１４３）。
【請求項２３】
請求項２２に記載のコンピュータプログラムを含んでいるキャリアであって、前記キャリアは、電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体（１１４２）のうちの１つである、キャリア。
【請求項２４】
ピクチャ（１０）を復号するための復号装置（１１００）であって、前記復号装置（１１００）は、
ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、前記ピクチャが２つ以上のセグメントに区分されるという情報を復号することと、
前記ビットストリーム中の前記１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号することと、
前記１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定することと、
前記ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号することと、
前記ビットストリーム中の前記１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号することと、
セグメントユニットの数におけるピクチャ幅および前記第１の値に基づいてセグメント列幅を導出することと、
セグメントユニットの数におけるピクチャ高さおよび前記第２の値に基づいてセグメント行高さを導出することと、
前記導出されたセグメント列幅および前記導出されたセグメント行高さに基づいて、現在ブロックについての空間ロケーションを導出することと、
前記導出された空間ロケーションに基づいて前記現在ブロックを復号することと
を行うように設定された、復号装置（１１００）。
【請求項２５】
前記復号装置（１１００）が、請求項２から２１のいずれか一項に記載の方法を実行するようにさらに設定された、請求項２４に記載の復号装置（１１００）。
【請求項２６】
ピクチャ（１０）を復号するための復号装置（１１００）であって、前記復号装置（１１００）は、
コンピュータ可読記憶媒体（１１４２）と、
前記コンピュータ可読記憶媒体に結合された処理回路（１１０２）であって、前記処理回路が、前記復号装置（１１００）に請求項１から２１のいずれか一項に記載の方法を実行させるように設定された、処理回路（１１０２）と
を備える、復号装置（１１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は高効率ビデオコーディング（ＨＥＶＣ）およびバーサタイルビデオコーディング（ＶＶＣ）に関する。
【背景技術】
【０００２】
ＨＥＶＣおよび次世代ビデオコーディング
高効率ビデオコーディング（ＨＥＶＣ）、別名Ｈ．２６５は、時間予測と空間予測の両方を利用する、ＩＴＵ−ＴおよびＭＰＥＧによって標準化されたブロックベースのビデオコーデックである。空間予測は、現在ピクチャ内からのイントラ（Ｉ）予測を使用して達成される。時間予測は、前に復号された参照ピクチャからのブロックレベルのインター（Ｐ）予測または双方向インター（Ｂ）予測を使用して達成される。残差（residual）と呼ばれる、元のピクセルデータと予測ピクセルデータとの間の差は、周波数領域に変換され、量子化され、次いで、予測モードおよび動きベクトルなど、同じくエントロピーコーディングされる必要な予測パラメータと一緒に送信される前に、エントロピーコーディングされる。変換された残差を量子化することによって、ビデオのビットレートと品質との間のトレードオフが制御され得る。量子化のレベルは量子化パラメータ（ＱＰ）によって決定される。デコーダは、残差を取得するために、エントロピー復号、逆量子化、および逆方向変換（inverse transformation）を実行する。デコーダは、次いで、ピクチャを再構成するためにイントラ予測またはインター予測に残差を加算する。
【０００３】
ＭＰＥＧおよびＩＴＵ−Ｔは、ジョイントビデオエクスプロラトリーチーム（ＪＶＥＴ）内でＨＥＶＣの後継に関する作業を行っている。開発中のこのビデオコーデックの名称はＶＣＣである。
【０００４】
スライス
ＨＥＶＣにおけるスライスの概念は、ピクチャを個々にコーディングされたスライスに分割し、ここで各スライスは、コーディングツリーユニット（ＣＴＵ）のユニット中でラスタ走査順序で読み取られる。異なるコーディングタイプが同じピクチャのスライスのために使用され得、すなわち、スライスは、Ｉスライス、ＰスライスまたはＢスライスのいずれかであり得る。スライスの主要な目的は、データ損失の場合に再同期を可能にすることである。
【０００５】
タイル
ＨＥＶＣビデオコーディング規格は、ピクチャを矩形の空間的に独立した領域に分割する、タイルと呼ばれるツールを含む。タイルを使用すると、ＨＥＶＣにおけるピクチャは、タイルが行と列との交差部である、サンプルの行と列とに区分され得る。ＨＥＶＣにおけるタイルはＣＴＵ境界と常に整合させられる。
【０００６】
図１は、ピクチャについて合計２０個のタイルを生じる、４つのタイル行と５つのタイル列とを使用するタイル区分の例を示す。
【０００７】
タイル構造は、行の厚さと列の幅とを指定することによってピクチャパラメータセット（ＰＰＳ）中でシグナリングされる。個々の行および列は異なるサイズを有することができるが、区分は、それぞれ左から右におよび上部から下部に、常にピクチャ全体にわたって行われる。同じピクチャのタイル間の復号依存性はない。このことは、イントラ予測と、エントロピーコーディングのためのコンテキスト選択と、動きベクトル予測とを含む。１つの例外は、インループ（in-loop）フィルタ処理依存性が一般にタイル間で許容されることである。
【０００８】
ＨＥＶＣにおけるタイル構造を指定するために使用されるＰＰＳシンタックスは、以下の表１に記載されている。フラグ、たとえばｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、タイルが使用されるか否かを示す。フラグが設定された場合、タイル列およびタイル行の数が指定される。ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇは、列幅および行高さが明示的にシグナリングされるかどうか、またはタイル境界線を均等に離間させるための事前規定された方法が使用されるべきであるかどうかを指定するフラグである。明示的なシグナリングが示された場合、列幅は１つずつシグナリングされ、その後行高さが１つずつシグナリングされる。そのような列幅および行高さはＣＴＵユニット中でシグナリングされる。ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇフラグは、タイル境界を横断するインループフィルタが、ピクチャ中のすべてのタイル境界についてオンまたはオフにされるかどうかを指定する。
2021524683.tif 000003
【０００９】
ＨＥＶＣにおけるタイル構造を指定するためのセマンティクスについて、以下でさらに詳細に説明する。
【００１０】
１に等しいｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＰＰＳを参照する各ピクチャ中に２つ以上のタイルがあることを指定する。０に等しいｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＰＰＳを参照する各ピクチャ中にただ１つのタイルがあることを指定する。
【００１１】
ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＋１は、ピクチャを区分するタイル列の数を指定する。ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１は、両端値を含む、０からＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ−１の範囲内であるとする。存在しないとき、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１の値は０に等しいと推論される。
【００１２】
ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＋１は、ピクチャを区分するタイル行の数を指定する。ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１は、両端値を含む、０からＰｉｃＨｅｉｇｈｔＩｎＣｔｂｓＹ−１の範囲内であるとする。存在しないとき、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１の値は０に等しいと推論される。
【００１３】
ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１とｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１の両方が０に等しくならないとする。
【００１４】
１に等しいｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇは、タイル列境界、および同様にタイル行境界がピクチャにわたって均一に分配されることを指定する。０に等しいｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇは、タイル列境界、および同様にタイル行境界がピクチャにわたって均一に分配されないが、シンタックス要素ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］およびｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１［ｉ］を使用して明示的にシグナリングされることを指定する。存在しないとき、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇの値は１に等しいと推論される。
【００１５】
ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］＋１はＣＴＢのユニット中のｉ番目のタイル列の幅を指定する。
【００１６】
ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１［ｉ］＋１はＣＴＢのユニット中のｉ番目のタイル行の高さを指定する。
【００１７】
１に等しいｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、インループフィルタ処理演算が、ＰＰＳを参照するピクチャ中のタイル境界を横断して実行され得ることを指定する。０に等しいｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、インループフィルタ処理演算が、ＰＰＳを参照するピクチャ中のタイル境界を横断して実行されないことを指定する。インループフィルタ処理演算は、デブロッキングフィルタ演算と、サンプル適応オフセットフィルタ（sample adaptive offset filter）演算とを含む。存在しないとき、ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は１に等しいと推論される。
【００１８】
ＶＶＣは、ＨＥＶＣの場合と同様に、旧来のスライスを使用しないことが予想される。代わりに、タイルは、ＶＲストリーミングを含む、ビデオサービスからの空間ランダムアクセスの需要の増加により、ＶＶＣにおいてより大きい役割を果たすことが予想される。
【００１９】
タイルグループの概念は、最近のＪＶＥＴ会議において、現在のＶＶＣドラフト中に含められることが承認された。タイルグループは、各タイルのオーバーヘッドを低減するように複数のタイルをグループ化するために使用される。
【００２０】
現在のＶＶＣドラフトにおけるタイルグループは矩形であり、Ｍ×Ｎ個のタイルからなり得、ここで、Ｍは垂直方向のタイルの数であり、Ｎは水平方向のタイルの数である。
【００２１】
ＨＥＶＣにおける均一なタイル区分
ＨＥＶＣタイル区分では、すべてのタイル境界がＣＴＵグリッドと整合させられる必要がある。そのことは、すべてのタイルが完全なＣＴＵからなり、タイル中で許容される不完全なＣＴＵのみが、ピクチャの右縁部または下縁部に位置するタイルであることを意味する。ＨＥＶＣにおいて、１に等しいシンタックス要素ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇは、タイル列境界、および同様にタイル行境界がピクチャにわたって均一に分配されることを指定する。しかしながら、この均一性はＣＴＵ細分性（granularity）によって制限される。ＨＥＶＣにおいて、両端値を含む、０からｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１にわたるｉについてのリストｃｏｌＷｉｄｔｈ［ｉ］は、コーディングツリーブロック（coding tree block）（ＣＴＢ）のユニット中のｉ番目のタイル列の幅を指定し、以下の式（Ａ）のように導出される。
2021524683.tif 000004
【００２２】
同様の式（Ｂ）は、タイル行の高さ（ｒｏｗＨｅｉｇｈｔ［ｉ］）を決定するために使用される。
2021524683.tif 000005
【００２３】
フレキシブルタイルスプリッティング（flexible tile splitting）
ＪＶＥＴ−Ｋ０１５５と、その後のＪＶＥＴ−Ｌ０３５９において導入されたフレキシブルタイルスプリッティングは、ピクチャを区分タイルにスプリットする機能を与え、ここで、各タイルの幅または高さは、ＣＴＵサイズよりも微細なユニットサイズの倍数である。フレキシブルタイルスプリッティングは、（ピクチャの右縁部および下縁部のみではなく）タイルごとの右縁部および下縁部における不完全なＣＴＵの使用を許容する。図２Ａ〜図２Ｂは、タイルユニットサイズがＣＴＵサイズの１／４である、ＪＶＥＴ−Ｌ０３５９の場合と同様にフレキシブルタイルスプリッティングを使用する２×２タイルセグメンテーションについての例を与える。
【００２４】
図２Ａ〜図２Ｂでは、タイルは太い黒線によって示されており、ＣＴＵは薄い黒線によって示されている。図２Ａは、ピクチャ中に２０個のＣＴＵがあるＨＥＶＣ方法を示す。図２Ｂは、ピクチャ中に２４個のＣＴＵがあり、タイルユニットサイズが、破線グレー線によって示されている、ＣＴＵサイズの１／４に等しい、ＪＶＥＴ−Ｌ０３５９における提案された方法を示す。
【００２５】
フレキシブルタイルスプリッティングは、負荷分散や、ＣＴＵサイズの倍数でないことが望ましいフェイスサイズをもつ３６０°ビデオなどの適用例のために有用であり得る。
【００２６】
本開示に関連がある、ＪＶＥＴ−Ｌ０３５９からのシンタックスおよびセマンティクスを以下に記載し、ここで、イタリック体の部分は、Ｌ０３５９において提案された、追加されたテキストである。
2021524683.tif 000006
【００２７】
ｔｉｌｅ＿ｕｎｉｔ＿ｓｉｚｅ＿ｉｄｃは、ルーマサンプル（luma sample）中のタイルユニットブロックのサイズを指定する。変数ＴｉｌｅＵｎｉｔＳｉｚｅＹ、変数ＰｉｃＷｉｄｔｈＩｎＴｉｌｅＵｎｉｔｓＹおよび変数ＰｉｃＨｅｉｇｈｔＩｎＴｉｌｅＵｎｉｔｓＹは以下のように導出される。
2021524683.tif 000007
【００２８】
ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＋１は、タイルユニットブロックのユニット中のピクチャを区分するタイル列の数を指定する。ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１は、両端値を含む、０からＰｉｃＷｉｄｔｈＩｎＴｉｌｅＵｎｉｔｓＹ−１の範囲内とする。存在しないとき、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１の値は０に等しいと推論される。
【００２９】
ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＋１は、タイルユニットブロックのユニット中のピクチャを区分するタイル行の数を指定する。ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１は、両端値を含む、０からＰｉｃＨｅｉｇｈｔＩｎＴｉｌｅＵｎｉｔｓＹ−１の範囲内とする。存在しないとき、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１の値は０に等しいと推論される。
【００３０】
変数ＮｕｍＴｉｌｅｓＩｎＰｉｃは以下のように導出される。
2021524683.tif 000008
【００３１】
両端値を含む、０からｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１にわたるｉについてのリストｃｏｌＷｉｄｔｈ［ｉ］は、タイルユニットブロックのユニット中のｉ番目のタイル列の幅を指定し、以下のように導出される。
2021524683.tif 000009
【００３２】
両端値を含む、０からｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１にわたるｊについてのリストｒｏｗＨｅｉｇｈｔ［ｊ］は、タイルユニットブロックのユニット中のｊ番目のタイル行の高さを指定し、以下のように導出される。
2021524683.tif 000010
【００３３】
両端値を含む、０からｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＋１にわたるｉについてのリストＴｉｌｅＣｏｌＸ［ｉ］は、ルーマサンプルのユニット中のｉ番目のタイル列の左上ルーマサンプルのＸロケーションを指定し、以下のように導出される。
2021524683.tif 000011
【００３４】
両端値を含む、０からｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＋１にわたるｊについてのリストＴｉｌｅＲｏｗＹ［ｊ］は、ルーマサンプルのユニット中のｊ番目のタイル行の左上ルーマサンプルのＹロケーションを指定し、以下のように導出される。
2021524683.tif 000012
【００３５】
セグメントグループ、セグメントおよびユニット
次に、セグメントグループ、セグメント、およびユニットについて説明する。本開示におけるソリューションは、異なる種類のピクチャ区分方式に適用され得、ＨＥＶＣおよびＶＶＣドラフトから知られているタイルパーティションに限られないので、セグメントという用語は、タイルよりも一般的な用語として使用される。本開示において、タイルはセグメントの一実施形態であるが、セグメントの他の実施形態もあり得る。
【００３６】
図３は、ビデオストリームのピクチャ（１０）と、ユニット（８）、セグメント（１１）およびセグメントグループ（１２）へのピクチャの例示的な区分とを示す。図３（ａ）は、６４個のユニット（８）からなるピクチャ（１０）を示す。図３（ｂ）は、１６個のセグメント（１１）からなる、同じピクチャ（１０）のセグメントパーティション構造（１３）を示す。パーティション構造（１３）は一点鎖線によって示されている。各セグメント（１１）はいくつかのユニットからなる。セグメントは、整数個の完全なユニット、または完全なユニットと部分ユニットとの組合せのいずれかからなることができる。いくつかのセグメントがセグメントグループを形成する。図３（ｃ）は、８個のセグメントグループからなる、同じピクチャ（１０）のセグメントグループ区分を示す。セグメントグループはラスタ走査順序のセグメントからなり得る。代替的に、セグメントグループは、一緒に矩形を形成する、セグメントの任意のグループからなり得る。代替的に、セグメントグループはセグメントの任意のサブセットからなり得る。
【００３７】
図４は、一点鎖線が、ピクチャ（１０）を４つのセグメントに分割するパーティション構造を示す、ピクチャ（１０）を示す。図４はまた、３つのユニット（１６、１７、１８）を示す。図に示されているように、２つのユニット（１６、１７）は１つの現在セグメント（１５）に属し、１つのユニット（１８）は異なる隣接セグメント（１４）に属する。セグメントは他のセグメントに対して独立しており、そのことは、ユニットを復号するときに、セグメント境界がピクチャ境界と同様に処理されることを意味する。このことは、たとえば、イントラ予測モードの導出および量子化パラメータ値の導出など、復号中の要素の導出プロセスに影響を及ぼす。
【００３８】
イントラモードは、現在の技術においてよく知られており、サンプル予測のための現在ピクチャの前に復号されたサンプルからの予測のみを使用するユニットのために使用され、シグナリングされる。現在ユニット（１６）におけるイントラ予測モードの導出は、他の隣接ユニット（１７）における前に導出されたイントラ予測モードに依存することが一般的である。セグメントが独立しているので、現在ユニット（１６）におけるイントラ予測モードの導出は、現在セグメント（１５）に属するユニット（１７）における前に導出されたイントラ予測モードのみに依存することがあり、異なるセグメント（１４）に属するいかなるユニット（１８）におけるいかなるイントラ予測モードにも依存することがない。
【００３９】
このことは、図４におけるパーティション構造が、異なるセグメント（１４）中のユニット（１８）におけるイントラ予測モードを、現在セグメント（１５）中のユニット（１６）のためのイントラ予測モードの導出のために利用不可能にすることを意味する。異なるセグメント中のあるユニット（１８）と現在セグメント（１５）中のユニット（１６）とが同じセグメントに属していたのであれば、異なるセグメント中のあるユニット（１８）におけるモードは、現在セグメント（１５）中のユニット（１６）におけるイントラ予測モードの導出のために多分に使用されていたであろうことに留意されたい。代わりに、セグメント境界は、現在セグメント（１５）中のユニット（１６）のためのピクチャ境界と同じ効果をイントラモード導出に対して有し得る。
【００４０】
本開示の文脈では、セグメントはタイルまたはスライスであり得、セグメントグループはタイルグループであり得る。本開示において、「タイル」と「セグメント」という用語は互換的に使用され得る。いくつかの実施形態では、ユニットはＣＴＵと等価であり得る。
【発明の概要】
【００４１】
ＨＥＶＣ式（Ａ）およびＨＥＶＣ式（Ｂ）によると、タイル列幅（および行高さ）は
2021524683.tif 000013
の形態で２つの項を互いから減算することによって計算され、ここで、ｉは非負整数であり、ｋは、ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹに等しい分子と、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＋１に等しい分母とをもつ有理数である。ｋが整数でないときの、そのような計算の出力は、ｋおよびｉの値に応じて
2021524683.tif 000014
に等しくなり得る。この固有の特徴は、タイル列幅サイズおよびタイル行高さサイズに１個のＣＴＵほど大きい変動を引き起こす。本開示の文脈では、そのような変動はタイルサイズリップル（tile size ripple）と呼ばれる（いくつかの例について以下の表２参照）。このリップルのパターンは一定でなく、ｋの値を与える、ＣＴＵにおけるピクチャの幅ならびにタイル列およびタイル行の数と、ｉによって決定されるタイルグリッド上のタイルの配置とに依存する。１に等しいｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇをもつＨＥＶＣタイル区分を使用するタイル列幅におけるリップルのいくつかの例が表２に示されている。同じ例はタイル行高さにも適用され得る。
2021524683.tif 000015
【００４２】
表２は、１に等しいｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇと、ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹおよびｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１についての所与の値とをもつＨＥＶＣタイル区分を使用して計算されたタイル列幅を示す。ｃｏｌＷｉｄｔｈ［ｉ］の値におけるリップルは可視である。
【００４３】
最後のタイルサイズにおけるこの不一致は、最後のタイルサイズ値を予測するために入力値およびコードの詳細を調査する必要があるので、望ましくない。リップル問題は水平方向と垂直方向の両方において起こり得る。このことは、詳細を検査することなしに、タイルグリッド中の特定のタイルの正しい水平サイズおよび垂直サイズを決定することをより困難にする。
【００４４】
別の問題は、タイルの均一な離間のためのＨＥＶＣの現在の実装において、ピクチャ中のタイルのいくつかの行または列が削除された場合、ピクチャの残っている一部の内側のタイル境界が新しいリップルパターンに応じて移動し得ることである。このことは、タイル抽出プロセスにおけるタイルサイズおよびアドレスを再計算することを必要とする。表５００として図５に示された例は、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが１に等しいとき、いくつかのタイルが元のピクチャから抽出された場合、ＨＥＶＣ均一タイル間隔（uniform tile spacing）においてタイル列境界、したがってタイルサイズがどのように変化し得るかを示す。元のピクチャ中のタイル境界と比較して、いくつかのタイル列を削除した場合に変化するタイル境界は太線で示されている。
【００４５】
図５における表５００は、ＨＥＶＣ均一タイル間隔を使用するタイル境界を示す。内部タイル境界は、元のピクチャと、元のピクチャからいくつかのタイルを削除した後との間で変化する。元のピクチャについてのパラメータは以下のように設定されている。ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ＝１、ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ＝１０、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＝３、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＝１。
【００４６】
ＪＶＥＴ−Ｌ０３５９は、（ピクチャの右縁部および下縁部のみではなく）タイルごとの右縁部および下縁部において不完全なＣＴＵを使用する可能性を与えることによって、より微細なタイルユニットサイズ細分性を可能にする、フレキシブルタイルスプリッティングを提案する。図２は、タイルユニットサイズがＣＴＵサイズの１／４であり、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが１に等しい、ＪＶＥＴ−Ｌ０３５９の場合と同様にフレキシブルタイルスプリッティングを使用する、２×２タイルセグメンテーションについての例を与える。
【００４７】
ＪＶＥＴ−Ｌ０３５９において提案されているように、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが１に等しい場合、タイル列の幅は以下の式を使用して決定される。
2021524683.tif 000016
【００４８】
同様の式が、タイル行の高さ（ｒｏｗＨｅｉｇｈｔ［ｉ］）を決定するために使用される。
【００４９】
上記の実装形態は、ＪＶＥＴ−Ｌ０３５９提案についてもリップル問題が存在することを示す。ＣＴＵ細分性よりも微細な細分性をもつタイルサイズを規定する可能性がもたらされたことにより、ここで説明するように、一貫性のないタイルサイズのまた別のアーティファクトがもたらされる。Ｌ０３５９において提案されたアルゴリズムを使用すると、タイルユニットサイズが、たとえば１／２または１／４に変化したとき、タイル区分は、いくつかのピクチャ幅およびタイルユニットサイズ値について一貫したままではない。理由は、Ｌ０３５９における均一タイルスプリッティングについての提案された式は、異なるタイルユニットサイズを許容するが、タイルグリッド中のわずかにより大きいまたはより小さいタイルの構成を正則化しないことである。以下の表３は、ピクチャサイズが固定され、タイルユニットサイズが変更される、たとえば、Ｌ０３５９において提案されたフレキシブルタイルスプリッティングを使用して１／２または１／４に分割されるケースについてのいくつかの例を示す。最後のタイル列幅は、より大きいタイル幅がピクチャの左側にあるときもあり、ピクチャの右側にあるときもあるようなタイルユニットサイズの変更の結果として、反転する。この予測不可能性は望ましくない。
2021524683.tif 000017
【００５０】
表３は、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが１に設定されたときに、Ｌ０３５９の場合と同様にフレキシブルタイルスプリッティングを使用して計算されたタイル列幅を示す。
【００５１】
タイルサイズに対する丸め効果の不一致を編成するためのルールにより、コードおよび入力値の詳細な調査の必要なしに、最後のタイルサイズを決定することが容易になると結論することができる。タイルサイズリップルを正則化するためのシステマティックな手法はまた、元のピクチャと、元のピクチャからのタイルのサブセットとについての一貫したタイル区分結果を与える。
【００５２】
別個の問題は、均一なタイルスプリットから生じるタイルのサイズが著しく変動し得ることである。図６に示された表６００では、たとえば、ＨＥＶＣ均一タイル間隔のための元のピクチャ中のタイルは４つの異なるサイズを有し、最も小さいものは２×３ＣＴＵであり、最も大きいものは３×４ＣＴＵである。
【００５３】
分割の制限された細分性に応じて、セグメントサイズが厳密になることができないとき、好ましいオーダーをもつセグメントのサイズでリップルを正則化するソリューションが本明細書で提案されている。提案されたソリューションでは、丸め効果に応じて、わずかに小さいサイズまたはわずかに大きいサイズをもつタイルが好ましい構成を有する。一実施形態では、左から右の走査方向におけるタイル幅は同じにとどまるか、または減少するのみである。本明細書で開示する、提案されたソリューションは、タイルグリッド中のタイル列幅および／またはタイル行高さ、または個々のタイルの幅および高さに適用され得る。一実施形態では、（所与の細分性および丸め効果により）わずかに大きいサイズをもつタイルはピクチャの左上部に位置し、わずかに小さいサイズをもつタイルはピクチャの右下部に位置する。
【００５４】
代替ソリューションでは、得られたタイルサイズが可能な限り等しいサイズを有する、均一なタイルについての方法が本明細書で提案されている。
【００５５】
したがって、一態様では、ピクチャを復号するための方法が提供される。本方法は、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、ピクチャが２つ以上のセグメントに区分されるという情報を復号することを含む。本方法はまた、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号することを含む。本方法はまた、１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定することを含む。本方法はまた、ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号することを含む。本方法はまた、ビットストリーム中の１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号することを含む。本方法はまた、セグメントユニットの数におけるピクチャ幅および第１の値に基づいてセグメント列幅を導出することを含む。本方法はまた、セグメントユニットの数におけるピクチャ高さおよび第２の値に基づいてセグメント行高さを導出することを含む。本方法はまた、導出されたセグメント列幅および導出されたセグメント行高さに基づいて、現在ブロックについての空間ロケーションを導出することを含む。本方法はまた、導出された空間ロケーションに基づいて現在ブロックを復号することを含む。
【００５６】
提案されたソリューションは、現在タイルの幅を前のタイルとは無関係に保つが、残っている数のタイルに区分されることになる（列または行における）残っている数のユニット上でのみである。結果として、タイルの均一な離間のための提案されたソリューションは、タイルが抽出された場合に、抽出されたおよび残っているタイルについてタイル区分をそのままに保つ。これにより、ピクチャスプリットまたはタイル抽出の場合にタイルサイズを再計算する必要がなくなる。タイルの均一な離間のためのＨＥＶＣの現在の実装では、ピクチャ中のタイルのいくつかの行または列が削除された場合、リップルパターンが変化することがあり、ピクチャの残っている一部の内側のタイル境界が新しいリップルパターンに応じて移動することがある。
【００５７】
一貫性は、提案されたソリューションの別の利点である。タイルの均一な離間のための提案されたソリューションは、入力パラメータまたはコードの詳細な調査なしに、タイルサイズ（たとえばタイル列幅およびタイル行高さ）を編成し、タイルサイズの最終構成についてのルールを与える。たとえば、提案されたソリューションの一実施形態では、タイルユニットにおけるピクチャ幅／高さがタイル列／行の数によって割り切れないとき、より大きいサイズに丸められたすべてのタイルはピクチャの左／上部に見つけられる。提案されたソリューションはまた、タイルユニットサイズの変更の場合、均一タイル間隔におけるタイルサイズのリップルを調整する。
【００５８】
提案された方法はまた、ＨＥＶＣ、およびＪＶＥＴ−Ｌ０３５９において提案されたフレキシブルタイルスプリットと比較して、複雑さを低減する。提案された方法は、乗算を有さず、タイル列の幅とタイル行の高さとを決定するための繰り返し当たり１回のみの除算を有するが、ＨＥＶＣ方法は、繰り返し当たり２回の乗算と２回の除算とを使用する。
【００５９】
代替ソリューションでは、得られたタイルサイズは可能な限り均一である。
【００６０】
本明細書に組み込まれ、本明細書の一部を形成する添付の図面は、様々な実施形態を示す。
【図面の簡単な説明】
【００６１】
【図１】一実施形態による、タイル区分の例を示す図である。
【図２Ａ】ＨＥＶＣタイル区分を使用したタイルセグメンテーションを示す図である。
【図２Ｂ】フレキシブルタイルスプリッティングを使用したタイルセグメンテーションを示す図である。
【図３】ビデオストリームのピクチャと、例示的な区分とを示す図である。
【図４】いくつかの実施形態による、ピクチャを示す図である。
【図５】いくつかの実施形態による、テーブルを示す図である。
【図６】いくつかの実施形態による、テーブルを示す図である。
【図７】一実施形態による、プロセスを示すフローチャートを示す図である。
【図８】一実施形態による、プロセスを示すフローチャートを示す図である。
【図９】一実施形態による、デコーダの機能ユニットを示すダイヤグラムである。
【図１０】一実施形態による、エンコーダの機能ユニットを示すダイヤグラムである。
【図１１】いくつかの実施形態による、ノードのブロック図である。
【図１２】一実施形態による、ピクチャを示す図である。
【図１３】一実施形態による、均一なタイル構造を示す図である。
【図１４】一実施形態による、タイル構造を示す図である。
【図１５】一実施形態による、プロセスを示すフローチャートを示す図である。
【図１６】一実施形態による、デコーダの機能ユニットを示すダイヤグラムである。
【発明を実施するための形態】
【００６２】
実施形態について説明するために、以下の用語を使用した。
【００６３】
算術演算子「／」は、０に向かう結果の切り捨てがある、整数除算のために使用される。たとえば、７／４および−７／−４は切り捨てられて１になり、−７／４および７／−４は切り捨てられて−１になる。
【００６４】
算術演算子「÷」は、切り捨てまたは丸めが意図されない、数式における除算のために使用される。
【００６５】
Ｃｅｉｌ（ｘ）は、ｘよりも大きいかまたはそれに等しい、最も小さい整数を与える。
【００６６】
Ｆｌｏｏｒ（ｘ）は、ｘよりも小さいかまたはそれに等しい、最も大きい整数を与える。
【００６７】
「タイル列幅」という用語と「タイル幅」という用語は互換的に使用され、そのことは、ソリューションが、タイル列幅がタイルグリッド中で計算されているとき、または（たとえばタイルグリッドがない場合）タイル幅が個々に計算されているときに適用され得ることを意味する。
【００６８】
「タイル行高さ」という用語と「タイル高さ」という用語は互換的に使用され、そのことは、ソリューションが、タイル行高さがタイルグリッド中で計算されているとき、または（たとえばタイルグリッドがない場合）タイル高さが個々に計算されているときに適用され得ることを意味する。
【００６９】
いくつかの実施形態によれば、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ＝１についてのタイルの幅（および同等に高さ）を規定するための、本明細書で開示する、提案されたソリューションは以下の要素を有する。
−  各タイルの幅を規定するためのループにおいて、タイルの幅は、タイルにまだ割り振られていない行におけるユニットサイズの数を意味する、利用可能な残っているユニットサイズを使用して規定される。
−  残っているユニットサイズの数は、次いで、行における残っているタイルの数によって除算される。
−  得られたタイルサイズは、タイルの幅を整えるための所与のルールに従って、より大きいまたはより小さい整数（Ｃｅｉｌ（）関数またはＦｌｏｏｒ（）関数）に向かって丸められる。
−  各タイルの幅を規定するためのループの繰り返しごとに、残っているユニットサイズ（たとえばＣＴＵ）の数を再計算するための随意の要素。
【００７０】
同じ要素は、タイルの高さを規定することに適用される。
【００７１】
本明細書で開示する、提案されたソリューションは、ビットストリームからのピクチャ１０を復号するためのデコーダ方法について説明しており、本方法は、ビットストリームからのピクチャ中のすべてのセグメントについてのサイズおよび／またはロケーションを導出することを含み、ピクチャ１０はいくつかのユニット８からなり、パーティション構造１３は、ピクチャを少なくとも２つのセグメント１１に区分し、デコーダは、ビットストリーム中の１つまたは複数のコードワードを復号することによって、空間セグメンテーションが均一であることを決定し、デコーダは、ビットストリーム中の１つまたは複数のコードワードを復号することによって、空間セグメントの数を決定し、デコーダはタイルユニットサイズを決定し、セグメントを均一な幅または高さに区分することは、空間セグメントの数とは無関係な固定のリップルパターンに従い、セグメントサイズの導出は、セグメントの数にわたるループ中で行われ、ループ内部で、セグメント化されるべき残っているタイルユニットの数と、残っているセグメントの数とが計算される。
【００７２】
一例では、提案されたソリューションは、以下のＨＥＶＣのライン
2021524683.tif 000018
を以下のラインと置き換える。
2021524683.tif 000019
【００７３】
提案された方法はまた、ＨＥＶＣ、およびＪＶＥＴ−Ｌ０３５９において提案されたフレキシブルタイルスプリットと比較して、複雑さを低減する。提案された方法は、乗算を有さず、タイル列の幅とタイル行の高さとを決定するための繰り返し当たり１回のみの除算を有するが、ＨＥＶＣ方法は、繰り返し当たり２回の乗算と２回の除算とを使用する。
【００７４】
実施形態１．単調リップル
一実施形態では、行中のセグメントの幅または列中のセグメントの高さは、事前規定された走査方向に従う昇順でも決してなく、降順でも決してない。セグメントはピクチャ中のタイルであり得、したがって、タイルサイズは走査方向において単調である（決して上昇もせず、決して下降もしない）。たとえば、タイル幅が左から右の走査方向において決して上昇しないことは、タイルの幅が、第１のタイルの左側に空間的に位置する同じ行上の別のタイルの幅よりも決して大きくならないことを意味する。
【００７５】
第１の実施形態では、ＨＥＶＣの上の決して上昇しないタイル列幅（左から右への走査方向）およびタイル行高さ（上から下への走査方向）について、以下のＨＥＶＣ関数
2021524683.tif 000020
は、以下の関数と置き換えられる。
2021524683.tif 000021
【００７６】
ｃｏｌＷｉｄｔｈリストおよびｒｏｗＨｅｉｇｈｔリスト中の得られた値はルーマコーディングツリーブロックの単位である。たとえば、ＣＴＵサイズが１２８×１２８に等しい場合、値は１２８個のルーマサンプルの単位であり、したがって、２の値は２５６個のルーマサンプルを意味する。
【００７７】
ｃｏｌＷｉｄｔｈリストおよびｒｏｗＨｅｉｇｈｔリストは、次いで、ピクチャ中のブロックの走査順序を決定するためにデコーダによって使用される。ブロックデータが復号されるとき、ブロックの空間位置はｃｏｌＷｉｄｔｈリストおよびｒｏｗＨｅｉｇｈｔリスト中の値に基づく。デコーダは、ｃｏｌＷｉｄｔｈおよびｒｏｗＨｅｉｇｈｔの値を使用して、タイル走査アドレスからラスタ走査アドレスへの変換リスト、およびその逆の変換リストを構築し得る。デコーダは、次いで、ブロックの空間位置を決定するために復号中に変換リストを使用し得る。ＨＥＶＣでは、変換リストが使用され、ＣｔｂＡｄｄｒＲｓＴｏＴｓおよびＣｔｂＡｄｄｒＴｓＴｏＲｓと呼ばれる。
【００７８】
図６は、ＨＥＶＣのためのタイルサイズ割振りと第１の実施形態の上記の例示的な実装形態とを比較する表６００を示す。表６００に示されているように、提案されたソリューションでは、タイル列がピクチャの左側もしくは右側または両側から削除されたとき、タイル境界は元のピクチャと同じに保たれる。丸め効果は、タイル列幅を決定するために、タイルにわたるループの繰り返しごとに、Ｃｅｉｌ（）関数を使用し、残っているタイルユニットの数を再計算して、すべての場合において、ピクチャの左側にわずかに広いタイルを置くように定められる。
【００７９】
表６００は、本明細書で提案されたソリューションにおいて内部タイル境界がそのままに保たれる間、ＨＥＶＣ均一タイル間隔を使用して元のピクチャからいくつかのタイル列を削除した後に内部タイル境界がどのように変化するかを示す。元のピクチャについてのパラメータは以下のように設定されている。ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ＝１、ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ＝１０、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＝３、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＝１。
【００８０】
以下は、ＣＴＵサイズよりも小さいタイルサイズ細分性をサポートする、ＪＶＥＴ−Ｌ０３５９において提案された式の上に構築された、第１の実施形態の別の例である。以下の式変更はＪＶＥＴ−Ｌ０３５９の上に提案されており、
2021524683.tif 000022
タイル行高さについて同等に、以下の変更が提案されている。
2021524683.tif 000023
【００８１】
ｃｏｌＷｉｄｔｈリストおよびｒｏｗＨｅｉｇｈｔリスト中の得られた値はルーマタイルユニットの単位である。たとえば、タイルユニットサイズが３２×３２に等しい場合、値は３２個のルーマサンプルの単位であり、したがって、２の値は６４個のルーマサンプルを意味する。
【００８２】
表４は、異なるピクチャ幅値について、ＪＶＥＴ−Ｌ０３５９と実施形態１における提案されたソリューションとの間でタイルの幅についての結果を比較している。ＪＶＥＴ−Ｌ０３５９についての結果は、タイルユニットサイズが変化したときに、タイル列の幅（ｃｏｌＷｉｄｔｈ［ｉ］）の不一致を示すが、実施形態１における提案されたソリューションは、わずかに大きいタイルにピクチャの左側に置かれるように一貫して優先度を付けるので、その提案されたソリューションは、タイルユニットサイズが変化したときに、タイル列の一貫した幅（ｃｏｌＷｉｄｔｈ［ｉ］）を与える。
2021524683.tif 000024
【００８３】
表４は、第１の実施形態における提案されたソリューションと比較してＪＶＥＴ−Ｌ０３５９の場合と同様にフレキシブルタイルスプリッティングを使用して、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ＝１、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＝１のときに計算されたタイル列幅を示す。
【００８４】
第１の実施形態では、デコーダは以下のステップのすべてまたはサブセットを実行し得る。
【００８５】
１．ビットストリーム中の１つまたは複数のシンタックス要素から、１つまたは複数のピクチャが２つ以上のセグメントに区分されるという情報を復号する。シンタックスは、好ましくは、ピクチャパラメータセット中に位置する。シンタックスは、セグメント行の数を示す数Ｒと、セグメント列の数を示す数Ｃとを指定し得る。
【００８６】
２．ビットストリーム中の１つまたは複数のシンタックス要素から、空間セグメンテーションが均一であるという情報を復号する。シンタックスは、好ましくは、ピクチャパラメータセット中に位置する。シンタックスは、空間セグメンテーションが均一であるか否かを指定する１ビットフラグからなり得る。
【００８７】
３．１つまたは複数のシンタックス要素から、または事前規定されたセグメントユニットサイズを使用することによって、セグメントユニットサイズＳを決定する。事前規定されたユニットサイズが使用される場合、事前規定されたユニットサイズは、ＣＴＵのサイズ、または１つの次元におけるＣＴＵのサイズに等しくなり得る。たとえば、ＣＴＵサイズが１２８×１２８に等しい場合、セグメントユニットサイズＳは１２８（または１２８×１２８）に等しくなり得る。
【００８８】
４．セグメントユニットの数におけるピクチャのサイズを計算する。計算は、水平サイズ（ＨＳ）が、セグメントユニットサイズＳによって除算された、ルーマサンプル中のピクチャ幅に等しく設定されるように、ピクチャの高さと幅とについて別個に行われ得る。垂直サイズ（ＶＳ）は、セグメントユニットサイズによって除算された、ルーマサンプル中のピクチャ高さに等しく設定され得る。
【００８９】
５．ピクチャ中のセグメントの数およびセグメントユニットサイズＳからすべてのセグメントの幅および高さを導出する。導出は、まだセグメント化されていないセグメントの数と、セグメントユニットの数におけるまだセグメント化されていないピクチャのサイズとがループの各繰り返しにおいて更新される、セグメントの数にわたるループ中で行われる。
【００９０】
導出は２つの別個のループ中で行われ得る。
ａ．以下のサブステップによって、タイルユニットの数におけるピクチャ幅およびセグメント列の数Ｃからセグメント列幅を導出する。
ｉ．まだセグメント化されていないピクチャ幅（Ａ）を値ＨＳに等しく設定する。
ｉｉ．まだセグメント化されていないセグメント列の数（Ｂ）を値Ｃに等しく設定する。
ｉｉｉ．繰り返し当たり１つの幅値が導出され、まだセグメント化されていないセグメント列の数（Ｂ）とまだセグメント化されていないピクチャ幅（Ａ）の両方が各繰り返し中に更新される、ループ中で列幅を導出する。繰り返しはＣ回実行され得る。
１．導出された列幅ＷはＣｅｉｌ（Ａ÷Ｂ）に等しく設定され得る。
２．変数Ａは、次いで、Ａ−Ｗに更新され得、変数ＢはＢ−１に更新され得る。
ｂ．以下のサブステップによって、タイルユニットの数におけるピクチャ高さおよびセグメント列の数Ｒからセグメント行高さを導出する。
ｉ．まだセグメント化されていないピクチャ高さ（Ａ）を値ＶＳに等しく設定する。
ｉｉ．まだセグメント化されていないセグメント行の数（Ｂ）を値Ｒに等しく設定する。
ｉｉｉ．繰り返し当たり１つの高さ値が導出され、まだセグメント化されていないセグメント行の数（Ｂ）とまだセグメント化されていないピクチャ高さ（Ａ）の両方が各繰り返し中に更新される、ループ中で行高さを導出する。繰り返しはＲ回実行され得る。
１．導出された行高さＨはＣｅｉｌ（Ａ÷Ｂ）に等しく設定され得る。
２．変数Ａは、次いで、Ａ−Ｈに更新され得、変数ＢはＢ−１に更新され得る。
【００９１】
６．導出されたセグメント幅および導出されたセグメント高さを使用して、現在ブロックについての空間ロケーションを導出する。
【００９２】
７．導出された空間ロケーションを使用して現在ブロックを復号する。現在ブロックのための復号されたサンプル値を、導出された空間ロケーションに対応するメモリ位置におけるメモリに記憶する。
【００９３】
この実施形態の変形態では、関数Ｃｅｉｌ（）は、水平方向のみもしくは垂直方向のみ、または両方の方向において関数Ｆｌｏｏｒ（）によって置き換えられ得る。
【００９４】
この実施形態の変形態では、フラグは２つの関数Ｃｅｉｌ（）とＦｌｏｏｒ（）との間で選定し得る。いくつかの実施形態では、水平方向および垂直方向のための２つの独立したフラグがあり得る。
【００９５】
実施形態２．指定された順序
第２の実施形態では、行中のセグメントの幅または列中のセグメントの高さは、指定された順序に従う。この指定された順序は、ビットのシーケンスの形態のテンプレートパターンを使用してビットストリーム中でシグナリングされ得る。セグメントはピクチャ中のタイルであり得、したがって、この実施形態では、タイルサイズに関する好ましいリップルの形状が指定される。たとえば、すべてのわずかに広いタイルはピクチャの左側にある。このことは、タイル幅（または高さ）を指定するためにタイルにわたるループの繰り返しごとにＣｅｉｌ（）関数またはＦｌｏｏｒ（）関数を指定する、ビットのシーケンスの形態で表現される、テンプレートパターンによって行われ得る。テンプレートビットシーケンス中で、関数Ｃｅｉｌ（）は１によって表され得、関数Ｆｌｏｏｒ（）は０によって表され得る。例として、テンプレート１１０は、タイルサイズを指定するためのループの、最初の２つのタイル中でＣｅｉｌ（）関数を指定し、第３の繰り返し中で関数Ｆｌｏｏｒ（）を指定するであろう。タイルの数がテンプレートビットシーケンスの長さよりも大きい場合、パターンは周期的に繰り返され得る。
【００９６】
実施形態３．バイナリタイルスプリット（binary tile split）
第３の実施形態では、セグメント幅または高さの明示的な順序付けをもつバイナリセグメントスプリットがピクチャの幅または高さに適用される。セグメントはピクチャ中のタイルであり得、したがって、ピクチャを均一なタイルサイズをもつ２ｎ個のタイルに区分するために、バイナリ区分が使用される。（第２の実施形態の場合と同様の）事前規定されたリップルパターンが、この実施形態と組み合わせて使用され得る。バイナリ区分は、アルゴリズムが、指定された数のセグメントに到達するまで、または規定された数のステップまでのみ、階層的に継続し得、セグメント分割の残りは他の方法によって実行される。例として、合計サイズが第１のステップにおいて２によって除算され、そこで、より小さいまたはより大きいセグメントを左側または右側に割り当てるように指定される。後続のステップの各々において、左側セグメントと右側セグメントの各々は、次のバイナリ区分レベル、およびより小さいまたはより大きい可能性があるセグメントの位置についての指定されたルールを使用して、２つの部分に分割される。
【００９７】
実施形態４．リップルのデフォルト順序付け
第４の実施形態では、ピクチャの行中のセグメントの幅または列中のセグメントの高さは、セグメントの幅または高さのための指定されたデフォルト順序に従う。セグメントはピクチャ中のタイルであり得、したがって、セグメントサイズにおけるリップルを管理するためのデフォルトの好ましい順序付けが規定される。デフォルトリップルパターンはビットストリーム中でシグナリングされ得る。この実施形態の変形態では、デフォルトパターンは上書きされ得る。この実施形態の別の変形態では、フラグは、デフォルト順序付けが使用されているか、または別の指定された順序付けが使用されているかを指定することができる。
【００９８】
実施形態５．
第５の実施形態では、目的は、均一間隔方法を使用することによって、多くの大きい等しいサイズのタイルとして達成することである。
【００９９】
このことは、ビットストリーム中の１つまたは複数のコードワードからＴｉｌｅＷｉｄｔｈ値を復号することによって達成され得る。次いで、１つを除く、ピクチャ中のすべてのタイル列の幅値が、復号されたＴｉｌｅＷｉｄｔｈ値に等しく設定される。１つの残っているタイル列の幅値は、ピクチャ幅値−１つの残っているタイル列を除くすべてのタイル列の幅値の和に等しく設定される。１つの残っている列の幅値もＴｉｌｅＷｉｄｔｈ値に等しくなり得る。
【０１００】
代替的に、またはさらに、ビットストリーム中の１つまたは複数のコードワードからＴｉｌｅＨｅｉｇｈｔ値が復号される。次いで、１つを除く、ピクチャ中のすべてのタイル行の高さ値が、導出されたＴｉｌｅＨｅｉｇｈｔ値に等しく設定される。１つの残っているタイル行の高さ値は、ピクチャ高さ値−１つの残っているタイル行を除くすべてのタイル行の高さ値の和に等しく設定される。１つの残っている行の高さ値もＴｉｌｅＨｅｉｇｈｔ値に等しくなり得る。
【０１０１】
この実施形態における方法では、たとえば、大部分のタイルが４×４ＣＴＵまたはタイルユニットのサイズである、図１２に示されたピクチャ１２００に示されているように、大部分のタイルが等しいサイズになる。
【０１０２】
本実施形態は、ＨＥＶＣｖ５またはドラフトＶＶＣ規格から以下のテキストを削除することによってＨＥＶＣｖ５または現在のＶＶＣドラフト中に実装され得る。
2021524683.tif 000025
【０１０３】
上記の削除されたテキストは、それぞれ、ＨＥＶＣｖ５またはＶＶＣドラフト規格において以下のテキストによって置き換えられる。
2021524683.tif 000026
【０１０４】
ｔｉｌｅ＿ｗｉｄｔｈおよびｔｉｌｅ＿ｈｅｉｇｈｔのためのシンタックスおよびセマンティクスは以下のように見え得る。
2021524683.tif 000027
【０１０５】
シンタックスおよびセマンティクスについて以下でさらに詳細に説明する。
【０１０６】
ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＋１は、ピクチャを区分するタイル列の数を指定する。ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１は、両端値を含む、０からＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ−１の範囲内とする。ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいとき、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１の値は０に等しいと推論される。さもなければ、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが１に等しい場合、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１の値は上記に示したように導出される。
【０１０７】
ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＋１は、ピクチャを区分するタイル行の数を指定する。ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１は、両端値を含む、０からＰｉｃＨｅｉｇｈｔＩｎＣｔｂｓＹ−１の範囲内とする。ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいとき、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１の値は０に等しいと推論される。さもなければ、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが１に等しい場合、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１の値は上記に示したように導出される。
【０１０８】
ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１とｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１の両方が０に等しくならないとする。
【０１０９】
ｔｉｌｅ＿ｗｉｄｔｈは、最後のタイル列に属していないすべてのタイルの幅を指定する。ｔｉｌｅ＿ｗｉｄｔｈは、両端値を含む、１からＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ−１の範囲内とする。
【０１１０】
ｔｉｌｅ＿ｈｅｉｇｈｔは、最後のタイル行に属していないすべてのタイルの高さを指定する。ｔｉｌｅ＿ｈｅｉｇｈｔは、両端値を含む、１からＰｉｃＨｅｉｇｈｔＩｎＣｔｂｓＹ−１の範囲内とする。
【０１１１】
デコーダは、この実施形態のための以下のステップのすべてまたはサブセットを実行し得る。
【０１１２】
１．ビットストリーム中の１つまたは複数のシンタックス要素から、１つまたは複数のピクチャが２つ以上のセグメントに区分されるという情報を復号する。シンタックスは、好ましくは、ピクチャパラメータセット中に位置する。
【０１１３】
２．ビットストリーム中の１つまたは複数のシンタックス要素から、空間セグメンテーションが均一であるという情報を復号する。シンタックスは、好ましくは、ピクチャパラメータセット中に位置する。シンタックスは、空間セグメンテーションが均一であるか否かを指定する１ビットフラグからなり得る。
【０１１４】
３．１つまたは複数のシンタックス要素から、または事前規定されたセグメントユニットサイズを使用することによって、セグメントユニットサイズＳを決定する。事前規定されたユニットサイズが使用される場合、事前規定されたユニットサイズはコーディングツリーユニットに等しくなり得る。たとえば、ＣＴＵサイズが１２８×１２８に等しい場合、セグメントユニットサイズＳは１２８（または１２８×１２８）に等しくなり得る。
【０１１５】
４．セグメントユニットの数におけるピクチャのサイズを計算する。計算は、水平サイズＨＳが、ルーマサンプル中のピクチャ幅÷セグメントユニットサイズに等しく設定されるように、高さと幅とについて別個に行われ得る。垂直サイズＶＳは、ルーマサンプル中のピクチャ高さ÷セグメントユニットサイズに等しく設定され得る。
【０１１６】
５．ビットストリーム中のコードワードから、Ｓ個のユニットにおけるタイル幅を表す値ＴｉｌｅＷｉｄｔｈを復号する。コードワードはＵＶＬＣコードワードであり得る。コードワードはタイル幅−１として復号され得、値ＴｉｌｅＷｉｄｔｈは、したがって、復号された値＋１に等しく設定され得る。
【０１１７】
６．ビットストリーム中のコードワードから、Ｓ個のユニットにおけるタイル高さを表す値ＴｉｌｅＨｅｉｇｈｔを復号する。コードワードはＵＶＬＣコードワードであり得る。コードワードはタイル高さ−１として復号され得、値ＴｉｌｅＷｉｄｔｈは、したがって、復号された値＋１に等しく設定され得る。
【０１１８】
７．タイルユニットの数におけるピクチャ幅からセグメント列幅を導出し、以下のサブステップによってＴｉｌｅＷｉｄｔｈ変数を導出する。
ａ．まだセグメント化されていないピクチャ幅（Ａ）を値ＨＳに等しく設定する。
ｂ．変数ｉを値０に等しく設定する。
ｃ．まだセグメント化されていないピクチャ幅（Ａ）が値ＴｉｌｅＷｉｄｔｈよりも大きい限り、以下のサブステップを繰り返し実行する。
ｉ．ｉ番目のセグメント列の列幅をＴｉｌｅＷｉｄｔｈに設定する。
ｉｉ．値Ａから値ＴｉｌｅＷｉｄｔｈを減算する。
ｉｉｉ．変数ｉの値を１だけ増加させる。
ｄ．ｉ番目のセグメント列の列幅を値Ａに設定する。
ｅ．変数ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１を変数ｉの値に等しく設定するか、または代替的に、ピクチャ中のタイル列の数を表す変数を変数ｉの値＋１に等しく設定する。
【０１１９】
８．タイルユニットの数におけるピクチャ高さからセグメント行高さを導出し、以下のサブステップによってＴｉｌｅＨｅｉｇｈｔ変数を導出する。
ａ．まだセグメント化されていないピクチャ高さ（Ａ）を値ＶＳに等しく設定する。
ｂ．変数ｉを値０に等しく設定する。
ｃ．まだセグメント化されていないピクチャ高さ（Ａ）が値ＴｉｌｅＨｅｉｇｈｔよりも大きい限り、以下のサブステップを繰り返し実行する。
ｉ．ｉ番目のセグメント行の行高さをＴｉｌｅＨｅｉｇｈｔに設定する。
ｉｉ．値Ａから値ＴｉｌｅＨｅｉｇｈｔを減算する。
ｉｉｉ．変数ｉの値を１だけ増加させる。
ｄ．ｉ番目のセグメント行の行高さを値Ａに設定する。
ｅ．変数ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１を変数ｉの値に等しく設定するか、または代替的に、ピクチャ中のタイル行の数を表す変数を変数ｉの値＋１に等しく設定する。
【０１２０】
９．導出されたセグメント幅および導出されたセグメント高さを使用して、現在ブロックについての空間ロケーションを導出する。
【０１２１】
１０．導出された空間ロケーションを使用して現在ブロックを復号する。現在ブロックのための復号されたサンプル値を、導出された空間ロケーションに対応するメモリ位置におけるメモリに記憶する。
【０１２２】
実施形態６．
第６の実施形態では、均一なタイル区分のための複数の方法のうちの１つが使用され得る。一実施形態では、複数の方法のうちのどの方法を使用すべきかを示す１つまたは複数のシンタックス要素がある。１つまたは複数のシンタックス要素は、２つの方法のうちのどちらが使用されるかを指定するフラグであり得る。１つまたは複数のシンタックス要素は、ピクチャパラメータセットなど、パラメータセット中に存在し得るが、この実施形態はそのロケーションのみに制約されない。複数の方法のセットは、本明細書で開示する任意の方法、ならびにＨＥＶＣｖ５規格およびドラフトＶＶＣ規格に記載されている方法など、当技術分野で知られている方法を含み得る。
【０１２３】
実施形態７．小さいものを左側または上部に
本開示において上記で説明した実施形態５〜６では、タイルは、フルサイズのタイルがピクチャのタイル構造中の左側および上部に位置するように順序付けされている。
【０１２４】
第７の実施形態では、タイルは、実施形態５〜６の場合と反対の形で順序付けられる、すなわち、タイル幅リマインダ（remainder）は均一なタイル構造中の左端タイルの幅である、および／またはタイル高さリマインダは均一なタイル構造中の一番上のタイルの高さである。換言すると、フルサイズのタイルは右側および／または下部に位置し、タイル幅リマインダに等しい幅をもつ、および／またはタイル高さに等しい高さをもつ、より小さいサイズのタイルは、タイル構造中の左側および／または上部に位置する。このことは、８９６×６４０ピクセルであるピクチャ１３００とともに図１３に例示されている。実線はタイル境界線を表し、一点鎖線はＣＴＵ境界線を表す。各ＣＴＵは６４×６４ピクセルである。図１３は、フルサイズのタイルが下部および右側にあり、より小さいタイルが左側および上部に位置する、均一なタイル構造の例を示す。
【０１２５】
実施形態８．タイルグループ境界との整合
第８の実施形態では、タイルのサイズは、前述の実施形態のいずれかに従って順序付けされるが、各タイルグループが、タイル高さ／幅リマインダに等しいタイル幅／高さをもつタイルの行／列を含んでいることがある、タイルグループに、タイルがグループ化されることが追加される。
【０１２６】
このことは図１４に示されており、図１４では、タイルグループが大きい点線を用いて表され、タイルが実線を用いて表され、ＣＴＵが一点鎖線を用いて表されている。すべてのタイルグループが、合計リマインダがＣＴＵの数によって等しく分割可能であるかどうかに応じて、等しいタイル幅リマインダをもつタイルを有するとは限らないことに留意されたい。図１４は、各タイルグループが、タイル幅／高さリマインダ値に等しい幅および／または高さをもつタイルを含んでいることがある、タイルグループをもつタイル構造の例を示す。
【０１２７】
図１４に示された例では、タイルグループ幅は５ＣＴＵであり、タイル幅は２ＣＴＵである。ピクチャの幅が１４ＣＴＵであるので、ピクチャは、それぞれ５個のタイルと、５個のタイルと、４個のタイルとをもつ、水平方向における３つのタイルグループに分割される。２つの最初のタイルグループは、２ＣＴＵの２個のフルサイズのタイルと、１ＣＴＵのリマインダタイル幅をもつ１個のタイルとに水平方向に分割される。左端のタイルグループは２ＣＴＵによって等しく分割可能であり、したがって、リマインダタイル幅をもつタイルは必要とされない。また、より大きいタイルがより多くのＣＴＵを含んでおり（たとえば水平方向に４個のタイル）、リマインダが３、３、２になる、すなわち、すべてのタイルグループが、タイル幅リマインダをもつタイルを有するが、タイル幅リマインダがすべてのタイルグループについて同じでない、シナリオがあり得る。
【０１２８】
図１５は、一実施形態による、プロセス１５００を示すフローチャートである。プロセス１５００は、ピクチャを復号するための方法である。１５００方法は、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、ピクチャが２つ以上のセグメントに区分されるという情報を復号すること（ステップ１５０２）と、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号すること（ステップ１５０４）と、１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定すること（ステップ１５０６）と、ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号すること（ステップ１５０８）と、ビットストリーム中の１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号すること（ステップ１５１０）と、セグメントユニットの数におけるピクチャ幅および第１の値に基づいてセグメント列幅を導出すること（ステップ１５１２）と、セグメントユニットの数におけるピクチャ高さおよび第２の値に基づいてセグメント行高さを導出すること（ステップ１５１４）と、導出されたセグメント列幅および導出されたセグメント高さに基づいて、現在ブロックについての空間ロケーションを導出すること（ステップ１５１６）と、導出された空間ロケーションに基づいて現在ブロックを復号すること（ステップ１５１８）とを含む。
【０１２９】
いくつかの実施形態では、セグメント列幅を導出することは、１つの列を除く、ピクチャ中のすべてのセグメント列の列幅値を第１の値に等しく設定することと、１つの残っているセグメント列の列幅値を、ピクチャ幅−１つのセグメント列を除くすべてのセグメント列の幅値の和に等しく設定することとを含む。
【０１３０】
いくつかの実施形態では、セグメント行高さを導出することは、１つの行を除く、ピクチャ中のすべてのセグメント行の行高さ値を第２の値に等しく設定することと、１つの残っているセグメント行の行高さ値を、ピクチャ高さ−１つのセグメント行を除くすべてのセグメント行の高さ値の和に等しく設定することとを含む。
【０１３１】
いくつかの実施形態では、１つまたは複数のシンタックス要素はピクチャパラメータセット中に位置する。
【０１３２】
いくつかの実施形態では、１つまたは複数のシンタックス要素は、空間セグメンテーションが均一であるかどうかを指定する１ビットフラグを含む。
【０１３３】
いくつかの実施形態では、事前規定されたセグメントユニットサイズはコーディングツリーユニットに等しい。
【０１３４】
いくつかの実施形態では、セグメント中のピクチャのサイズを計算することは、ピクチャセグメントのサイズを高さについて計算することと、ピクチャセグメントのサイズを幅について計算することとを含む。
【０１３５】
いくつかの実施形態では、第１の値は、セグメントユニットにおけるタイル幅を表すＴｉｌｅＷｉｄｔｈ値であり、第２の値は、セグメントユニットにおけるタイル高さを表すＴｉｌｅＨｅｉｇｈｔである。
【０１３６】
図１６は、いくつかの実施形態による、デコーダ１６０２の機能ユニットを示すダイヤグラムである。図１６に示されているように、デコーダ１６０２は、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、ピクチャが２つ以上のセグメントに区分されるという情報を復号するための第１の復号ユニット１６０４と、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号するための第２の復号ユニット１６０６と、１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定するための決定ユニット１６０８と、ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号するための第３の復号ユニット１６１０と、ビットストリーム中の１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号するための第４の復号ユニット１６１２と、セグメントユニットの数におけるピクチャ幅および第１の値に基づいてセグメント列幅を導出するための第１の導出ユニット１６１４と、セグメントユニットの数におけるピクチャ高さおよび第２の値に基づいて、セグメント行高さを導出するための第２の導出ユニット１６１６と、導出されたセグメント列幅および導出されたセグメント高さに基づいて、現在ブロックについての空間ロケーションを導出するための第３の導出ユニット１６１８と、導出された空間ロケーションに基づいて現在ブロックを復号するための第５の復号ユニット１６２０とを含む。
【０１３７】
図７は、一実施形態による、プロセス７００を示すフローチャートである。プロセス７００は、ビットストリームから、いくつかのユニット（８）を含むピクチャ（１０）を復号するための方法であり、ピクチャは、パーティション構造（１３）によって、少なくとも２つの空間セグメント（１１）に区分される。本方法は、ビットストリーム中の１つまたは複数のコードワードを復号すること（ステップ７１０）と、１つまたは複数のコードワードに基づいて、パーティション構造が均一であることを決定すること（ステップ７２０）と、１つまたは複数のコードワードに基づいて空間セグメントの数を決定すること（ステップ７３０）と、セグメントユニットサイズを決定すること（ステップ７４０）と、１つまたは複数のコードワードから、ピクチャ中のすべての空間セグメントについてのサイズおよび／またはロケーションを導出すること（ステップ７５０）とを含み、セグメントサイズおよび／またはロケーションの導出は、第１の次元または方向における空間セグメントの数にわたる第１のループを含み、セグメント化されるべき、第１の次元または方向における残っているセグメントユニットの数、および第１の次元における残っているセグメントの数は、第１のループ内で計算される。
【０１３８】
いくつかの実施形態では、セグメントサイズおよび／またはロケーションの導出は、第１の次元または方向以外の第２の次元または方向における空間セグメントの数にわたる第２のループを含み、セグメント化されるべき、第２の次元または方向における残っているセグメントユニットの数、および第２の次元または方向における残っているセグメントの数は、第２のループ内で計算される。
【０１３９】
いくつかの実施形態では、第１の次元または方向は水平の次元または方向であり、第２の次元または方向は垂直の次元または方向である。
【０１４０】
いくつかの実施形態では、行中のセグメントの幅または列中のセグメントの高さは、指定された順序に従う。
【０１４１】
いくつかの実施形態では、行中のセグメントの幅または列中のセグメントの高さは決して昇順でもなく、決して降順でもない。
【０１４２】
いくつかの実施形態では、セグメント幅または高さの明示的な順序付けをもつバイナリセグメントスプリットがピクチャの幅または高さに適用される。
【０１４３】
いくつかの実施形態では、ピクチャの行中のセグメントの幅または列中のセグメントの高さは、セグメントの幅または高さのための指定されたデフォルト順序に従う。
【０１４４】
いくつかの実施形態では、セグメントユニットサイズはコーディングツリーユニット（ＣＴＵ）のサイズに等しい。
【０１４５】
いくつかの実施形態では、セグメントユニットサイズはコーディングツリーユニット（ＣＴＵ）のサイズよりも小さい。いくつかの実施形態では、セグメントユニットサイズはＣＴＵのサイズよりも大きい。いくつかの実施形態では、任意のセグメントがタイルである。
【０１４６】
いくつかの実施形態では、サイズを導出することは、
Ａ＝ＰｉｃＷｉｄｔｈＩｎＴｉｌｅＵｎｉｔｓ
Ｂ＝ＮｕｍｂｅｒＯｆＳｅｇｍｅｎｔＣｏｌｕｍｎｓ
ｆｏｒ（ｉ＝０；ｉ＜ＮｕｍｂｅｒＯｆＳｅｇｍｅｎｔＣｏｌｕｍｎｓ；ｉ＋＋）｛
Ｓｉｚｅｓ［ｉ］＝Ｒｏｕｎｄ（Ａ÷Ｂ）
Ａ＝Ａ−Ｓｉｚｅｓ［ｉ］
Ｂ＝Ｂ−１
｝
としてリストＳｉｚｅｓ［］を導出することを含み、
ここで、ＮｕｍｂｅｒＯｆＳｅｇｍｅｎｔＣｏｌｕｍｎｓはセグメント列の数であり、ＰｉｃＷｉｄｔｈＩｎＴｉｌｅＵｎｉｔｓはタイルユニットにおけるピクチャの幅であり、Ｒｏｕｎｄ（）はＦｌｏｏｒ（）関数またはＣｅｉｌ（）関数のいずれかであり、÷は切り捨てまたは丸めなしの除算である。
【０１４７】
いくつかの実施形態では、サイズを導出することは、
Ａ＝ＰｉｃＨｅｉｇｈｔＩｎＴｉｌｅＵｎｉｔｓ
Ｂ＝ＮｕｍｂｅｒＯｆＳｅｇｍｅｎｔＲｏｗｓ
ｆｏｒ（ｉ＝０；ｉ＜ＮｕｍｂｅｒＯｆＳｅｇｍｅｎｔＲｏｗｓ；ｉ＋＋）｛
Ｓｉｚｅｓ［ｉ］＝Ｒｏｕｎｄ（Ａ÷Ｂ）
Ａ＝Ａ−Ｓｉｚｅｓ［ｉ］
Ｂ＝Ｂ−１
｝
としてリストＳｉｚｅｓ［］を導出することを含み、
ここで、ＮｕｍｂｅｒＯｆＳｅｇｍｅｎｔＲｏｗｓはセグメント行の数であり、ＰｉｃＨｅｉｇｈｔＩｎＴｉｌｅＵｎｉｔｓはタイルユニットにおけるピクチャの高さであり、Ｒｏｕｎｄ（）はＦｌｏｏｒ（）関数またはＣｅｉｌ（）関数のいずれかであり、÷は切り捨てまたは丸めなしの除算である。
【０１４８】
いくつかの実施形態では、セグメント（１１）は他のセグメント（１１）に対して独立しており、したがって、現在セグメント（１５）中の任意のユニット（１６）のための任意のイントラ予測モードの導出は、現在セグメント（１５）に属するユニット（１７）における前に導出されたイントラ予測モードのみに依存し、異なるセグメント（１４）に属するいかなるユニット（１８）におけるいかなるイントラ予測モードにも依存しない。
【０１４９】
いくつかの実施形態では、本方法は、空間セグメントの数とは無関係な固定のリップルパターンに従う、セグメントを均一な幅または高さに区分するさらなるステップを含む。
【０１５０】
図８は、一実施形態による、プロセス８００を示すフローチャートである。プロセス８００は、いくつかのユニット（８）を含むピクチャ（１０）をビットストリームに符号化するための方法であり、ピクチャは、均一なパーティション構造（１３）によって少なくとも２つの空間セグメント（１１）に区分される。本方法は、１つまたは複数のコードワードをビットストリームに符号化することによって、パーティション構造（１３）が均一であるという情報を符号化すること（ステップ８１０）と、１つまたは複数のコードワードをビットストリームに符号化することによって空間セグメントの数を符号化すること（ステップ８２０）と、セグメントユニットサイズを決定すること（ステップ８３０）と、ピクチャ中のすべての空間セグメントについてのサイズおよび／またはロケーションを導出し、それらのサイズおよび／またはロケーションをビットストリームに符号化すること（ステップ８４０）とを含み、セグメントサイズの導出は、第１の次元または方向における空間セグメントの数にわたる第１のループを含み、セグメント化されるべき、第１の次元または方向における残っているセグメントユニットの数、および第１の次元または方向における残っているセグメントの数は、第１のループ内で計算される。
【０１５１】
いくつかの実施形態では、セグメントサイズおよび／またはロケーションの導出は、第１の次元または方向以外の第２の次元または方向における空間セグメントの数にわたる第２のループを含み、セグメント化されるべき、第２の次元または方向における残っているセグメントユニットの数、および第２の次元または方向における残っているセグメントの数は、第２のループ内で計算される。
【０１５２】
いくつかの実施形態では、第１の次元または方向は水平の次元または方向であり、第２の次元または方向は垂直の次元または方向である。
【０１５３】
図９は、いくつかの実施形態による、デコーダ９０２の機能ユニットを示すダイヤグラムである。図９に示されているように、デコーダ９０２は、ビットストリーム中の１つまたは複数のコードワードを復号するための復号ユニット９０４と、１つまたは複数のコードワードに基づいて、パーティション構造が均一であることを決定するための第１の決定ユニット９０６と、１つまたは複数のコードワードに基づいて空間セグメントの数を決定するための第２の決定ユニット９０８と、セグメントユニットサイズを決定するための第３の決定ユニット９１０と、１つまたは複数のコードワードから、ピクチャ中のすべての空間セグメントについてのサイズおよび／またはロケーションを導出するための導出ユニット９１２とを含み、セグメントサイズおよび／またはロケーションの導出は、第１の次元における空間セグメントの数にわたる第１のループと、第２の次元における空間セグメントの数にわたる第２のループとを含み、セグメント化されるべき、第１の次元における残っているセグメントユニットの数、および第１の次元における残っているセグメントの数は、第１のループ内で計算され、セグメント化されるべき、第２の次元における残っているセグメントユニットの数、および第２の次元における残っているセグメントの数は、第２のループ内で計算される。
【０１５４】
図１０は、いくつかの実施形態による、エンコーダ１００２の機能ユニットを示すダイヤグラムである。図１０に示されているように、エンコーダ１００２は、１つまたは複数のコードワードをビットストリームに符号化することによって、パーティション構造（１３）が均一であるという情報を符号化するための第１の符号化ユニット１００４と、１つまたは複数のコードワードをビットストリームに符号化することによって空間セグメントの数を符号化するための第２の符号化ユニット１００６と、セグメントユニットサイズを決定するための決定ユニット１００８と、ピクチャ中のすべての空間セグメントについてのサイズおよび／またはロケーションを導出し、それらのサイズおよび／またはロケーションをビットストリームに符号化するための導出ユニット１０１０とを含み、セグメントサイズの導出は、第１の次元における空間セグメントの数にわたる第１のループと、第２の次元における空間セグメントの数にわたる第２のループとを含み、セグメント化されるべき、第１の次元における残っているセグメントユニットの数、および第１の次元における残っているセグメントの数は、第１のループ内で計算され、セグメント化されるべき、第２の次元における残っているセグメントユニットの数、および第２の次元における残っているセグメントの数は、第２のループ内で計算される。
【０１５５】
いくつかの実施形態では、エンコーダは、ピクチャをいくつかの均一な空間セグメントに分割することであって、各空間セグメントは少なくとも１つのユニットを含み、セグメントサイズの導出は、第１の次元における空間セグメントの数にわたる第１のループ、および第２の次元における空間セグメントの数にわたる第２のループ中で実行され、セグメント化されるべき、第１の次元における残っているセグメントユニットの数、および第１の次元における残っているセグメントの数は、第１のループ内で計算され、セグメント化されるべき、第２の次元における残っているセグメントユニットの数、および第２の次元における残っているセグメントの数は、第２のループ内で計算される、ピクチャをいくつかの均一な空間セグメントに分割することと、複数のコーディングされた空間セグメントを生成するためのパーティション構造に従って複数の空間セグメントを符号化することであって、各々のコーディングされた空間セグメントはパーティション構造の空間セグメントのうちの１つに対応し、各々のコーディングされた空間セグメントは独立しており、したがって、第１の空間セグメントの第１のユニットのための任意のイントラ予測モードの導出は、第１の空間セグメントの第２のユニットのための導出されたイントラ予測モードに依存し、パーティション構造の他の空間セグメントのユニットのためのいかなるイントラ予測モードとも無関係である、複数の空間セグメントを符号化することと、複数のコーディングされた空間セグメントと、ピクチャを複数の空間セグメントに分割するために使用される均一なパーティション構造を示す情報とを含むビットストリームを生成することとを行う、パーティション構造を規定するように設定される。
【０１５６】
図１１は、いくつかの実施形態による、デコーダ９０２、１６０２および／またはエンコーダ１００２を実装するための装置１１００のブロック図である。装置１１００がデコーダを実装するとき、装置１１００は「復号装置１１００」と呼ばれることがあり、装置１１００がエンコーダを実装するとき、装置１１００は「符号化装置１１００」と呼ばれることがある。図１１に示されているように、装置１１００（別名「ノード」）は、１つまたは複数のプロセッサ（Ｐ）１１５５（たとえば、汎用マイクロプロセッサ、および／または特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）など、１つまたは複数の他のプロセッサ）を含み得る、処理回路（ＰＣ）１１０２と、装置１１００が、ネットワークインターフェース１１４８が接続されたネットワーク１１１０（たとえばインターネットプロトコル（ＩＰ）ネットワーク）に接続された他のノードにデータを送信し、それらのノードからデータを受信することを可能にするための送信機（Ｔｘ）１１４５と受信機（Ｒｘ）１１４７とを含む、ネットワークインターフェース１１４８と、１つまたは複数の不揮発性記憶デバイスおよび／または１つまたは複数の揮発性記憶デバイスを含み得る、ローカルストレージユニット（別名、「データ記憶システム」）１１０８とを備え得る。ＰＣ１１０２がプログラマブルプロセッサを含む実施形態では、コンピュータプログラム製品（ＣＰＰ）１１４１が提供され得る。ＣＰＰ１１４１は、コンピュータ可読命令（ＣＲＩ）１１４４を含むコンピュータプログラム（ＣＰ）１１４３を記憶するコンピュータ可読媒体（ＣＲＭ）１１４２を含む。ＣＲＭ１１４２は、磁気媒体（たとえばハードディスク）、光媒体、メモリデバイス（たとえば、ランダムアクセスメモリ、フラッシュメモリ）など、非一時的コンピュータ可読媒体であり得る。いくつかの実施形態では、コンピュータプログラム１１４３のＣＲＩ１１４４は、ＰＣ１１０２によって実行されたとき、ＣＲＩが装置１１００に本明細書で説明されたステップ（たとえば、フローチャートを参照して本明細書で説明されたステップ）を実行させるように設定される。他の実施形態では、装置１１００は、コードの必要なしに、本明細書で説明されるステップを実行するように設定され得る。すなわち、たとえば、ＰＣ１１０２は１つまたは複数のＡＳＩＣのみからなり得る。したがって、本明細書で説明された実施形態の特徴はハードウェアおよび／またはソフトウェアにおいて実装され得る。
【０１５７】
様々な実施形態の概要
Ａ１．ピクチャを復号するための方法であって、本方法は、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、ピクチャが２つ以上のセグメントに区分されるという情報を復号することと、ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号することと、１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定することと、ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号することと、ビットストリーム中の１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号することと、セグメントユニットの数におけるピクチャ幅および第１の値に基づいてセグメント列幅を導出することと、セグメントユニットの数におけるピクチャ高さおよび第２の値に基づいてセグメント行高さを導出することと、導出されたセグメント列幅および導出されたセグメント行高さに基づいて、現在ブロックについての空間ロケーションを導出することと、導出された空間ロケーションに基づいて現在ブロックを復号することとを含む、方法。
【０１５８】
Ａ２．セグメント列幅を導出することが、１つの列を除く、ピクチャ中のすべてのセグメント列の列幅値を第１の値に等しく設定することと、１つの残っているセグメント列の列幅値を、ピクチャ幅−１つのセグメント列を除くすべてのセグメント列の幅値の和に等しく設定することとを含む、実施形態Ａ１に記載の方法。
【０１５９】
Ａ３．セグメント行高さを導出することが、１つの行を除く、ピクチャ中のすべてのセグメント行の行高さ値を第２の値に等しく設定することと、１つの残っているセグメント行の行高さ値を、ピクチャ高さ−１つのセグメント行を除くすべてのセグメント行の高さ値の和に等しく設定することとを含む、実施形態Ａ１またはＡ２に記載の方法。
【０１６０】
Ａ４．１つまたは複数のシンタックス要素がピクチャパラメータセット中に位置する、実施形態Ａ１からＡ３のいずれか１つに記載の方法。
【０１６１】
Ａ５．１つまたは複数のシンタックス要素は、空間セグメンテーションが均一であるかどうかを指定する１ビットフラグを含む、実施形態Ａ１からＡ４のいずれか１つに記載の方法。
【０１６２】
Ａ６．セグメントユニットがコーディングツリーユニットまたはコーディングツリーブロックである、実施形態Ａ１からＡ５のいずれか１つに記載の方法。
【０１６３】
Ａ７．セグメントユニットの数におけるピクチャのサイズを計算することをさらに含む、実施形態Ａ１からＡ６のいずれか１つに記載の方法。
【０１６４】
Ａ８．セグメントユニットの数におけるピクチャのサイズを計算することが、ピクチャセグメントのサイズを高さについて計算することと、ピクチャセグメントのサイズを幅について計算することとを含む、実施形態Ａ７に記載の方法。
【０１６５】
Ａ９．第１の値がセグメントユニットにおけるタイル幅を表し、第２の値がセグメントユニットにおけるタイル高さを表す、実施形態Ａ１からＡ８のいずれか１つに記載の方法。
【０１６６】
Ａ１０．ビットストリーム中の１つまたは複数のコードワードから第１の値を復号することが、ビットストリーム中の特定のコードワードの値を復号することと、復号された値に１を加算することとからなる、実施形態Ａ１からＡ９のいずれか１つに記載の方法。
【０１６７】
Ａ１１．セグメント列幅を導出することが、
変数（Ａ）を残っている幅値に設定することと、
ＴｉｌｅＷｉｄｔｈが第１の値に等しい、（Ａ−ＴｉｌｅＷｉｄｔｈ）に等しい値がＴｉｌｅＷｉｄｔｈよりも小さいかどうかを決定することと
を含む、実施形態Ａ１からＡ１０のいずれか１つに記載の方法。
【０１６８】
Ａ１２．（Ａ−ＴｉｌｅＷｉｄｔｈ）の値が第１の値よりも小さくないことが決定された場合、
第１の列幅変数をＴｉｌｅＷｉｄｔｈに等しく設定するステップと、
（Ａ−（２×ＴｉｌｅＷｉｄｔｈ））に等しい値がＴｉｌｅＷｉｄｔｈよりも小さいかどうかを決定するステップと
を実行する、実施形態Ａ１１に記載の方法。
【０１６９】
Ａ１３．値（Ａ−ＴｉｌｅＷｉｄｔｈ）がＴｉｌｅＷｉｄｔｈよりも小さいかどうかを決定することが、
Ａを（Ａ−ＴｉｌｅＷｉｄｔｈ）に等しく設定することと、
ＡをＴｉｌｅＷｉｄｔｈと比較することと
を含む、実施形態Ａ１１またはＡ１２に記載の方法。
【０１７０】
Ａ１４．Ａ−ＴｉｌｅＷｉｄｔｈがＴｉｌｅＷｉｄｔｈよりも小さいことが決定された場合、第２の列幅変数をＡ−ＴｉｌｅＷｉｄｔｈに等しく設定することをさらに含む、実施形態Ａ１２またはＡ１３に記載の方法。
【０１７１】
Ａ１５．第２の列幅変数をＡ−ＴｉｌｅＷｉｄｔｈに等しく設定することは、Ａ−ＴｉｌｅＷｉｄｔｈが０よりも大きい場合にのみ実行される、実施形態Ａ１４に記載の方法。
【０１７２】
Ａ１６．ピクチャ中のタイル列の数を表す変数を変数ｉの値に等しくまたは変数ｉの値＋１に等しく設定することであって、ｉは、値（Ａ−（（ｉ−１）×ＴｉｌｅＷｉｄｔｈ））がＴｉｌｅＷｉｄｔｈよりも小さくないが、値（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））がＴｉｌｅＷｉｄｔｈよりも小さくなるような整数である、ピクチャ中のタイル列の数を表す変数を変数ｉの値に等しくまたは変数ｉの値＋１に等しく設定することをさらに含む、実施形態Ａ１４またはＡ１５に記載の方法。
【０１７３】
Ａ１７．セグメント列幅を導出することが、
１）変数（Ａ）を残っている幅値に設定することと、
２）変数（ｉ）を初期値に設定することと、
３）ＴｉｌｅＷｉｄｔｈが第１の値に等しい、（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しい値がＴｉｌｅＷｉｄｔｈよりも小さいかどうかを決定することと、
４）（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しい値がＴｉｌｅＷｉｄｔｈよりも小さくないことが決定された場合、変数ｃｏｌ＿ｗｉｄｔｈ［ｉ］をＴｉｌｅＷｉｄｔｈに等しく設定するステップと、ｉを増分するステップと、ステップ３）およびステップ４）を繰り返すステップとを実行することと
を含む、実施形態Ａ１からＡ１０のいずれか１つに記載の方法。
【０１７４】
Ａ１８．（Ａ−（ｉ×ＴｉｌｅＷｉｄｔｈ））に等しい値がＴｉｌｅＷｉｄｔｈよりも小さいことが決定された後に、ｃｏｌ＿ｗｉｄｔｈ［ｉ］をＡに等しく設定することと、ｉを増分することとを実行する、実施形態Ａ１７に記載の方法。
【０１７５】
様々な実施形態について本明細書（もしあれば、付属書類を含む）で説明したが、それらの実施形態は限定ではなく、例としてのみ提示されていることを理解されたい。したがって、本開示の広さおよび範囲は、上記で説明した例示的な実施形態のいずれかによって限定されるべきでない。その上、上記で説明した要素のすべての可能な変形形態におけるそれらの要素の任意の組合せは、本明細書で別段に示されていない限り、またはさもなければ、文脈によって明らかに否定されない限り、本開示によって包含される。
【０１７６】
さらに、上記で説明され、図面に示されたプロセスはステップのシーケンスとして示されているが、このことは例示のために行われたに過ぎない。したがって、いくつかのステップは追加され得、いくつかのステップは省略され得、ステップの順序は並べ替えられ得、いくつかのステップは並行して実行され得ることが企図される。
【図１】
2021524683.tif 000028
【図２Ａ】
2021524683.tif 000029
【図２Ｂ】
2021524683.tif 000030
【図３】
2021524683.tif 000031
【図４】
2021524683.tif 000032
【図５】
2021524683.tif 000033
【図６】
2021524683.tif 000034
【図７】
2021524683.tif 000035
【図８】
2021524683.tif 000036
【図９】
2021524683.tif 000037
【図１０】
2021524683.tif 000038
【図１１】
2021524683.tif 000039
【図１２】
2021524683.tif 000040
【図１３】
2021524683.tif 000041
【図１４】
2021524683.tif 000042
【図１５】
2021524683.tif 000043
【図１６】
2021524683.tif 000044
【手続補正書】
【提出日】令和3年1月20日(2021.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ピクチャ（１０）を復号するための方法（１５００）であって、前記方法は、
ビットストリーム中の１つまたは複数のシンタックス要素に基づいて、前記ピクチャが２つ以上のセグメントに区分されるという情報を復号すること（１５０２）と、
前記ビットストリーム中の前記１つまたは複数のシンタックス要素に基づいて、空間セグメンテーションが均一であるという情報を復号すること（１５０４）と、
前記１つまたは複数のシンタックス要素に基づいて、または事前規定されたセグメントユニットサイズに基づいて、セグメントユニットサイズを決定すること（１５０６）と、
前記ビットストリーム中の１つまたは複数のコードワードから、セグメント幅を示す第１の値を復号すること（１５０８）と、
前記ビットストリーム中の前記１つまたは複数のコードワードから、セグメント高さを示す第２の値を復号すること（１５１０）と、
セグメントユニットの数におけるピクチャ幅および前記第１の値に基づいてセグメント列幅を導出すること（１５１２）であって、セグメント列幅を導出することが、１つの列を除く、前記ピクチャ中のすべてのセグメント列の列幅値を前記第１の値に等しく設定することと、前記１つの残っているセグメント列の列幅値を、前記ピクチャ幅マイナス前記１つのセグメント列を除くすべてのセグメント列の前記幅値の和に等しく設定することとを含む、セグメント列幅を導出すること（１５１２）と、
セグメントユニットの数におけるピクチャ高さおよび前記第２の値に基づいてセグメント行高さを導出すること（１５１４）であって、セグメント行高さを導出することが、１つの行を除く、前記ピクチャ中のすべてのセグメント行の行高さ値を前記第２の値に等しく設定することと、前記１つの残っているセグメント行の行高さ値を、ピクチャ高さマイナス前記１つのセグメント行を除くすべてのセグメント行の前記高さ値の和に等しく設定することとを含む、セグメント行高さを導出すること（１５１４）と、
前記導出されたセグメント列幅および前記導出されたセグメント行高さに基づいて、現在ブロックについての空間ロケーションを導出すること（１５１６）と、
前記導出された空間ロケーションに基づいて前記現在ブロックを復号すること（１５１８）と
を含む、方法（１５００）。
【請求項２】
前記１つまたは複数のシンタックス要素がピクチャパラメータセット中に位置する、請求項１に記載の方法。
【請求項３】
前記１つまたは複数のシンタックス要素は、前記空間セグメンテーションが均一であるかどうかを指定する１ビットフラグを含む、請求項１または２に記載の方法。
【請求項４】
セグメントユニットがコーディングツリーユニットまたはコーディングツリーブロックである、請求項１から３のいずれか一項に記載の方法。
【請求項５】
セグメントユニットの数における前記ピクチャのサイズを計算することをさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
セグメントユニットの数における前記ピクチャの前記サイズを計算することが、前記ピクチャセグメントのサイズを高さについて計算することと、前記ピクチャセグメントのサイズを幅について計算することとを含む、請求項５に記載の方法。
【請求項７】
前記第１の値がセグメントユニットにおけるタイル幅を表し、前記第２の値がセグメントユニットにおけるタイル高さを表す、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記ビットストリーム中の１つまたは複数のコードワードから前記第１の値を復号することが、前記ビットストリーム中の特定のコードワードの値を復号することと、前記復号された値に１を加算することとからなる、および／または
前記ビットストリーム中の１つまたは複数のコードワードから前記第２の値を復号することが、前記ビットストリーム中の第２の特定のコードワードの値を復号することと、前記復号された値に１を加算することとからなる、
請求項１から７のいずれか一項に記載の方法。
【請求項９】
セグメント列幅を導出することが、（Ａ−ＴｉｌｅＷｉｄｔｈ）に等しい値をＴｉｌｅＷｉｄｔｈと比較することを含み、ＴｉｌｅＷｉｄｔｈが前記第１の値に等しく、Ａが残っている幅値に等しい、および／または
セグメント行高さを導出することが、（Ａ−ＴｉｌｅＨｅｉｇｈｔ）に等しい値をＴｉｌｅＨｅｉｇｈｔと比較することを含み、ＴｉｌｅＨｅｉｇｈｔが前記第２の値に等しく、Ａが残っている高さ値に等しい、
請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記残っている幅値が前記ピクチャ幅に等しい、および／または
前記残っている高さ値が前記ピクチャ高さに等しい、
請求項９に記載の方法。
【請求項１１】
（Ａ−ＴｉｌｅＷｉｄｔｈ）の前記値がＴｉｌｅＷｉｄｔｈよりも大きいことが決定された場合、第１の列幅変数をＴｉｌｅＷｉｄｔｈに等しく設定するステップと、（Ａ−（２×ＴｉｌｅＷｉｄｔｈ））に等しい値をＴｉｌｅＷｉｄｔｈと比較するステップとを実行すること、および／または
（Ａ−ＴｉｌｅＨｅｉｇｈｔ）の前記値がＴｉｌｅＨｅｉｇｈｔよりも大きいことが決定された場合、第１の行高さ変数をＴｉｌｅＨｅｉｇｈｔに等しく設定するステップと、（Ａ−（２×ＴｉｌｅＨｅｉｇｈｔ））に等しい値をＴｉｌｅＨｅｉｇｈｔと比較するステップとを実行すること
をさらに含む、請求項９または１０に記載の方法。
【請求項１２】
前記値（Ａ−ＴｉｌｅＷｉｄｔｈ）をＴｉｌｅＷｉｄｔｈと比較することが、Ａを（Ａ−ＴｉｌｅＷｉｄｔｈ）に等しく設定することと、ＡをＴｉｌｅＷｉｄｔｈと比較することとを含む、および／または
前記値（Ａ−ＴｉｌｅＨｅｉｇｈｔ）をＴｉｌｅＨｅｉｇｈｔと比較することが、Ａを（Ａ−ＴｉｌｅＨｅｉｇｈｔ）に等しく設定することと、ＡをＴｉｌｅＨｅｉｇｈｔと比較することとを含む、
請求項９、１０、または１１に記載の方法。
【請求項１３】
命令（１１４４）を含むコンピュータプログラム（１１４３）であって、前記命令（１１４４）が処理回路（１１０２）によって実行されたとき、前記処理回路（１１０２）に請求項１から１２のいずれか一項に記載の方法を実行させる、コンピュータプログラム（１１４３）。
【請求項１４】
請求項１３に記載のコンピュータプログラムを含んでいるキャリアであって、前記キャリアは、電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体（１１４２）のうちの１つである、キャリア。
【請求項１５】
ピクチャ（１０）を復号するための復号装置（１１００）であって、前記復号装置（１１００）は、請求項１から１２のいずれか一項に記載の方法を実行するように設定された、復号装置（１１００）。
【請求項１６】
ピクチャ（１０）を復号するための復号装置（１１００）であって、前記復号装置（１１００）は、
コンピュータ可読記憶媒体（１１４２）と、
前記コンピュータ可読記憶媒体に結合された処理回路（１１０２）であって、前記処理回路が、前記復号装置（１１００）に請求項１から１２のいずれか一項に記載の方法を実行させるように設定された、処理回路（１１０２）と
を備える、復号装置（１１００）。
【国際調査報告】
2021524683.tif 000045
2021524683.tif 000046
2021524683.tif 000047
2021524683.tif 000048