(57)【要約】  映像符号化機構が開示される。当該機構は、デコーダにて、複数のタイルへと分割された画像データのスライスを含む映像符号化層（ＶＣＬ）ネットワーク抽象化層（ＮＡＬ）ユニットを含んだビットストリームを受信することを含む。ＶＣＬ  ＮＡＬユニット内のタイルの数が割り出される。タイルに関するエントリーポイントオフセットの数も、ＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ないものとして割り出される。各エントリーポイントオフセットが、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示す。エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。エントリーポイントオフセットの数に基づいて、タイルに関するエントリーポイントオフセットが取得される。エントリーポイントオフセットにてタイルが復号されて、再構成画像を生成する。
2022500924.tif 000002
【特許請求の範囲】
【請求項１】
デコーダに実装される方法であって、
前記デコーダの受信器により、複数のタイルへと分割された画像データのスライスを含む映像符号化層（ＶＣＬ）ネットワーク抽象化層（ＮＡＬ）ユニットを含んだビットストリームを受信し、
前記デコーダのプロセッサにより、前記ＶＣＬ  ＮＡＬユニット内の前記タイルの数を割り出し、
前記プロセッサにより、前記ＶＣＬ  ＮＡＬユニット内の前記タイルの前記数より１だけ少ないものとして、前記タイルに関するエントリーポイントオフセットの数を割り出し、各エントリーポイントオフセットが、前記ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、前記エントリーポイントオフセットの前記数は、前記ビットストリーム内で明示的に信号伝達されず、
前記プロセッサにより、前記エントリーポイントオフセットの前記数に基づいて、前記タイルに関する前記エントリーポイントオフセットを取得し、
前記プロセッサにより、前記エントリーポイントオフセットにて前記タイルを復号して再構成画像を生成する、
ことを有する方法。
【請求項２】
前記タイルに関する前記エントリーポイントオフセットは、前記スライスに関連付けられたスライスヘッダから取得される、請求項１に記載の方法。
【請求項３】
前記ビットストリームは、複数のＶＣＬ  ＮＡＬユニットを含み、各ＶＣＬ  ＮＡＬユニットが、整数個のタイルへと分割された画像データの単一のスライスを含む、請求項１乃至２のいずれかに記載の方法。
【請求項４】
前記画像データは、前記タイルの各々に含まれる複数の符号化ツリーユニット（ＣＴＵ）として符号化され、前記ＶＣＬ  ＮＡＬユニット内の前記ＣＴＵのアドレスが、前記タイルに対応するタイル識別子（ＩＤ）に基づいて割り当てられる、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記タイルを復号することは、前記スライスヘッダ内で明示的に信号伝達される前記ＶＣＬ  ＮＡＬユニット内の前記ＣＴＵのアドレスに基づいて、前記ＣＴＵを復号することを含む、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記タイルを復号することは、
前記プロセッサにより、前記ＶＣＬ  ＮＡＬユニットに含まれる最初のタイルのタイルＩＤに基づいて、前記ＶＣＬ  ＮＡＬユニット内の前記ＣＴＵの前記アドレスを割り出し、
前記プロセッサにより、前記ＣＴＵの前記アドレスに基づいて前記ＣＴＵを復号する、
ことを含む、請求項１乃至４のいずれかに記載の方法。
【請求項７】
前記ＣＴＵは、前記ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを指し示すフラグを含まず、前記ＶＣＬ  ＮＡＬユニットは、各タイル内の最後のＣＴＵの直後にパディングビットを含む、請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記プロセッサにより、前記再構成画像を、再構成ビデオシーケンスの一部として、ディスプレイに向けて転送する、ことを更に有する請求項１乃至７のいずれかに記載の方法。
【請求項９】
エンコーダに実装される方法であって、
前記エンコーダのプロセッサにより、画像を少なくとも１つのスライスへと分割し、且つ該少なくとも１つのスライスを複数のタイルへと分割し、
前記プロセッサにより、前記タイルを、少なくとも１つのビデオ符号化層（ＶＣＬ）ネットワーク抽象化層（ＮＡＬ）ユニットのビットストリームへと符号化し、
前記プロセッサにより、前記ビットストリーム内に、前記ＶＣＬ  ＮＡＬユニット内の前記タイルの数を符号化し、
前記プロセッサにより、前記ビットストリーム内に、前記タイルに関するエントリーポイントオフセットを符号化し、各エントリーポイントオフセットが、前記ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、前記ビットストリーム内で明示的に信号伝達されず、
前記エンコーダの送信器により、前記エントリーポイントオフセットの前記数を有しない前記ビットストリームを送信して、前記タイルに関する前記エントリーポイントオフセットの前記数が前記ＶＣＬ  ＮＡＬユニット内の前記タイルの前記数より１だけ少ない、という推定に従って前記タイルを復号することをサポートする、
ことを有する方法。
【請求項１０】
前記タイルに関する前記エントリーポイントオフセットは、前記スライスに関連付けられたスライスヘッダ内に符号化される、請求項９に記載の方法。
【請求項１１】
前記ビットストリームは、複数のＶＣＬ  ＮＡＬユニットを含み、各ＶＣＬ  ＮＡＬユニットが、整数個のタイルへと分割された画像の単一のスライスを含む、請求項９乃至１０のいずれかに記載の方法。
【請求項１２】
前記タイルを複数の符号化ツリーユニット（ＣＴＵ）へと分割し、
前記タイルに対応するタイル識別子（ＩＤ）に基づいて、前記ＶＣＬ  ＮＡＬユニット内の前記ＣＴＵのアドレスを割り当てる、
ことを更に有する請求項９乃至１１のいずれかに記載の方法。
【請求項１３】
前記ＶＣＬ  ＮＡＬユニット内の前記ＣＴＵの前記アドレスを、前記スライスヘッダ内で明示的に信号伝達する、ことを更に有する請求項９乃至１２のいずれかに記載の方法。
【請求項１４】
前記ＶＣＬ  ＮＡＬユニット内の前記ＣＴＵの前記アドレスは前記ビットストリームから省かれ、前記ＶＣＬ  ＮＡＬユニットに含まれる最初のタイルのタイルＩＤに基づいた、デコーダでの、前記ＣＴＵの前記アドレスの割り出しをサポートする、請求項９乃至１２のいずれかに記載の方法。
【請求項１５】
前記ＣＴＵは、前記ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを指し示すフラグを含まず、前記ＶＣＬ  ＮＡＬユニットは、各タイル内の最後のＣＴＵの直後にパディングビットを含む、請求項９乃至１４のいずれかに記載の方法。
【請求項１６】
プロセッサ、該プロセッサに結合された受信器、及び該プロセッサに結合された送信器を有し、前記プロセッサ、前記受信器、及び前記送信器は、請求項１乃至１５のいずれかに記載の方法を実行するように構成されている、
映像符号化装置。
【請求項１７】
映像符号化装置によって使用されるコンピュータプログラムプロダクトを有する非一時的なコンピュータ読み取り可能媒体であって、前記コンピュータプログラムプロダクトは、プロセッサによって実行されるときに前記映像符号化装置に請求項１乃至１５のいずれかに記載の方法を実行させるように当該非一時的なコンピュータ読み取り可能媒体に格納された、コンピュータ実行可能命令を有する、非一時的なコンピュータ読み取り可能媒体。
【請求項１８】
複数のタイルへと分割された画像データのスライスを含む映像符号化層（ＶＣＬ）ネットワーク抽象化層（ＮＡＬ）ユニットを含んだビットストリームを受信する受信手段と、
前記ＶＣＬ  ＮＡＬユニット内の前記タイルの数を割り出し、且つ前記ＶＣＬ  ＮＡＬユニット内の前記タイルの前記数より１だけ少ないものとして、前記タイルに関するエントリーポイントオフセットの数を割り出す決定手段であり、各エントリーポイントオフセットが、前記ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、前記エントリーポイントオフセットの前記数は、前記ビットストリーム内で明示的に信号伝達されない、決定手段と、
前記エントリーポイントオフセットの前記数に基づいて、前記タイルに関する前記エントリーポイントオフセットを取得する取得手段と、
前記エントリーポイントオフセットにて前記タイルを復号して再構成画像を生成する復号手段と、
を有するデコーダ。
【請求項１９】
前記エンコーダは更に、請求項１乃至８のいずれかに記載の方法を実行するように構成される、請求項１８に記載のデコーダ。
【請求項２０】
画像を少なくとも１つのスライスへと分割し、且つ該少なくとも１つのスライスを複数のタイルへと分割する分割手段と、
前記タイルを、少なくとも１つのビデオ符号化層（ＶＣＬ）ネットワーク抽象化層（ＮＡＬ）ユニットのビットストリームへと符号化し、前記ビットストリーム内に前記ＶＣＬ  ＮＡＬユニット内の前記タイルの数を符号化し、且つ前記ビットストリーム内に前記タイルに関するエントリーポイントオフセットを符号化する符号化手段であり、各エントリーポイントオフセットが、前記ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、前記ビットストリーム内で明示的に信号伝達されない、符号化手段と、
前記エントリーポイントオフセットの前記数を有しない前記ビットストリームを送信して、前記タイルに関する前記エントリーポイントオフセットの前記数が前記ＶＣＬ  ＮＡＬユニット内の前記タイルの前記数より１だけ少ない、という推定に従って前記タイルを復号することをサポートする、送信手段と、
を有するエンコーダ。
【請求項２１】
当該エンコーダは更に、請求項９乃至１５のいずれかに記載の方法を実行するように構成される、請求項２０に記載のエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
この特許出願は、Ｙｅ−Ｋｕｉ  Ｗａｎｇらにより２０１８年９月１４日に出願された“Slicing  and  Tiling  In  Video  Coding”と題された米国仮特許出願第６２／７３１，６９６号の利益を主張するものであり、それをここに援用する。
本開示は、概して映像符号化に関し、具体的には、映像符号化において圧縮を増すことを支援するために画像をスライス、タイル、及び符号化ツリーユニット（coding  tree  units；ＣＴＵ）に分割することに関する。
【背景技術】
【０００２】
比較的短い映像であってもそれを描写するために必要とされる映像データの量はかなりのものとなり、それが、限られた帯域幅容量を持つ通信ネットワークを介してデータをストリーミングする又はその他の方法で通信するときに困難をもたらし得る。従って、映像データは一般に、今日の遠隔通信ネットワークを介して通信される前に圧縮される。映像のサイズはまた、メモリリソースが限られ得るために、映像がストレージ装置に格納されるときにも問題となり得る。映像圧縮装置は、しばしば、伝送又は記憶に先立って、ソースにてソフトウェア及び／又はハードウェアを用いて映像データを符号化し、それにより、デジタルビデオ画像を表すのに必要なデータの量を減少させる。そして、圧縮されたデータが、宛先で、映像データを復号する映像解凍装置によって受信される。限られたネットワークリソースと、増加の一途をたどるいっそう高い映像品質の要求とに伴い、画像品質の犠牲を殆ど乃至は全く払わずに圧縮比を向上させる改良された圧縮及び解凍技術が望ましい。
【発明の概要】
【０００３】
一実施形態において、本開示は、デコーダに実装される方法を含む。当該方法は、デコーダの受信器により、複数のタイルへと分割された画像データのスライスを含む映像符号化層（video  coding  layer；ＶＣＬ）ネットワーク抽象化層（network  abstraction  layer；ＮＡＬ）ユニットを含んだビットストリームを受信することを有する。当該方法は更に、デコーダのプロセッサにより、ＶＣＬ  ＮＡＬユニット内のタイルの数を割り出すことを有する。当該方法は更に、プロセッサにより、ＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ないものとして、タイルに関するエントリーポイントオフセットの数を割り出すことを有し、各エントリーポイントオフセットが、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。当該方法は更に、プロセッサにより、エントリーポイントオフセットの数に基づいて、タイルに関するエントリーポイントオフセットを取得することを有する。当該方法は更に、プロセッサにより、エントリーポイントオフセットにてタイルを復号して再構成画像を生成することを有する。一部のシステムでは、スライス内のタイルに関するエントリーポイントオフセットの数が明示的に信号伝達されている。開示されるシステムは、エントリーポイントオフセットの数を、タイルの数より１だけ少ないと推定する。この推定を用いることにより、エントリーポイントオフセットの数をビットストリームから省略することができる。従って、ビットストリームが更に短縮される。それ故に、ビットストリームを伝送するために使用されるネットワークリソースが削減される。さらに、エンコーダ及びデコーダの双方におけるメモリリソース使用量が減少される。
【０００４】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、タイルに関するエントリーポイントオフセットは、スライスに関連付けられたスライスヘッダから取得される。
【０００５】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、ビットストリームは、複数のＶＣＬ  ＮＡＬユニットを含み、各ＶＣＬ  ＮＡＬユニットが、整数個のタイルへと分割された画像データの単一のスライスを含む。一部のシステムにおいて、スライスとタイルは別々の分割スキームである。スライスがタイルに細分化されることを必要とすることにより、情報を推定することができる。例えば、スライス内の一部のタイルＩＤを、スライス内の最初のタイル及び最後のタイルによって推定することができる。さらに、スライス境界を、フレーム内でのスライスの相対位置ではなく、タイルＩＤに基づいて信号伝達することができる。これは、そして、サブフレームを信号伝達するときにスライスヘッダを書き換える必要がないアドレス指定スキームをサポートする。従って、一部の例においてビットストリームを更に短縮することができ、それによってメモリリソース及びネットワーク通信リソースが節約される。さらに、エンコーダ及び／又はデコーダにて、プロセッシングリソースを節約することができる。
【０００６】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、画像データは、タイルの各々に含まれる複数の符号化ツリーユニット（coding  tree  units；ＣＴＵ）として符号化され、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスが、タイルに対応するタイル識別子（ＩＤ）に基づいて割り当てられる。例えば、タイルＩＤに基づいてＣＴＵをアドレス指定することは、タイルＩＤに基づいてアドレスを推定することを可能にし、それがビットストリームを短縮させ得る。さらに、ＣＴＵに対するタイルベースのアドレス指定は、現在スライスの外で行われる符号化プロセスを参照しないＣＴＵコーディングをサポートする。それ故に、タイルＩＤに基づいてＣＴＵをアドレス指定することは並列処理をサポートし、ひいては、デコーダにおいて高められた復号速度をサポートする。
【０００７】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、タイルを復号することは、スライスヘッダ内で明示的に信号伝達されるＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスに基づいて、ＣＴＵを復号することを含む。
【０００８】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、タイルを復号することは、プロセッサにより、ＶＣＬ  ＮＡＬユニットに含まれる最初のタイルのタイルＩＤに基づいて、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスを割り出し、プロセッサにより、ＣＴＵのアドレスに基づいてＣＴＵを復号する、ことを含む。
【０００９】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、ＣＴＵは、ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを指し示すフラグを含まず、ＶＣＬ  ＮＡＬユニットは、各タイル内の最後のＣＴＵの直後にパディングビットを含む。一部のシステムでは、現在ＣＴＵがＶＣＬ  ＮＡＬユニット内の最後のＣＴＵであるか否かを指し示すフラグが各ＣＴＵ内で使用されている。本開示においては、スライス及びＣＴＵがタイルＩＤに基づいてアドレス指定され、且つＶＣＬ  ＮＡＬユニットが単一のスライスを含む。従って、デコーダは、どのＣＴＵがスライス内の最後のＣＴＵであるのか、及び故に、ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵであるのかを、そのようなフラグなしで割り出すことができる。ビデオシーケンスは多数のフレームを含み、フレームは多数のＣＴＵを含むので、データのビットを全てのＣＴＵエンコーディングから省くことは、ビットストリームを大幅に短縮することができる。それ故に、ビットストリームを伝送するために使用されるネットワークリソースが削減される。さらに、エンコーダ及びデコーダの双方におけるメモリリソース使用量が減少される。
【００１０】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、プロセッサにより、再構成画像を再構成ビデオシーケンスの一部としてディスプレイに向けて転送する、ことを更に有する。
【００１１】
一実施形態において、本開示は、エンコーダに実装される方法を含む。当該方法は、エンコーダのプロセッサにより、画像を少なくとも１つのスライスへと分割し、且つ該少なくとも１つのスライスを複数のタイルへと分割することを有する。当該方法は更に、プロセッサにより、タイルを、少なくとも１つのＶＣＬ  ＮＡＬユニットのビットストリームへと符号化することを有する。当該方法は更に、プロセッサにより、ビットストリーム内に、ＶＣＬ  ＮＡＬユニット内のタイルの数を符号化することを有する。当該方法は更に、プロセッサにより、ビットストリーム内に、タイルに関するエントリーポイントオフセットを符号化することを有し、エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。当該方法は更に、エンコーダの送信器により、エントリーポイントオフセットの数を有しないビットストリームを送信して、タイルに関するエントリーポイントオフセットの数がＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ない、という推定に従ってタイルを復号することをサポートする、ことを有する。一部のシステムでは、スライス内のタイルに関するエントリーポイントオフセットの数が明示的に信号伝達されている。開示されるシステムは、エントリーポイントオフセットの数を、タイルの数より１だけ少ないと推定する。この推定を用いることにより、エントリーポイントオフセットの数をビットストリームから省略することができる。従って、ビットストリームが更に短縮される。それ故に、ビットストリームを伝送するために使用されるネットワークリソースが削減される。さらに、エンコーダ及びデコーダの双方におけるメモリリソース使用量が減少される。
【００１２】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、タイルに関するエントリーポイントオフセットは、スライスに関連付けられたスライスヘッダ内に符号化される。
【００１３】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、ビットストリームは、複数のＶＣＬ  ＮＡＬユニットを含み、各ＶＣＬ  ＮＡＬユニットが、整数個のタイルへと分割された画像の単一のスライスを含む。一部のシステムにおいて、スライスとタイルは別々の分割スキームである。スライスがタイルに細分化されることを必要とすることにより、情報を推定することができる。例えば、スライス内の一部のタイルＩＤを、スライス内の最初のタイル及び最後のタイルによって推定することができる。さらに、スライス境界を、フレーム内でのスライスの相対位置ではなく、タイルＩＤに基づいて信号伝達することができる。これは、そして、サブフレームを信号伝達するときにスライスヘッダを書き換える必要がないアドレス指定スキームをサポートする。従って、一部の例においてビットストリームを更に短縮することができ、それによってメモリリソース及びネットワーク通信リソースが節約される。さらに、エンコーダ及び／又はデコーダにて、プロセッシングリソースを節約することができる。
【００１４】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装は、タイルを複数のＣＴＵへと分割し、タイルに対応するタイル識別子（ＩＤ）に基づいて、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスを割り当てる、ことを提供する。例えば、タイルＩＤに基づいてＣＴＵをアドレス指定することは、タイルＩＤに基づいてアドレスを推定することを可能にし、それがビットストリームを短縮させ得る。さらに、ＣＴＵに対するタイルベースのアドレス指定は、現在スライスの外で行われる符号化プロセスを参照しないＣＴＵコーディングをサポートする。それ故に、タイルＩＤに基づいてＣＴＵをアドレス指定することは並列処理をサポートし、ひいては、デコーダにおいて高められた復号速度をサポートする。
【００１５】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスを、スライスヘッダ内で明示的に信号伝達する、ことを更に有する。
【００１６】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスはビットストリームから省かれ、ＶＣＬ  ＮＡＬユニットに含まれる最初のタイルのタイルＩＤに基づいた、デコーダでの、ＣＴＵのアドレスの割り出しをサポートする。本開示においては、スライス及びＣＴＵがタイルＩＤに基づいてアドレス指定され、且つＶＣＬ  ＮＡＬユニットが単一のスライスを含む。従って、デコーダは、どのＣＴＵがスライス内の最後のＣＴＵであるのか、及び故に、ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵであるのかを、そのようなフラグなしで割り出すことができる。ビデオシーケンスは多数のフレームを含み、フレームは多数のＣＴＵを含むので、データのビットを全てのＣＴＵエンコーディングから省くことは、ビットストリームを大幅に短縮することができる。それ故に、ビットストリームを伝送するために使用されるネットワークリソースが削減される。さらに、エンコーダ及びデコーダの双方におけるメモリリソース使用量が減少される。
【００１７】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、ＣＴＵは、ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを指し示すフラグを含まず、ＶＣＬ  ＮＡＬユニットは、各タイル内の最後のＣＴＵの直後にパディングビットを含む。
【００１８】
一実施形態において、本開示は、プロセッサ、該プロセッサに結合された受信器、及び該プロセッサに結合された送信器を有する映像符号化装置を含み、プロセッサ、受信器、及び送信器は、前述の態様のいずれかの方法を実行するように構成される。
【００１９】
一実施形態において、本開示は、映像符号化装置によって使用されるコンピュータプログラムプロダクトを有する非一時的なコンピュータ読み取り可能媒体を含み、コンピュータプログラムプロダクトは、プロセッサによって実行されるときに映像符号化装置に前述の態様のいずれかの方法を実行させるように当該非一時的なコンピュータ読み取り可能媒体に格納されたコンピュータ実行可能命令を有する。
【００２０】
一実施形態において、本開示は、複数のタイルへと分割された画像データのスライスを含むＶＣＬネットワーク抽象化層（ＮＡＬ）ユニットを含んだビットストリームを受信する受信手段、を有するデコーダを含む。当該デコーダは更に、ＶＣＬ  ＮＡＬユニット内のタイルの数を割り出し、且つＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ないものとして、タイルに関するエントリーポイントオフセットの数を割り出す決定手段を有し、エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。当該デコーダは更に、エントリーポイントオフセットの数に基づいて、タイルに関するエントリーポイントオフセットを取得する取得手段を有する。当該デコーダは更に、エントリーポイントオフセットにてタイルを復号して再構成画像を生成する復号手段を有する。
【００２１】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、エンコーダは更に、前述の態様のいずれかの方法を実行するように構成される。
【００２２】
一実施形態において、本開示は、画像を少なくとも１つのスライスへと分割し、且つ該少なくとも１つのスライスを複数のタイルへと分割する分割手段、を有するエンコーダを含む。当該エンコーダは更に、タイルを、少なくとも１つのＶＣＬ  ＮＡＬユニットのビットストリームへと符号化し、ビットストリーム内にＶＣＬ  ＮＡＬユニット内のタイルの数を符号化し、且つビットストリーム内にタイルに関するエントリーポイントオフセットを符号化する符号化手段を有し、エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。当該エンコーダは更に送信手段を有し、該送信手段は、エントリーポイントオフセットの数を有しないビットストリームを送信して、タイルに関するエントリーポイントオフセットの数がＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ない、という推定に従ってタイルを復号することをサポートする。
【００２３】
オプションで、前述の態様のいずれかにおいて、その態様の他の一実装が提供することには、エンコーダは更に、前述の態様のいずれかの方法を実行するように構成される。
【００２４】
明確にしておくために、前述の実施形態のいずれか１つを、他の前述の実施形態のいずれか１つ以上と組み合わせて、本開示の範囲内の新たな実施形態を作り出すことができる。
【００２５】
これら及び他の特徴が、添付の図面及び請求項とともに用いられる以下の詳細な説明から、より明瞭に理解されることになる。
【図面の簡単な説明】
【００２６】
この開示のいっそう完全なる理解のため、同様の部分を同様の参照符号が表す添付図面及び詳細説明に関連して、以下の簡単な説明を参照しておく。
【図１】映像信号を符号化する方法の一例のフローチャートである。
【図２】映像符号化のための符号化・復号（コーデック）システムの一例の概略図である。
【図３】ビデオエンコーダの一例を示す概略図である。
【図４】ビデオデコーダの一例を示す概略図である。
【図５】符号化ビデオシーケンスを含むビットストリームの一例を示す概略図である。
【図６】符号化のために分割された画像の一例を示す概略図である。
【図７】映像符号化装置の一例の概略図である。
【図８】画像をビットストリームへと符号化する方法の一例のフローチャートである。
【図９】ビットストリームから画像を復号する方法の一例のフローチャートである。
【図１０】画像のビデオシーケンスをビットストリームに符号化するシステムの一例の概略図である。
【発明を実施するための形態】
【００２７】
最初に理解されるべきことには、１つ以上の実施形態の例示的な実装が以下にて提示されるが、開示されるシステム及び／又は方法は、現に知られている又は存在しているのであろうとなかろうと、幾つもの技術を用いて実装され得る。この開示は決して、ここに図示して記述される例示的な設計及び実装を含めて、以下に例示される例示的な実装、図面及び技術に限定されるべきものでなく、添付の請求項の範囲及びそれらの完全なる均等範囲の中で変更され得るものである。
【００２８】
最小限のデータ損失で映像ファイルのサイズを縮小するために数多くの映像圧縮技術を使用することができる。例えば、映像圧縮技術は、ビデオシーケンスにおけるデータ冗長性を低減又は除去するために、空間（例えば、イントラピクチャ）予測及び／又は時間（例えば、インターピクチャ）予測を実行することを含み得る。ブロックベースの映像符号化では、映像スライス（例えば、映像ピクチャ又は映像ピクチャの一部）が、ツリーブロック、符号化ツリーブロック（coding  tree  block；ＣＴＢ）、符号化ツリーユニット（coding  tree  unit；ＣＴＵ）、符号化ユニット（coding  unit；ＣＵ）、及び／又は符号化ノードとも呼ばれ得るものである映像ブロックへと分割され得る。ピクチャのイントラ符号化（Ｉ）スライス内の映像ブロックは、同一ピクチャ内の隣接ブロックの参照サンプルに対する空間予測を用いて符号化される。ピクチャのインター符号化一方向予測（Ｐ）又は双方向予測（Ｂ）スライス内の映像ブロックは、同一ピクチャ内の隣接ブロックの参照サンプルに対する空間予測、又は他の参照ピクチャ内の参照サンプルに対する時間予測を用いることによって符号化され得る。ピクチャは、フレーム及び／又は画像と呼ばれることもあり、参照ピクチャは、参照フレーム及び／又は参照画像とも呼ばれることがある。空間予測又は時間予測は、画像ブロックを表す予測ブロックをもたらす。残差データが、元の画像ブロックと予測ブロックとの間のピクセル差を表す。従って、インター符号化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、符号化されたブロックと予測ブロックとの間の差を示す残差データとに従って符号化される。イントラ符号化ブロックは、イントラ符号化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、ピクセルドメインから変換ドメインへと変換され得る。これらが、残差変換係数をもたらし、それらが量子化され得る。量子化された変換係数は、当初、二次元アレイに配列され得る。変換係数の一次元ベクトルを生成するために、量子化された変換係数がスキャンされ得る。エントロピー符号化を適用することで、より多くの圧縮を達成し得る。このような映像圧縮技術を、以下にて更に詳細に説明する。
【００２９】
符号化された映像を正確に復号できることを確保するために、映像は、対応する映像符号化規格に従って符号化及び復号される。映像符号化規格は、国際電気通信連合（ＩＴＵ）標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）モーションピクチャエキスパートグループ（ＭＰＥＧ）−１  パート２、ＩＴＵ−Ｔ  Ｈ．２６２若しくはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  パート２、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  パート２、ＩＴＵ−Ｔ  Ｈ．２６４若しくはＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  パート１０としても知られるアドバンストビデオコーディング（ＡＶＣ）、及びＩＴＵ−Ｔ  Ｈ．２６５若しくはＭＰＥＧ−Ｈ  パート２としても知られる高効率ビデオコーディング（ＨＥＶＣ）を含む。ＡＶＣは、例えばスケーラブルビデオコーディング（ＳＶＣ）、マルチビュービデオコーディング（ＭＶＣ）及びマルチビュービデオコーディング・プラス・デプス（ＭＶＣ＋Ｄ）、及び三次元（３Ｄ）ＡＶＣ（３Ｄ−ＡＶＣ）などの拡張を含む。ＨＥＶＣは、例えばスケーラブルＨＥＶＣ（ＳＨＶＣ）、マルチビューＨＥＶＣ（ＭＶ−ＨＥＶＣ）及び３Ｄ  ＨＥＶＣ（３Ｄ−ＨＥＶＣ）などの拡張を含む。ＩＴＵ‐ＴとＩＳＯ／ＩＥＣとのジョイントビデオエキスパートチーム（ＪＶＥＴ）が、バーサタイルビデオコーディング（ＶＶＣ）と呼ばれる映像符号化規格の開発に着手している。ＶＶＣは、ＪＶＥＴ−Ｋ１００１−ｖ４及びＪＶＥＴ−Ｋ１００２−ｖ１を含むものであるワーキングドラフト（ＷＤ）に含まれる。
【００３０】
ビデオ画像を符号化するために、先ず画像が分割され、それらの区画がビットストリームへと符号化される。様々な画像分割スキームが利用可能である。例えば、画像は、通常スライス、従属スライス、タイルへと分割されることができ、及び／又は波面並列処理（Wavefront  Parallel  Processing；ＷＰＰ）に従って分割されることができる。単純化のために、ＨＥＶＣは、スライスを映像符号化のためのＣＴＢのグループへと分割するときに、通常スライス、従属スライス、タイル、ＷＰＰ、及びこれらの組み合わせのみを使用し得るようにエンコーダを制約する。このような分割は、最大転送ユニット（Maximum  Transfer  Unit；ＭＴＵ）サイズマッチング、並列処理、及びエンドツーエンド遅延の低減をサポートするために適用されることができる。ＭＴＵは、単一のパケットで伝送されることができるデータの最大量を表す。パケットペイロードがＭＴＵを超える場合、そのペイロードは断片化と呼ばれるプロセスを通して２つのパケットへと分割される。
【００３１】
単純にスライスとも呼ばれる通常スライスは、ループフィルタリング処理に起因する何らかの相互依存性にもかかわらず、同一画像内の他の通常スライスとは独立に再構成されることができる画像の分割部分である。各通常スライスは、伝送のためにそれ自身のネットワーク抽象化層（ＮＡＬ）ユニットに封入される。また、独立した再構成をサポートするために、スライス境界を横切ってのピクチャ内予測（イントラサンプル予測、動き情報予測、符号化モード予測）とエントロピー符号化の依存性を無効にし得る。そのような独立した再構成は並列化を支援する。例えば、通常スライスベースの並列化は、最小限のプロセッサ間通信又はコア間通信のみを使用する。しかしながら、各通常スライスが独立であるため、各スライスに別個のスライスヘッダが付随する。通常スライスの使用は、スライス毎のスライスヘッダのビットコストのため、及びスライス境界を横切っての予測の欠如のため、実質的な符号化オーバーヘッドを招き得る。また、通常スライスは、ＭＴＵサイズ要求に合致することをサポートするために使用され得る。具体的には、通常スライスは別個のＮＡＬユニットに封入されて独立に符号化され得るので、スライスを複数のパケットに分断することを避けるために、各通常スライスがＭＴＵスキームにおけるＭＴＵより小さくあるべきである。それ故に、並列化の目標とＭＴＵサイズマッチングの目標とが、ピクチャにおけるスライスレイアウトに矛盾する要求を課し得る。
【００３２】
従属スライスは、通常スライスと同様であるが、短くされたスライスヘッダを持ち、ピクチャ内予測を破ることなく画像ツリーブロック境界の分割を可能にする。従って、従属スライスは、通常スライスが複数のＮＡＬユニットへと断片化されることを可能にし、それが、通常スライス一部をその通常スライス全体の符号化が完了する前に送出することを可能にすることによって、エンドツーエンド遅延の低減を提供する。
【００３３】
タイルは、タイルの列と行を生み出す水平境界及び垂直境界によって作り出される画像の分割部分である。タイルは、（右から左及び上から下への）ラスタースキャン順に符号化され得る。ＣＴＢのスキャン順序はタイル内でローカルである。従って、第１タイル内のＣＴＢが、次のタイル内のＣＴＢに進む前に、ラスタースキャン順に符号化される。通常スライスと同様に、タイルは、ピクチャ内予測依存及びエントロピー復号依存を破る。しかしながら、タイルは個別のＮＡＬユニットに含められなくてよく、従って、タイルはＭＴＵサイズマッチングに使用されなくてよい。各タイルは、１つのプロセッサ／コアによって処理されることができ、隣接するタイルを復号するプロセッシングユニット間での、ピクチャ内予測に使用されるプロセッサ間／コア間通信は、共有スライスヘッダを伝達すること（隣接するタイルが同一スライス内にあるとき）と、再構成されたサンプル及びメタデータのループフィルタリング関連の共有を実行することとに限られ得る。スライス内に２つ以上のタイルが含まれる場合、スライス内の最初のエントリーポイントオフセット以外の各タイルに関するエントリーポイントバイトオフセットが、スライスヘッダ内で信号伝達され得る。各スライス及びタイルについて、以下の条件のうちの少なくとも一方が満たされるべきである：１）スライス内の全ての符号化ツリーブロックが同一タイルに属する；及び２）タイル内の全ての符号化ツリーブロックが同一スライスに属する。
【００３４】
ＷＰＰでは、画像が複数の単一行のＣＴＢへと分割される。エントロピー復号及び予測機構は、他の行のＣＴＢからのデータを使用することができる。複数のＣＴＢ行の並列復号を通じて並列処理が可能となる。例えば、現在の行が、前の行と並列に復号され得る。しかしながら、現在の行の復号は、前の行の復号プロセスから２つのＣＴＢだけ遅らされる。この遅延が、現在の行内の現在のＣＴＢの上のＣＴＢ及び右上のＣＴＢに関するデータが、現在のＣＴＢが符号化される前に利用可能になることを保証する。このアプローチは、図形的に表されるときに波面のように見える。このスタガード（staggered）スタートは、画像が含むＣＴＢ行と同じ多さのプロセッサ／コアに至るまでの並列化を可能にする。ピクチャ内の隣接するツリーブロック行間でのピクチャ内予測が許されるので、ピクチャ内予測を可能にするためのプロセッサ間／コア間通信がかなりのものとなり得る。ＷＰＰ分割はＮＡＬユニットサイズを考慮する。従って、ＷＰＰはＭＴＵサイズマッチングをサポートしない。しかしながら、必要に応じてＭＴＵサイズマッチングを実現するために、ある一定の符号化オーバーヘッドを伴って、ＷＰＰと共に通常スライスを使用することができる。
【００３５】
タイルはまた、動き制約タイルセットを含み得る。動き制約タイルセット（motion  constrained  tile  set；ＭＣＴＳ）は、関連する動きベクトルが、ＭＣＴＳ内のフルサンプル位置と、補間のためにＭＣＴＳ内のフルサンプル位置のみを必要とする分数（fractional）サンプル位置と、を指すように制約されるよう設計されたタイルセットである。また、ＭＣＴＳ外のブロックから導出される時間的な動きベクトル予測に関する動きベクトル候補の使用は許されない。斯くして、各ＭＣＴＳは、該ＭＣＴＳに含まれないタイルの存在なしに、独立して復号され得る。ビットストリーム内のＭＣＴＳの存在を指し示すとともに、それらＭＣＴＳを信号伝達するために、時間的ＭＣＴＳ補足強化情報（supplemental  enhancement  information；ＳＥＩ）メッセージが使用され得る。ＭＣＴＳ  ＳＥＩメッセージは、ＭＣＴＳの準拠ビットストリームを生成するためのＭＣＴＳサブビットストリーム抽出（ＳＥＩメッセージのセマンティクスの一部として規定される）で使用されることが可能な補足情報を提供する。該情報は、多数の抽出情報セットを含み、各々が、多数のＭＣＴＳを規定するとともに、ＭＣＴＳサブビットストリーム抽出プロセスにおいて使用される置換ビデオパラメータセット（video  parameter  set；ＶＰＳ）、シーケンスパラメータセット（sequence  parameter  set；ＳＰＳ）、及びピクチャパラメータセット（picture  parameter  set；ＰＰＳ）のローバイトシーケンスペイロード（raw  bytes  sequence  payload；ＲＢＳＰ）バイトを含む。ＭＣＴＳサブビットストリーム抽出プロセスに従ってサブビットストリームを抽出するとき、パラメータセット（ＶＰＳ、ＳＰＳ、及びＰＰＳ）を書き換えたり置き換えたりすることができ、また、スライスアドレス関連の構文要素（first_slice_segment_in_pic_flag及びslice_segment_addressを含む）の１つ又は全てが抽出されたサブビットストリームにおいて異なる値を使用し得るので、スライスヘッダを更新することができる。
【００３６】
前述のタイリング及びスライシング機構は、ＭＴＵサイズマッチング及び並列処理をサポートするためにかなりの柔軟性を提供する。しかしながら、ＭＴＵサイズマッチングは、高まり続ける遠隔通信ネットワークの速さ及び信頼性のために、あまり重要でなくなってきている。例えば、ＭＴＵサイズマッチングの主な用途の１つは、誤差隠し（error-concealed）ピクチャを表示することを支援することである。誤差隠しピクチャは、幾らかのデータ損失があるときに伝送された符号化ピクチャから作り出される復号ピクチャである。そのようなデータ損失は、符号化ピクチャの一部スライスの損失、又は符号化ピクチャによって使用される参照ピクチャにおける誤差（例えば、参照ピクチャも誤差隠しピクチャである）を含み得る。誤差隠しピクチャは、例えば、ビデオシーケンス内の先行ピクチャから、誤差ありスライスに対応するスライスをコピーすることによって、誤差ありスライスを推定し正しいスライスを表示することによって作成されることができる。誤差隠しピクチャは、各スライスが単一のＮＡＬユニットに含まれるときに生成されることができる。しかしながら、スライスが複数のＮＡＬユニットにわたって断片化される場合（例えば、ＭＴＵサイズマッチングなし）、１つのＮＡＬユニットの損失が複数のスライスを破損してしまい得る。誤差隠しピクチャの生成は、現代のネットワーク環境ではあまり重要ではない。何故なら、パケット損失が起こることはそれほど多くないからであり、また、現代のネットワーク速度は、誤差ありピクチャとその後の誤差なしピクチャとの間の遅延が一般に小さいので、システムが有意なビデオフリーズを引き起こすことなく誤差のあるピクチャを完全に省略することを可能にするからである。また、誤差隠しピクチャの品質を推定するプロセスは複雑であることがあり、従って、単純に誤差ありピクチャを省略することが好ましいことがある。従って、例えばビデオ会議及びテレビ電話などのビデオ会話アプリケーションは、及び放送アプリケーションでさえ、一般的に、誤差隠しピクチャを使用することを見合わせる。
【００３７】
誤差隠しピクチャはあまり有用でないので、ＭＴＵサイズマッチングはあまり有用でない。また、分割するときにＭＴＵサイズマッチングパラダイムをサポートし続けることは、符号化システムをいたずらに複雑にしてし得るとともに、さもなければ符号化効率を高めるために省略され得る廃棄ビットを使用してしまい得る。加えて、一部のタイリングスキーム（例えば、ＭＣＴＳ）は、画像のうちのサブ画像を表示することを可能にする。サブピクチャを表示するために、関心領域内のスライスが表示され、他のスライスは省略される。関心領域は、画像の左上の部分以外の位置で始まることができ、従って、ピクチャの始まりから可変値だけオフセットされたアドレスを持ち得る。サブ画像を適切に表示するために、このオフセットを構成するように関心領域の（１つ以上の）スライスヘッダを書き換えるためにスプライサが使用され得る。このようなスライスヘッダ書き換えを必要としないスライシング及びタイリングスキームが有益であろう。加えて、タイル境界は、それらがピクチャ境界とコロケートされない限り、ピクチャ境界として扱われなくてもよい。しかしながら、タイル境界をピクチャ境界として扱うことは、境界の埋め込みにより、及び参照ピクチャの境界外のサンプルを指す動きベクトルに関する制約を緩和することにより、一部のケースで符号化効率を高め得る。また、ＨＥＶＣは、スライスの終わりに到達したかを指し示すために、各ＣＴＵに関する符号化データの終わりにend_of_slice_flagという名称のフラグを使用し得る。ＡＶＣは、同じ目的のために、このフラグを、各マクロブロック（ＭＢ）に関する符号化データの終わりに使用する。しかしながら、最後のＣＴＵ／ＭＢが他の機構を通じて分かる場合には、このフラグの符号化は不要であり、ビットの無駄である。本開示は、映像符号化技術におけるこれら及び他の問題に対処するための機構を提供する。
【００３８】
上述のスライシング及びタイリングスキームに関連する処理オーバーヘッドを低減し、符号化効率を高めるための様々な機構がここに開示される。一例において、スライスが整数個のタイルを含むことが要求され、各スライスが、別個の映像符号化層（ＶＣＬ）ＮＡＬユニットに格納される。さらに、スライス内のタイルの数を、スライスの左上隅のタイル及び右下隅のタイルに基づいて計算することができる。そして、タイルの数を用いて、従ってビットストリームから省略することできる他の値を計算することができる。特定の一例として、ビットストリーム内の各タイルのアドレスは、スライスの始まりからの、及び故に、ＶＣＬ  ＮＡＬユニットの始まりからの、エントリーポイントオフセットである。エントリーポイントオフセットの数は、タイルの数より１だけ少ないものとして計算されることができる（最初のタイルはゼロのオフセットを持ち、従って省略されるからである）。そして、スライスに対応するスライスヘッダからタイルに関するエントリーポイントオフセットを取り出すときに、エントリーポイントオフセットの数を使用することができる。さらに、タイル内のＣＴＵは、対応するＣＴＵを含むタイル識別子（ＩＤ）の関数としてアドレス指定され得る。そして、ＣＴＵのアドレスが、明示的に信号伝達され、あるいは、実施形態に応じて、タイルＩＤ及び計算されたタイル数に基づいて導出され得る。さらに、ＶＣＬ  ＮＡＬユニット内のタイルの数及びタイル内のＣＴＵの数の知識は、デコーダがＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを割り出すことを可能にする。従って、スライス内の最後のＣＴＵを指し示すために以前は各ＣＴＵに含められていたend_of_slice_flagをビットストリームから省略することができ、それが、ビデオシーケンス全体において各ＣＴＵに対して１ビットの節約をもたらす。これら及び他の例を以下にて詳細に説明する。
【００３９】
図１は、映像信号を符号化する動作方法１００の一例のフローチャートである。具体的には、映像信号はエンコーダで符号化される。符号化プロセスは、映像ファイルサイズを縮小するための様々な機構を使用することによって映像信号を圧縮する。より小さいファイルサイズは、圧縮された映像ファイルを、関連する帯域幅オーバーヘッドを減少させながら、ユーザに向けて伝送することを可能にする。そして、デコーダが、圧縮された映像ファイルを復号して、エンドユーザへの表示のために元の映像信号を再構成する。復号プロセスは、概して、符号化プロセスを映したものであり、デコーダが一貫して映像信号を再構成することを可能にする。
【００４０】
ステップ１０１にて、映像信号がエンコーダに入力される。例えば、映像信号は、メモリに格納された未圧縮の映像ファイルとし得る。他の一例として、映像ファイルは、例えばビデオカメラなどの映像キャプチャ装置によってキャプチャされて、映像のライブストリーミングをサポートするように符号化され得る。映像ファイルは、音声コンポーネント及び映像コンポーネントの双方を含み得る。映像コンポーネントは、順に見たときに動きの視覚的印象を与える一連の画像フレームを含む。フレームは、ここではルマ（luma）成分（又はルマサンプル）として参照する明るさと、ここではクロマ（chroma）成分（又はカラーサンプル）として参照する色との観点で表現されるピクセル群を含む。一部の例において、フレームはまた、三次元表示をサポートするための深さ値を含んでもよい。
【００４１】
ステップ１０３にて、映像がブロックに分割される。分割は、圧縮のために各フレームのピクセル群を正方形及び／又は長方形のブロックに細分することを含む。例えば、高効率ビデオコーディング（ＨＥＶＣ）（Ｈ．２６５及びＭＰＥＧ−Ｈパート２としても知られる）において、フレームは、先ず、所定サイズ（例えば、６４ピクセル×６４ピクセル）のブロックである符号化ツリーユニット（ＣＴＵ）へと分割されることができる。ＣＴＵは、ルマサンプル及びクロマサンプルの双方を含む。符号化ツリーを使用して、ＣＴＵをブロックへと分割し、そして、更なる符号化をサポートする構成が達成されるまでブロックを再帰的に細分し得る。例えば、フレームのルマ成分が、個々のブロックが比較的均一な照明値を含むまで細分され得る。さらに、フレームのクロマ成分が、個々のブロックが比較的均一な色値を含むまで細分され得る。従って、映像フレームのコンテンツに応じて分割機構が変わる。
【００４２】
ステップ１０５にて、様々な圧縮機構を使用して、ステップ１０３で分割された画像ブロックを圧縮する。例えば、インター予測及び／又はイントラ予測が使用され得る。インター予測は、共通シーン内のオブジェクトは複数の連続するフレームに現れる傾向があるという事実を利用するように設計される。従って、参照フレーム内のオブジェクトを描くブロックを、隣接するフレームにおいて繰り返し記述する必要はない。具体的には、例えばテーブルなどのオブジェクトは、複数のフレームにわたって定位置に留まり得る。従って、テーブルは一度記述され、隣接するフレームは参照フレームを参照し返すことができる。パターンマッチング機構を使用して、複数フレームにわたってオブジェクトをマッチングし得る。また、移動するオブジェクトは、例えばオブジェクトの動き又はカメラの動きのために、複数のフレームにわたって表現され得る。特定の一例として、映像は、複数のフレームにわたってスクリーンを横切って移動する自動車を示し得る。そのような動きを記述するために、動きベクトルを用いることができる。動きベクトルは、あるフレーム内でのオブジェクトの座標から参照フレーム内でのそのオブジェクトの座標へのオフセットを提供する二次元ベクトルである。それ故に、インター予測は、現在フレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを指し示す一組の動きベクトルとして符号化することができる。
【００４３】
イントラ予測は、共通フレーム内のブロックを符号化する。イントラ予測は、ルマ成分及びクロマ成分はフレーム内で群がる傾向があるという事実を利用する。例えば、樹木の一部の緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。イントラ予測は、多数の方向予測モード（例えば、ＨＥＶＣでは３３種）、平面モード、及び直流（ＤＣ）モードを使用する。方向モードは、現在ブロックが、対応する方向の隣接ブロックのサンプルと類似／同じであることを示す。平面モードは、行／列に沿った一連のブロック（例えば、平面）が、行の端における隣接ブロックに基づいて補間され得ることを示す。平面モードは、事実上、値を変化させる際に比較的一定の傾きを使用することによって、行／列を横切る明るさ／色の滑らかな遷移を示す。ＤＣモードは、境界平滑化のために使用され、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックのサンプルに関する平均値と類似／同じであることを示す。従って、イントラ予測ブロックは、画像ブロックを、実際の値の代わりに様々な関係予測モード値として表現することができる。また、インター予測ブロックは、画像ブロックを、実際の値の代わりに動きベクトル値として表現することができる。いずれの場合も、予測ブロックは、一部のケースにおいて、画像ブロックを正確には表現しないことがある。差異が残差ブロックに格納される。ファイルを更に圧縮するために、残差ブロックに変換が適用され得る。
【００４４】
ステップ１０７にて、様々なフィルタリング技術が適用され得る。ＨＥＶＣでは、インループフィルタリングスキームに従ってフィルタが適用される。上述のブロックベースの予測は、デコーダにおいてブロックノイズのある画像の作成をもたらし得る。さらに、ブロックベースの予測スキームは、ブロックを符号化し、次いで、参照ブロックとしての後の使用のために、符号化されたブロックを再構成し得る。インループフィルタリングスキームは、ブロック／フレームに対して、ノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ、及びサンプル適応オフセット（sample  adaptive  offset；ＳＡＯ）フィルタを繰り返し適用する。これらのフィルタは、そのようなブロッキングアーチファクトを軽減して、符号化されたファイルを正確に再構成することができるようにする。さらに、これらのフィルタは、再構成される参照ブロックにおけるアーチファクトを軽減して、アーチファクトが、再構成された参照ブロックに基づいて符号化される後続ブロック内に更なるアーチファクトを生み出すことが起こりにくいようにする。
【００４５】
映像信号が分割され、圧縮され、及びフィルタリングされると、ステップ１０９にて、得られたデータがビットストリームに符号化される。ビットストリームは、上述のデータと、デコーダにおける適切な映像信号再構成をサポートするために望まれる信号伝達データとを含む。例えば、そのようなデータは、分割データ、予測データ、残差ブロック、及びデコーダに符号化命令を提供する様々なフラグを含み得る。ビットストリームは、要求を受けてデコーダに向けて送信するためにメモリに格納され得る。ビットストリームはまた、複数のデコーダに向けてブロードキャスト及び／又はマルチキャストされてもよい。ビットストリームの作成は反復プロセスである。従って、ステップ１０１、１０３、１０５、１０７、及び１０９は、多数のフレーム及びブロックにわたって連続的に及び／又は同時に行われ得る。図１に示す順序は、説明の明確さ及び容易さのために提示されたものであり、映像符号化プロセスを特定の順序に限定することを意図したものではない。
【００４６】
ステップ１１１にて、デコーダがビットストリームを受信し、復号処理を開始する。具体的には、デコーダは、エントロピー復号スキームを使用してビットストリームを対応する構文及び映像データに変換する。デコーダは、ステップ１１１にて、ビットストリームからの構文データを使用してフレームの分割を割り出す。この分割は、ステップ１０３でのブロック分割の結果と一致するはずである。ステップ１１１で使用されるエントロピー符号化／復号をここで説明する。エンコーダは、圧縮プロセス中に、例えば（１つ以上の）入力画像内の値の空間位置に基づいて幾つかの可能な選択からブロック分割スキームを選択するなど、数多くの選択を行う。厳密な選択を信号伝達することは、多数のビンを使用し得る。ここで使用されるとき、ビンは、変数（例えば、コンテキストに応じて変わり得るビット値）として扱われるバイナリ値である。エントロピー符号化は、エンコーダが特定のケースに対して明らかに実行可能でないオプションを廃棄して一組の可能なオプションを残すことを可能にする。そして、各可能なオプションにコードワードが割り当てられる。コードワードの長さは、可能なオプションの数に基づく（例えば、２つのオプションに対して１つのビン、３つから４つのオプションに対して２つのビン、等々）。次いで、エンコーダは、選択したオプションに対してコードワードを符号化する。このスキームはコードワードのサイズを小さくする。何故なら、コードワードは、大きいものであり得る可能な全てのオプションの集合からの選択を一意に示すのではなく、可能なオプションの小さい部分集合からの選択を一意に示すのに望まれるだけの大きさであるからである。そして、デコーダが、エンコーダと同様のやり方で、可能なオプションの集合を決定することによって選択を復号する。可能なオプションの集合を決定することにより、デコーダは、コードワードを読み取って、エンコーダによって為された選択を割り出すことができる。
【００４７】
ステップ１１３にて、デコーダはブロック復号を実行する。具体的には、デコーダは逆変換を使用して残差ブロックを生成するために。次いで、デコーダは、残差ブロック及び対応する予測ブロックを使用し、分割に従って画像ブロックを再構成する。予測ブロックは、ステップ１０５にてエンコーダで生成されたイントラ予測ブロック及びインター予測ブロックの双方を含み得る。そして、再構成された画像ブロックが、ステップ１１１で割り出された分割データに従って、再構成された映像信号のフレームの中に位置付けられる。ステップ１１３のための構文も、上述のようなエントロピー符号化を介してビットストリーム内で信号伝達され得る。
【００４８】
ステップ１１５にて、再構成された映像信号のフレームに対して、エンコーダにおけるステップ１０７と同様のやり方でフィルタリングが実行される。例えば、ブロッキングアーチファクトを除去するために、ノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ、及びＳＡＯフィルタがフレームに適用され得る。フレームがフィルタリングされると、ステップ１１７にて、エンドユーザによる視聴のために映像信号をディスプレイに出力することができる。
【００４９】
図２は、映像符号化のための符号化・復号（コーデック）システム２００の一例の概略図である。具体的には、コーデックシステム２００は、動作方法１００の実行をサポートするための機能を提供する。コーデックシステム２００は、エンコーダ及びデコーダの双方で使用されるコンポーネントを示すように一般化されている。コーデックシステム２００は、動作方法１００のステップ１０１及び１０３に関して説明したように、映像信号を受信して分割し、それが、分割された映像信号２０１をもたらす。次いで、コーデックシステム２００は、エンコーダとして作用するとき、方法１００のステップ１０５、１０７、及び１０９に関して説明したように、分割された映像信号２０１を符号化されたビットストリームへと圧縮する。デコーダとして作用するとき、コーデックシステム２００は、動作方法１００のステップ１１１、１１３、１１５、及び１１７に関して説明したように、ビットストリームから出力映像信号を生成する。コーデックシステム２００は、全般コーダ制御コンポーネント２１１、変換スケーリング・量子化コンポーネント２１３、イントラピクチャ推定コンポーネント２１５、イントラピクチャ予測コンポーネント２１７、動き補償コンポーネント２１９、動き推定コンポーネント２２１、スケーリング・逆変換コンポーネント２２９、フィルタ制御分析コンポーネント２２７、インループフィルタコンポーネント２２５、復号ピクチャバッファコンポーネント２２３、及びヘッダフォーマット・コンテキスト適応バイナリ算術符号化（context  adaptive  binary  arithmetic  coding；ＣＡＢＡＣ）コンポーネント２３１を含む。このようなコンポーネントが、図示のように結合される。図２において、黒線は、符号化／復号されるデータの移動を示し、破線は、他のコンポーネントの動作を制御する制御データの移動を示している。エンコーダ内には、コーデックシステム２００のこれらコンポーネントが全て存在し得る。デコーダは、コーデックシステム２００のこれらコンポーネントのうちのサブセットを含み得る。例えば、デコーダは、イントラピクチャ予測コンポーネント２１７、動き補償コンポーネント２１９、スケーリング・逆変換コンポーネント２２９、インループフィルタコンポーネント２２５、及び復号ピクチャバッファコンポーネント２２３を含み得る。これらのコンポーネントをここで説明する。
【００５０】
分割された映像信号２０１は、キャプチャされたビデオシーケンスが符号化ツリーによってピクセルのブロックへと分割されたものである。符号化ツリーは、様々な分割モードを使用して、ピクセルのブロックを、より小さいピクセルのブロックへと細分する。すると、これらのブロックは、より小さいブロックへと更に細分されることができる。ブロックは、符号化ツリー上のノードとして参照され得る。より大きい親ノードが、より小さい子ノードへと分割される。ノードが細分される回数は、ノード／符号化ツリーの深さとして参照される。分割されたブロックは、一部のケースにおいて符号化ユニット（ＣＵ）に含められることができる。例えば、ＣＵは、ルマブロック、（１つ以上の）赤色差クロマ（Ｃｒ）ブロック、及び（１つ以上の）青色差クロマ（Ｃｂ）ブロックを、該ＣＵに関する対応する構文命令とともに含むＣＴＵの一部とすることができる。分割モードは、ノードを、使用される分割モードに応じて異なる形状の、それぞれ２つ、３つ、又は４つの子ノードへと分割するために使用される二分木（ＢＴ）、三分木（ＴＴ）、及び四分木（ＱＴ）を含み得る。分割された映像信号２０１は、圧縮のために、全般コーダ制御コンポーネント２１１、変換スケーリング・量子化コンポーネント２１３、イントラピクチャ推定コンポーネント２１５、フィルタ制御分析コンポーネント２２７、及び動き推定コンポーネント２２１に転送される。
【００５１】
全般コーダ制御コンポーネント２１１は、アプリケーション制約に従って、ビデオシーケンスの画像のビットストリームへの符号化に関連する決定を行うように構成される。例えば、全般コーダ制御コンポーネント２１１は、再構成品質に対するビットレート／ビットストリームサイズの最適化を管理する。そのような決定は、ストレージ空間／帯域幅の可用性及び画像解像度要求に基づいて行われ得る。全般コーダ制御コンポーネント２１１はまた、バッファのアンダーラン及びオーバーランの問題を緩和するために、伝送速度に照らしてバッファ利用を管理する。これらの問題を管理するために、全般コーダ制御コンポーネント２１１は、他のコンポーネントによる分割、予測、及びフィルタリングを管理する。例えば、全般コーダ制御コンポーネント２１１は動的に、解像度を高め且つ帯域幅使用を増やすために圧縮の複雑さを増加させ、あるいは、解像度及び帯域幅使用を下げるために圧縮の複雑さを減少させ得る。従って、全般コーダ制御コンポーネント２１１は、映像信号再構成品質をビットレートの懸念とバランスさせるよう、コーデックシステム２００の他のコンポーネントを制御する。全般コーダ制御コンポーネント２１１は、他のコンポーネントの動作を制御する制御データを作成する。制御データはまた、デコーダでの復号用のパラメータを信号伝達するためにビットストリーム内に符号化されるよう、ヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１に転送される。
【００５２】
分割された映像信号２０１はまた、インター予測のために、動き推定コンポーネント２２１及び動き補償コンポーネント２１９に送られる。分割された映像信号２０１のフレーム又はスライスが、複数の映像ブロックへと分割され得る。動き推定コンポーネント２２１及び動き補償コンポーネント２１９は、時間予測を提供するために、１つ以上の参照フレーム内の１つ以上のブロックに対する受信映像ブロックのインター予測符号化を実行する。コーデックシステム２００は、例えば映像データのブロックごとに適切な符号化モードを選択するために、複数の符号化パスを実行し得る。
【００５３】
動き推定コンポーネント２２１及び動き補償コンポーネント２１９は、高度に集積され得るが、概念上の目的で別々に図示されている。動き推定コンポーネント２２１によって実行される動き推定は、映像ブロックに関する動きを推定するものである動きベクトルを生成するプロセスである。動きベクトルは、例えば、符号化されるオブジェクトの予測ブロックに対する変位を指し示し得る。予測ブロックは、ピクセル差に関して、符号化されるブロックによく一致することが見出されたブロックである。予測ブロックは、参照ブロックとしても参照され得る。そのようなピクセル差は、絶対差の和（ＳＡＤ）、二乗差の和（ＳＳＤ）、又は他の差分メトリックによって決定され得る。ＨＥＶＣは、ＣＴＵ、符号化ツリーブロック（ＣＴＢ）、及びＣＵを含む幾つかの符号化オブジェクトを使用する。例えば、ＣＴＵはＣＴＢへと分割されることができ、ＣＴＢは、次いで、ＣＵに含めるためにＣＢへと分割されることができる。ＣＵは、予測データを含む予測ユニット（ＰＵ）及び／又はＣＵに関する変換された残差データを含む変換ユニット（ＴＵ）として符号化されることができる。動き推定コンポーネント２２１は、レート歪み最適化プロセスの一部としてレート歪み解析を用いることによって、動きベクトル、ＰＵ、及びＴＵを生成する。例えば、動き推定コンポーネント２２１は、現在ブロック／フレームに対する複数の参照ブロック、複数の動きベクトルなどを決定することができ、また、最良のレート歪み特性を持つ参照ブロック、動きベクトルなどを選択することができる。最良のレート歪み特性は、ビデオ再構成の品質（例えば、圧縮によるデータ損失の量）と符号化効率（例えば、最終的な符号化のサイズ）の双方をバランスさせる。
【００５４】
一部の例において、コーデックシステム２００は、復号ピクチャバッファコンポーネント２２３に格納された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。例えば、映像コーデックシステム２００は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、又は他の分数ピクセル位置の値を補間し得る。従って、動き推定コンポーネント２２１は、フルピクセル位置及び分数ピクセル位置に対する動き探索を実行し、分数ピクセル精度を有する動きベクトルを出力し得る。動き推定コンポーネント２２１は、インター符号化されたスライス内の映像ブロックのＰＵに関する動きベクトルを、該ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって計算する。動き推定コンポーネント２２１は、計算した動きベクトルを、動きデータとして符号化のためにヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１に出力するとともに、動きとして動き補償コンポーネント２１９に出力する。
【００５５】
動き補償コンポーネント２１９によって実行される動き補償は、動き推定コンポーネント２２１によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを含み得る。繰り返しとなるが、一部の例において、動き推定コンポーネント２２１及び動き補償コンポーネント２１９は機能的に集積され得る。現在映像ブロックのＰＵに関する動きベクトルを受信して、動き補償コンポーネント２１９は、動きベクトルが指す予測ブロックを位置特定し得る。次いで、符号化している現在映像ブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差映像ブロックが形成されて、ピクセル差の値を形成する。一般に、動き推定コンポーネント２２１はルマ成分に対して動き推定を実行し、動き補償コンポーネント２１９は、ルマ成分に基づいて計算された動きベクトルをクロマ成分及びルマ成分の双方に使用する。予測ブロック及び残差ブロックは、変換スケーリング・量子化コンポーネント２１３に転送される。
【００５６】
分割された映像信号２０１はまた、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７に送られる。動き推定コンポーネント２２１及び動き補償コンポーネント２１９と同様に、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、高度に集積され得るが、概念上の目的で別々に図示されている。イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、上述のように、フレーム間で動き推定コンポーネント２２１及び動き補償コンポーネント２１９によって実行されるインター予測の代わりとして、現在ブロックを現在フレーム内のブロックに対してイントラ予測する。特に、イントラピクチャ推定コンポーネント２１５は、現在ブロックを符号化するのに使用するイントラ予測モードを決定する。一部の例において、イントラピクチャ推定コンポーネント２１５は、複数のテストされたイントラ予測モードから、現在ブロックを符号化するのに適切なイントラ予測モードを選択する。そして、選択されたイントラ予測モードが、符号化のためにヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１に転送される。
【００５７】
例えば、イントラピクチャ推定コンポーネント２１５は、様々なテストされたイントラ予測モードについてレート歪み解析を用いてレート歪み値を計算し、それらテストされたモードの中で最良のレート歪み特性を持つイントラ予測モードを選択する。レート歪み解析は、一般に、符号化ブロックと、符号化されて該符号化ブロックを生成した元の符号化されていないブロックとの間の歪み（又は誤差）の量と、該符号化ブロックを生成するのに使用されたビットレート（例えば、ビット数）とを決定する。イントラピクチャ推定コンポーネント２１５は、様々な符号化ブロックについての歪み及びレートから比を計算し、そのブロックに対してどのイントラ予測モードが最良のレート歪み値を示すのかを決定する。加えて、イントラピクチャ推定コンポーネント２１５は、レート歪み最適化（rate-distortion  optimization；ＲＤＯ）に基づく深さモデリングモード（depth  modeling  mode；ＤＭＭ）を使用して深さマップの深さブロックを符号化するように構成され得る。
【００５８】
イントラピクチャ予測コンポーネント２１７は、エンコーダ上に実装されるとき、イントラピクチャ推定コンポーネント２１５によって決定された選択イントラ予測モードに基づいて、予測ブロックから残差ブロックを生成することができ、あるいは、デコーダ上に実装されるとき、ビットストリームから残差ブロックを読み取ることができる。残差ブロックは、行列として表された、予測ブロックと元のブロックとの間の値の差を含む。そして、残差ブロックは、変換スケーリング・量子化コンポーネント２１３に転送される。イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、ルマ成分及びクロマ成分の双方に対して動作し得る。
【００５９】
変換スケーリング・量子化コンポーネント２１３は、残差ブロックを更に圧縮するように構成される。変換スケーリング・量子化コンポーネント２１３は、例えば離散コサイン変換（ＤＣＴ）、離散サイン変換（ＤＳＴ）、又は概念的に類似した変換などの変換を、残差ブロックに適用して、残留変換係数値を有する映像ブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換も使用され得る。当該変換は、残差情報を、ピクセル値ドメインから例えば周波数ドメインなどの変換ドメインに変換し得る。変換スケーリング・量子化コンポーネント２１３はまた、変換された残差情報を、例えば周波数に基づいて、スケーリングするように構成される。このようなスケーリングは、異なる周波数の情報が異なる粒度で量子化されるように残差情報にスケーリング係数を適用することを含み、これは、再構成される映像の最終的な視覚品質に影響を及ぼし得る。変換スケーリング・量子化コンポーネント２１３はまた、ビットレートを更に下げるために変換係数を量子化するように構成される。この量子化プロセスは、係数のうちの一部又は全てに関連するビット深さを低減させ得る。量子化の程度は、量子化パラメータを調節することによって変更され得る。一部の例において、変換スケーリング・量子化コンポーネント２１３は、次いで、量子化された変換係数を含む行列のスキャンを実行し得る。量子化された変換係数は、ビットストリーム内に符号化されるよう、ヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１に転送される。
【００６０】
スケーリング・逆変換コンポーネント２２９は、動き推定を支援するために変換スケーリング・量子化コンポーネント２１３の逆演算を適用する。スケーリング・逆変換コンポーネント２２９は、例えば別の現在ブロックに対する予測ブロックとなり得る参照ブロックとしての後の使用のために、ピクセルドメインの残差ブロックを再構成すべく、逆のスケーリング、変換、及び／又は量子化を適用する。動き推定コンポーネント２２１及び／又は動き補償コンポーネント２１９が、後のブロック／フレームの動き推定における使用のために、残差ブロックを対応する予測ブロックに足し戻すことによって参照ブロックを計算し得る。スケーリング、量子化、及び変換の間に生み出されるアーチファクトを軽減するために、再構成された参照ブロックにフィルタが適用される。そのようなアーチファクトは、さもなければ、後続ブロックが予測されるときに不正確な予測を生じさせる（及び更なるアーチファクトを生み出す）ことになり得る。
【００６１】
フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５は、残差ブロックに及び／又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング・逆変換コンポーネント２２９からの変換された残差ブロックが、イントラピクチャ予測コンポーネント２１７及び／又は動き補償コンポーネント２１９からの対応する予測ブロックと組み合わされて、元の画像ブロックを再構成し得る。そして、再構成された画像ブロックにフィルタが適用され得る。一部の例において、フィルタは、代わりに残差ブロックに適用されてもよい。図２の他のコンポーネントと同様に、フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５は、高度に集積され、一緒に実装され得るが、概念上の目的で別々に図示されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタがどのように適用されるのかを調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント２２７は、再構成された参照ブロックを分析して、そのようなフィルタを適用すべき場所を決定し、対応するパラメータを設定する。このようなデータは、符号化のためのフィルタ制御データとしてヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１に転送される。インループフィルタコンポーネント２２５は、フィルタ制御データに基づいてそのようなフィルタを適用する。該フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、ＳＡＯフィルタ、及び適応ループフィルタを含み得る。このようなフィルタは、例に応じて、空間／ピクセルドメイン（例えば、再構成されたピクセルブロック）にて又は周波数ドメインにて適用され得る。
【００６２】
エンコーダとして動作するとき、フィルタリングされた再構成画像ブロック、残差ブロック、及び／又は予測ブロックは、上述のような動き推定での後の使用のために、復号ピクチャバッファコンポーネント２２３に格納される。デコーダとして動作するとき、復号ピクチャバッファコンポーネント２２３は、再構成されフィルタリングされたブロックを、出力映像信号の一部として格納しディスプレイに向けて転送する。復号ピクチャバッファコンポーネント２２３は、予測ブロック、残差ブロック、及び／又は再構成画像ブロックを格納することができる任意のメモリデバイスとし得る。
【００６３】
ヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１は、コーデックシステム２００の様々なコンポーネントからデータを受信し、それらのデータを、デコーダに向けた伝送のために符号化ビットストリームへと符号化する。具体的には、ヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１は、例えば全般制御データ及びフィルタ制御データなどの制御データを符号化する様々なヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データ並びに量子化変換係数データの形態の残差データが全て、ビットストリーム内に符号化される。最終的なビットストリームは、元の分割された映像信号２０１を再構成するためにデコーダによって望まれる全ての情報を含む。そのような情報はまた、イントラ予測モードインデックステーブル（コードワードマッピングテーブルとしても参照される）、様々なブロックに関する符号化コンテキストの定義、最も可能性の高いイントラ予測モードを指し示すインジケーション、分割情報を指し示すインジケーションなども含み得る。このようなデータは、エントロピー符号化を使用することによって符号化され得る。例えば、コンテキスト適応可変長符号化（context  adaptive  variable  length  coding；ＣＡＶＬＣ）、ＣＡＢＡＣ、構文ベースのコンテキスト適応バイナリ算術符号化（syntax-based  context-adaptive  binary  arithmetic  coding；ＳＢＡＣ）、確率間隔分割エントロピー（probability  interval  partitioning  entropy；ＰＩＰＥ）符号化、又は他のエントロピー符号化技術を使用することによって、情報を符号化し得る。エントロピー符号化の後、符号化されたビットストリームは、別の装置（例えば、ビデオデコーダ）に送信されてもよいし、あるいは、後の伝送又は検索のためにアーカイブされてもよい。
【００６４】
図３は、ビデオエンコーダ３００の一例を示すブロック図である。ビデオエンコーダ３００は、コーデックシステム２００の符号化機能を実装するため、及び／又は動作方法１００のステップ１０１、１０３、１０５、１０７、及び／又は１０９を実行するために使用され得る。エンコーダ３００は、入力映像信号を分割し、その結果、分割された映像信号２０１と実質的に同様のものである分割された映像信号３０１が得られる。次いで、分割された映像信号３０１が、エンコーダ３００のコンポーネントによって圧縮され、ビットストリームへと符号化される。
【００６５】
具体的には、分割された映像信号３０１は、イントラ予測のためにイントラピクチャ予測コンポーネント３１７に転送される。イントラピクチャ予測コンポーネント３１７は、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７と実質的に同様とし得る。分割された映像信号３０１はまた、復号ピクチャバッファコンポーネント３２３内の参照ブロックに基づくインター予測のために、動き補償コンポーネント３２１に転送される。動き補償コンポーネント３２１は、動き推定コンポーネント２２１及び動き補償コンポーネント２１９と実質的に同様とし得る。イントラピクチャ予測コンポーネント３１７及び動き補償コンポーネント３２１からの予測ブロック及び残差ブロックが、残差ブロックの変換及び量子化のために変換・量子化コンポーネント３１３に転送される。変換・量子化コンポーネント３１３は、変換スケーリング・量子化コンポーネント２１３と実質的に同様とし得る。変換され量子化された残差ブロック及び対応する予測ブロックが（関連する制御データとともに）、ビットストリームへの符号化のためにエントロピー符号化コンポーネント３３１に転送される。エントロピー符号化コンポーネント３３１は、ヘッダフォーマット・ＣＡＢＡＣコンポーネント２３１と実質的に同様とし得る。
【００６６】
変換され量子化された残差ブロック及び／又は対応する予測ブロックはまた、動き補償コンポーネント３２１による使用のための参照ブロックへの再構成のために、変換・量子化コンポーネント３１３から逆変換・量子化コンポーネント３２９に転送される。逆変換・量子化コンポーネント３２９は、スケーリング・逆変換コンポーネント２２９と実質的に同様とし得る。残差ブロック及び／又は再構成された参照ブロックに対して、例に応じて、インループフィルタコンポーネント３２５内のインループフィルタも適用される。インループフィルタコンポーネント３２５は、フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５と実質的に同様とし得る。インループフィルタコンポーネント３２５は、インループフィルタコンポーネント２２５に関して説明したような複数のフィルタを含み得る。そして、フィルタリングされたブロックが、動き補償コンポーネント３２１による参照ブロックとしての使用のために、復号ピクチャバッファコンポーネント３２３に格納される。復号ピクチャバッファコンポーネント３２３は、復号ピクチャバッファコンポーネント２２３と実質的に同様とし得る。
【００６７】
図４は、ビデオデコーダ４００の一例を示すブロック図である。ビデオデコーダ４００は、コーデックシステム２００の復号機能を実装するため、及び／又は動作方法１００のステップ１１１、１１３、１１５、及び／又は１１７を実行するために使用され得る。デコーダ４００は、例えばエンコーダ３００から、ビットストリームを受信し、エンドユーザへの表示のために、ビットストリームに基づく再構成された出力映像信号を生成する。
【００６８】
ビットストリームはエントロピー復号コンポーネント４３３によって受信される。エントロピー復号コンポーネント４３３は、例えばＣＡＶＬＣ、ＣＡＢＡＣ、ＳＢＡＣ、ＰＩＰＥ符号化、又は他のエントロピー符号化技術などの、エントロピー復号スキームを実装するように構成される。例えば、エントロピー復号コンポーネント４３３は、ヘッダ情報を使用して、ビットストリーム内にコードワードとして符号化された付加データを解釈するためのコンテキストを提供し得る。復号される情報は、例えば全般制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ、及び残差ブロックからの量子化変換係数などの、映像信号を復号するために望まれる如何なる情報をも含む。量子化変換係数は、残差ブロックへの再構成のために、逆変換・量子化コンポーネント４２９に転送される。逆変換・量子化コンポーネント４２９は、逆変換・量子化コンポーネント３２９と同様とし得る。
【００６９】
再構成された残差ブロック及び／又は予測ブロックが、イントラ予測動作に基づく画像ブロックへの再構成のために、イントラピクチャ予測コンポーネント４１７に転送される。イントラピクチャ予測コンポーネント４１７は、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７と同様とし得る。具体的には、イントラピクチャ予測コンポーネント４１７は、予測モードを使用してフレーム内で参照ブロックを位置特定し、その結果に残差ブロックを適用して、イントラ予測画像ブロックを再構成する。再構成されたイントラ予測画像ブロック及び／又は残差ブロック及び対応するインター予測データが、インループフィルタコンポーネント４２５を介して復号ピクチャバッファコンポーネント４２３に転送される。復号ピクチャバッファコンポーネント４２３及びインループフィルタコンポーネント４２５は、それぞれ、復号ピクチャバッファコンポーネント２２３及びインループフィルタコンポーネント２２５と実質的に同様とし得る。インループフィルタコンポーネント４２５は、再構成された画像ブロック、残差ブロック及び／又は予測ブロックをフィルタリングし、そのような情報が復号ピクチャバッファコンポーネント４２３に格納される。復号ピクチャバッファコンポーネント４２３からの再構成された画像ブロックが、インター予測のために動き補償コンポーネント４２１に転送される。動き補償コンポーネント４２１は、動き推定コンポーネント２２１及び／又は動き補償コンポーネント２１９と実質的に同様とし得る。具体的には、動き補償コンポーネント４２１は、参照ブロックからの動きベクトルを用いて予測ブロックを生成し、その結果に残差ブロックを適用して画像ブロックを再構成する。得られた再構成ブロックも、インループフィルタコンポーネント４２５を介して復号ピクチャバッファコンポーネント４２３に転送され得る。復号ピクチャバッファコンポーネント４２３は、更なる再構成画像ブロックを格納し続け、それらを、分割情報を介して、フレームへと再構成することができる。そのようなフレームがまた、シーケンスに配置され得る。このシーケンスが、再構成された出力映像信号としてディスプレイに向けて出力される。
【００７０】
図５は、符号化ビデオシーケンスを含むビットストリーム５００の一例を示す概略図である。例えば、ビットストリーム５００は、コーデックシステム２００及び／又はデコーダ４００による復号のために、コーデックシステム２００及び／又はエンコーダ３００によって生成されることができる。他の一例として、ビットストリーム５００は、方法１００のステップ１０９にて、ステップ１１１におけるデコーダによる使用のために、エンコーダによって生成されてもよい。
【００７１】
ビットストリーム５００は、シーケンスパラメータセット（sequence  parameter  set；ＳＰＳ）５１０、複数のピクチャパラメータセット（picture  parameter  set；ＰＰＳ）５１２、複数のスライスヘッダ５１４、及び画像データ５２０を含む。ＳＰＳ５１０は、ビットストリーム５００に含まれるビデオシーケンス内の全てのピクチャに共通のシーケンスデータを含む。そのようなデータは、ピクチャサイズ、ビット深度、符号化ツールパラメータ、ビット速度制限などを含むことができる。ＰＰＳ５１２は、各ピクチャに特有のパラメータを含む。従って、ビデオシーケンス内にピクチャ当たり１つのＰＰＳ５１２が存在し得る。ＰＰＳ５１２は、対応するピクチャ内のスライスに利用可能な符号化ツール、量子化パラメータ、オフセット、ピクチャ特有の符号化ツールパラメータ（例えば、フィルタ制御）などを示すことができる。スライスヘッダ５１４は、ピクチャ内の各スライスに特有のパラメータを含む。従って、ビデオシーケンス内にスライス当たり１つのスライスヘッダ５１４が存在し得る。スライスヘッダ５１４は、スライスタイプ情報、ピクチャ順序カウント（picture  order  count；ＰＯＣ）、参照ピクチャリスト、予測重み、タイルエントリーポイント、デブロッキングパラメータなどを含み得る。
【００７２】
画像データ５２０は、インター予測及び／又はイントラ予測に従って符号化された映像データと、対応する変換及び量子化された残差データを含む。このような画像データ５２０は、符号化に先立って画像を分割するために使用された分割に従ってソートされる。例えば、画像データ５２０内の画像はスライス５２１へと分割される。各スライス５２１が更にタイル５２３へと分割される。タイル５２３は更にＣＴＵ５２７へと分割される。ＣＴＵ５２７は更に、符号化ツリーに基づいて符号化ブロックへと分割される。そして、符号化ブロックを、予測機構に従って符号化／復号することができる。画像／ピクチャは、１つ以上のスライス５２１を含むことができる。スライス５２１当たり１つのスライスヘッダ５１４が使用される。各スライス５２１は１つ以上のタイル５２３を含むことができ、そして、タイル５２３は複数のＣＴＵ５２７を含むことができる。
【００７３】
各スライス５２１は、左上隅のタイル５２３と、右下隅のタイル５２３とによって規定される長方形とし得る。他の符号化システムにおいてとは異なり、スライス５２１は、ピクチャの幅全体を横断しなくてもよい。スライス５２１は、デコーダによって別々に表示されることができる最小単位である。従って、スライス５２１をより小さいユニットへと分割することは、ピクチャの所望領域を表示するのに十分な粒度であるようにしてサブピクチャを生成することを可能にする。例えば、仮想現実（ＶＲ）コンテキストにおいて、ピクチャは全可視球のデータを含み得るが、ユーザはヘッドマウントディスプレイ上でサブピクチャのみを見ることがある。より小さいスライス５２１は、そのようなサブピクチャを別々に信号伝達することを可能にする。スライス５２１はまた、一般に、別個のＶＣＬ  ＮＡＬユニット５３３にて信号伝達される。また、スライス５２１は、他のスライス５２１に基づく予測を可能にしなくてもよく、これは、各スライス５２１を他のスライス５２１とは独立に符号化することを可能にする。
【００７４】
スライス５２１は、整数個のタイル５２３へと分割される。タイル５２３は、水平境界及び垂直境界によって作り出されるスライス５２１の分割部分である。タイル５２３は、ラスタースキャン順に符号化されることができ、また、例に応じて、他のタイル５２３に基づく予測を可能にしてもよいし可能にしなくてもよい。各タイル５２３は、ピクチャ内で一意のタイルＩＤ５２４を有し得る。タイルＩＤ５２４は、１つのタイル５２３を別のタイルから区別するために使用されることができる数値識別子である。タイルＩＤ５２４は、ラスタースキャン順に数値的に増加するタイルインデックスの値をとり得る。ラスタースキャン順は左から右、及び上から下である。タイルＩＤ５２４はまた、他の数値を使用してもよい。しかしながら、タイルＩＤ５２４は、ここで説明される計算をサポートするために、常にラスタースキャン順に増加すべきである。例えば、スライス５２１の境界は、スライス５２１の左上隅のタイル５２３のタイルＩＤ５２４と、スライス５２１の右下隅のタイル５２３のタイルＩＤ５２４とに従って決定されることができる。タイルＩＤ５２４がタイルインデックスとは異なる値である場合、変換機構を、例えばＰＰＳ５１２内など、ビットストリーム５００内で信号伝達することができる。さらに、各タイル５２３が、エントリーポイントオフセット５２５と関連付けられ得る。エントリーポイントオフセット５２５は、タイル５２３に関連する符号化データの最初のビットの位置を指し示す。最初のタイル５２３は、ゼロのエントリーポイントオフセット５２５を持つことができ、更なるタイル５２３は各々、先行するタイル５２３内の符号化データのビット数に等しいエントリーポイントオフセット５２５を持つことができる。それ故に、エントリーポイントオフセット５２５の数は、タイル５２３の数より１だけ少ないと推定されることができる。
【００７５】
タイル５２３は更にＣＴＵ５２７へと分割される。ＣＴＵ５２７は、符号化ツリー構造によって更に符号化ブロックへと細分されることが可能なタイル５２３の一部であり、符号化ブロックは、エンコーダによって符号化されることができ、また、デコーダによって復号されることができる。ＣＴＵ５２７は各々、ＣＴＵアドレス５２９と関連付けられる。ＣＴＵアドレス５２９は、ビットストリーム５００内の対応するＣＴＵ５２７の位置を表す。具体的には、ＣＴＵアドレス５２９は、ＶＣＬ  ＮＡＬユニット５３３内の対応するＣＴＵ５２７の位置を表し得る。一部の例において、ＣＴＵ５２７のＣＴＵアドレス５２９は、例えばＰＰＳ５１２内で、明示的に信号伝達され得る。他の例において、ＣＴＵアドレス５２９は、デコーダによって導出されることができる。例えば、ＣＴＵアドレス５２９は、対応するＣＴＵ５２７を含むタイル５２３のタイルＩＤ５２４に基づいて割り当てられることができる。そのような場合、デコーダは、左上及び右下のタイル５２３のタイルＩＤ５２４に基づいてスライス５２１内のタイル５２３を決定することができる。そして、デコーダは、スライス５２１内の決定されたタイル５２３を使用して、スライス５２１内のＣＴＵ５２７の数を割り出すことができる。さらに、デコーダは、既知のタイルＩＤ５２４及びＣＴＵ５２７の数を用いてＣＴＵアドレス５２９を決定することができる。加えて、デコーダがＣＴＵ５２７の数を知っているので、各ＣＴＵ５２７がＶＣＬ  ＮＡＬユニット５３３内の最後のＣＴＵ５２７であるかを指し示すフラグを省略することができる。これは何故なら、スライス５２１内のＣＴＵ５２７の数はＶＣＬ  ＮＡＬユニット５３３に含まれるものであり、デコーダは、その数を知ることによって、どのＣＴＵ５２７がＶＣＬ  ＮＡＬユニット５３３内の最後のＣＴＵ５２７であるかを割り出すことができるからである。しかしながら、一部の例では、タイル５２３間の区別を支援するために、タイル５２３内の最後のＣＴＵ５２７の後にパディングビットが置かれ得る。理解され得るように、タイルＩＤ５２４に基づいてスライス５２１の境界を信号伝達することは、デコーダが有意量のデータを推定することを可能にすることができ、そして、符号化効率を高めるために、それらのデータをビットストリーム５００から省略することができる。
【００７６】
ビットストリーム５００は、ＶＣＬ  ＮＡＬユニット５３３及び非ＶＣＬ  ＮＡＬユニット５３１の中に位置付けられる。ＮＡＬユニットは、ネットワーク上での伝送用の単一のパケットのペイロードとして配置されるサイズにされた符号化データユニットである。ＶＣＬ  ＮＡＬユニット５３３は、符号化された映像データを含むＮＡＬユニットである。例えば、各ＶＣＬ  ＮＡＬユニット５３３は、対応するタイル５２３、ＣＴＵ５２７、及び符号化ブロックを含んだ、１つのスライス５２１のデータを含み得る。非ＶＣＬ  ＮＡＬユニット５３１は、サポートする構文を含むが、符号化された映像データを含まないＮＡＬユニットである。例えば、非ＶＣＬ  ＮＡＬユニット５３１は、ＳＰＳ５１０、ＰＰＳ５１２、スライスヘッダ５１４などを含み得る。従って、デコーダは、ビットストリーム５００を、離散的なＶＣＬ  ＮＡＬユニット５３３及び非ＶＣＬ  ＮＡＬユニット５３１にて受信する。ストリーミングアプリケーションにおいて、デコーダは、ビットストリーム５００全体を受信するのを待つことなく現在の映像データを復号し得る。それ故に、タイルＩＤ５２４、エントリーポイントオフセット５２５、及びＣＴＵアドレス５２９は、高速な復号、並列処理、及び他の映像表示機構のために、デコーダがＶＣＬ  ＮＡＬユニット５３３内の映像データを正確に位置特定することを可能にする。従って、タイルＩＤ５２４、エントリーポイントオフセット５２５、及び／又はＣＴＵアドレス５２９を計算することは、ビットストリーム５００のサイズを小さくし及び故に符号化効率を高めながら、効率的な復号及び表示機構の実装を可能にする。
【００７７】
図６は、符号化のために分割された画像６００の一例を示す概略図である。例えば、画像６００は、例えば、コーデックシステム２００、エンコーダ３００、及び／又はデコーダ４００によって、ビットストリーム５００内に符号化され、そして、ビットストリーム５００から復号されることができる。さらに、画像６００は、方法１００に従った符号化及び復号をサポートするように分割されることができる。
【００７８】
画像６００は、スライス５２１、タイル５２３、及びＣＴＵ５２７とそれぞれ実質的に同様とし得るものであるスライス６２１、タイル６２３、及びＣＴＵ６２７へと分割されることができる。図６では、スライス６２１は太線で描かれており、スライス６２１同士を図形的に区別するために白い背景及び網掛けを交互に付している。タイル６２３は破線で描かれている。スライス６２１の境界上に位置するタイル６２３の境界は、破線の太線として描かれ、スライス６２１の境界上に位置しないタイル６２３の境界は、太くない破線として描かれている。ＣＴＵ６２７の境界は、ＣＴＵ６２７の境界がタイル６２３又はスライス６２１の境界によってカバーされる所を除いて、太くない実線で描かれている。この例では、画像６００は、９個のスライス６２１、２４個のタイル６２３、及び２１６個のＣＴＵ６２７を含んでいる。
【００７９】
図示のように、スライス６２１は、含まれるタイル６２３によって規定され得る境界を持つ長方形である。スライス６２１は、画像６００の幅全体にわたって延在しなくてもよい。タイル６２３は、行及び列に従ってスライス６２１内に生成されることができる。そして、インター予測及び／又はイントラ予測に従った符号化のための符号化ブロックに細分されるのに適した画像６００の分割を作り出すよう、タイル６２３からＣＴＵ６２７を分割することができる。
【００８０】
これを用いることにより、映像符号化システムを改良することができる。例えば、スライスは、スライスに含まれるＣＴＵが単純にピクチャのＣＴＵラスタースキャン順に従った一組のピクチャのＣＴＵではないとし得る、ように設計される。むしろ、スライスは、ピクチャのある矩形領域をカバーする一組のＣＴＵとして規定される。また、各スライスは、それ自身のＮＡＬユニット内にある。また、スライス内のラスタースキャン順の左上及び右下のＣＴＵのＣＴＵアドレスをスライスヘッダ内で信号伝達することによって、スライスに含まれるＣＴＵのアドレスを信号伝達することができる。さらに、スライスは、ピクチャのある矩形領域をカバーする一組の完全なタイルを含み且つそれらのみを含むように設計される。各スライスは、それ自身のＮＡＬユニット内にある。このように、２つ以上のスライスを持つことの目的は、ピクチャの矩形領域をカバーする一組のタイルをＮＡＬユニットに入れることであるとし得る。一部のケースにおいて、１つのピクチャ内に２つ以上のスライスが存在し、それらのスライスの各々が、矩形領域をカバーする一組の完全なタイルを含むことができる。また、ピクチャのタイルのうちの残りのものをカバーする１つの他のスライスもピクチャ内に存在し得る。このスライスによってカバーされる領域は、他のスライスによってカバーされる穴を有する矩形領域であり得る。例えば、関心領域の目的で、ピクチャは、一方のスライスが関心領域をカバーする一組の完全なタイルを含み、そして、他方のスライスがピクチャの残りのタイルを含む、２つのスライスを含み得る。
【００８１】
スライスに含まれるＣＴＵのアドレスは、そのスライスに含まれるタイルのタイルＩＤによって明示的又は暗示的に信号伝達され得る。効率的な信号伝達のために、一部の例では、左上及び右下のタイルのタイルＩＤのみが信号伝達され得る。更に向上されたシグナリング効率のために、スライスが単一のタイルを含んでいるかを指し示すフラグを信号伝達することができ、そうである場合、１つのタイルＩＤのみが信号伝達され得る。他のケースでは、スライスに含まれる全てのタイルＩＤが信号伝達される。一部の例において、タイルＩＤ値は、ピクチャ内のタイルインデックスと同じであるように割り当てられる。スライスに含まれるＣＴＵのアドレスの導出のために、スライスヘッダ内でタイルＩＤを明示的に信号伝達するためのビット単位での長さは、ピクチャ内のタイルの数に従って導出されることができる（例えば、ピクチャ内のタイルの数の、２を底とする対数をとったもの）。ピクチャ内のタイルの数は、パラメータセット内で明示的に信号伝達されるか、あるいはパラメータセット内で信号伝達されるタイル構成に従って導出されるかすることができる。一部の例において、スライスに含まれるＣＴＵのアドレスの導出のために、スライスヘッダ内のタイルＩＤを明示的に信号伝達するためのビット単位での長さは、パラメータセット内で信号伝達されることができる。一部の例において、スライス内のタイルの数から１を引いたものに等しいものであるエントリーポイントの数は、スライスヘッダ内で信号伝達されずに導出される。他の一例において、そのＣＴＵがスライスの終わりであるかを指し示すＣＴＵ毎のフラグの信号伝達が回避される。
【００８２】
一部の例において、スライス及びタイルは、例えば動き制約タイルセット（ＭＣＴＳ）などの一組のタイルをビットストリームから抽出して、適合するサブビットストリームを作り出すときに、スライスヘッダの書き換えが必要とされないように設計される。例えば、タイルＩＤは、タイル構成が信号伝達されるパラメータセット内でタイル毎に明示的に信号伝達され得る。タイルＩＤは各々、ピクチャ内で一意である。タイルＩＤは、ピクチャ内で連続していなくてもよい。しかしながら、タイルＩＤは、ピクチャのタイルラスタースキャンの方向に増加する順序（例えば、単調増加）で編成されるべきである。これにより、ピクチャ内のスライスの復号順序を、左上のタイルのタイルＩＤの値を増加させていくものであるように制限することができる。タイルＩＤが明示的に信号伝達されずに、タイルインデックスと同じであると推定される場合、スライスヘッダ内でタイルＩＤ値を信号伝達するために以下を使用することができる。そのスライスがピクチャの最初のスライスであるかを指し示すフラグを信号伝達することができる。そのスライスがピクチャの最初のスライスであることをフラグが指し示すとき、そのスライスの左上のタイルのタイルＩＤの信号伝達を省略することができる。何故なら、それは、最小のタイルインデックス（例えば、タイルインデックスがゼロから始まると仮定して、ゼロのタイルインデックス）を持つタイルであると推定することができるからである。
【００８３】
他の一例において、ピクチャはゼロの、又は１つ以上のＭＣＴＳを含み得る。ＭＣＴＳは、１つ以上のタイルを含み得る。スライス内のタイルがＭＣＴＳの一部であるとき、ＭＣＴＳは、そのスライス内の全てのタイルが同じＭＣＴＳの一部であるように制約される。スライスは更に、ＭＣＴＳのタイルを含む全てのピクチャのタイル構成が、ＭＣＴＳ内のタイルの位置及びサイズに関して同じであるように制約され得る。一部の例において、スライスは、ＭＣＴＳがスライス内に排他的に含まれるように制約される。これは２つの帰結を有する。この場合、各ＭＣＴＳが別のＮＡＬユニット内にある。さらに、各ＭＣＴＳが矩形の形状にある。
【００８４】
ＭＣＴＳの信号伝達は以下とし得る。そのスライスが、対応するスライスを含むアクセスユニット内にＭＣＴＳを有するＮＡＬユニットを含むかを指し示すために、フラグをスライスヘッダ内で信号伝達することができる。ＭＣＴＳに関する他のサポート情報（例えば、ＭＣＴＳを抽出することから得られるサブビットストリームのプロファイル、階層及びレベル情報）は、ＳＥＩメッセージ内で信号伝達される。あるいは、フラグインジケーション及びＭＣＴＳのサポート情報の双方をＳＥＩメッセージ内で信号伝達してもよい。ピクチャ境界としてＭＣＴＳ境界を扱うことの信号伝達を可能にするために、全てのタイル境界がピクチャ境界と同じに扱われるかを指し示す構文要素が、例えばタイル構成が信号伝達されるパラメータセット内で、信号伝達される。加えて、例えば、他の構文要素が全てのタイル境界がピクチャ境界と同じに扱われることを指し示さない場合に、スライスの全てのスライス境界がピクチャ境界と同じに扱われるかを指し示す構文要素がスライスヘッダ内で信号伝達され得る。
【００８５】
そうでなく、全てのタイル境界がピクチャ境界と同じに扱われることを構文が指し示さない場合にのみ、インループフィルタリング処理が各タイル境界を横切って適用され得るかを指し示す構文要素が信号伝達され得る。この場合、タイル境界をピクチャ境界として扱うことは、数ある態様の中でもとりわけ、インループフィルタリング処理が各タイル境界を横切って適用されることができないことを指し示す。他の例において、全てのタイル境界がピクチャ境界と同じに扱われるかを指し示すインジケーションとは無関係に、インループフィルタリング処理が各タイル境界を横切って適用され得るかを指し示す構文要素が信号伝達される。この場合、タイル境界をピクチャ境界として扱うことは、インループフィルタリング処理が依然として各タイル境界を横切って適用され得ることを指し示す。
【００８６】
一部の例において、ＭＣＴＳ境界がピクチャ境界として扱われる。さらに、スライス境界がピクチャ境界と同じに扱われるかを指し示すスライスヘッダ内の構文要素も、スライスがＭＣＴＳを含むかを指し示すフラグに対して条件付きにされることができる。一部のケースにおいて、ＭＣＴＳ境界がピクチャ境界として扱われるべきかを指し示すフラグの値は、スライスがＭＣＴＳを含むことをスライスヘッダ内のフラグが指し示す場合に推定されることができる。
【００８７】
タイル又はスライスの境界がピクチャ境界として扱われるように指し示される場合、以下が適用される。時間的なルマ動きベクトル予測に関する導出プロセスにおいて、それぞれpic_height_in_luma_samples−１及びpic_width_in_luma_samples−１によって指し示される当該プロセスで使用される右及び下のピクチャ境界位置が、それぞれ、ルマサンプルの単位のタイル又はスライスの右及び下の境界位置で置換される。ルマサンプルの補間プロセスにおいて、それぞれ０、pic_height_in_luma_samples−１、０、pic_width_in_luma_samples−１によって指し示される当該プロセスで使用される左、右、上、及び下のピクチャ境界位置が、それぞれ、ルマサンプルの単位のタイル又はスライスの左、右、上、及び下の境界位置で置換される。クロマサンプル補間プロセスにおいて、それぞれ０、pic_height_in_luma_samples/SubWidthC−１、０、pic_width_in_luma_samples/SubWidthC−１によって指し示される当該プロセスで使用される左、右、上、及び下のピクチャ境界位置が、それぞれ、クロマサンプルの単位のタイル又はスライスの左、右、上、及び下の境界位置で置換される。
【００８８】
前述の機構は、以下のように実装されることができる。スライスは、ピクチャの矩形領域をカバーし且つ単一のＮＡＬユニットに排他的に含まれる整数個のタイルとして規定される。スライスヘッダは、スライス内で表現される全てのタイルに関するデータ要素を含む符号化されたスライスの一部として規定される。タイルは、ピクチャ内の特定のタイル列及び特定のタイル行の中の矩形領域のＣＴＵ群として規定される。タイル列は、ピクチャの高さに等しい高さと、ピクチャパラメータセット内の構文要素によって指定される幅とを持つ矩形領域のＣＴＵ群として規定される。タイル行は、ピクチャパラメータセット内の構文要素によって指定される高さと、ピクチャの幅に等しい幅とを持つ矩形領域のＣＴＵ群として規定される。タイルスキャンは、ＣＴＵがタイル内でのＣＴＵラスタースキャンにて連続して順序付けられるのに対して、ピクチャ内のタイルはピクチャのタイルのラスタースキャンにて連続して順序付けられるという、ピクチャを分割するＣＴＵの特定の一連の順序付けとして規定される。
【００８９】
このセクションには、ピクチャがどのようにスライス及びタイルに分割されるのかを記述する。ピクチャはスライス及びタイルに分割される。スライスは、ピクチャの矩形領域をカバーする一連のタイルである。タイルは、ピクチャの矩形領域をカバーする一連のＣＴＵである。
【００９０】
３つの別々の色平面を用いてピクチャが符号化される（separate_color_plane_flagが１に等しい）場合、スライスは、color_plane_idの対応する値によって特定される１つの色成分のＣＴＵのみを含み、ピクチャの各色成分アレイが、同じcolor_plane_id値を持つスライスを含む。各値のcolor_plane_idについて、その値のcolor_plane_idを持つ符号化スライスＮＡＬユニットは、各符号化スライスＮＡＬユニットの最初のＣＴＵに対するタイルスキャン順で増加していくＣＴＵアドレスの順序にあるものとするという制約の下で、ピクチャ内の異なる値のcolor_plane_idを持つ符号化スライスが互いにインタリーブされ得る。なお、separate_color_plane_flagが０に等しい場合には、ピクチャの各ＣＴＵがきっちり１つのスライスに含まれる。separate_color_plane_flagが１に等しい場合、１つの色成分の各ＣＴＵはきっちり１つのスライスに含まれる（例えば、ピクチャの各ＣＴＵに関する情報がきっちり３つのスライス内に存在し、これらの３スライスは異なる値のcolor_plane_idを持つ）。
【００９１】
この明細書の処理要素の以下の分割は、空間的な又はコンポーネント毎の分割を形成する：各ピクチャのコンポーネントへの分割；各コンポーネントのＣＴＢへの分割；各ピクチャのタイル列への分割；各ピクチャのタイル行への分割；各タイル列のタイルへの分割；各タイル行のタイルへの分割；各タイルのＣＴＵへの分割；各ピクチャのスライスへの分割；各スライスのタイルへの分割；各スライスのＣＴＵへの分割；各ＣＴＵのＣＴＢへの分割；コンポーネント幅がＣＴＢサイズの整数倍でない場合に右コンポーネント境界でＣＴＢは不完全であり、また、コンポーネント高さがＣＴＢサイズの整数倍でない場合に下コンポーネント境界でＣＴＢは不完全であることを除いての、各ＣＴＢの符号化ブロックへの分割；ルマサンプルにおけるピクチャ幅がルマＣＴＢサイズの整数倍でない場合に右ピクチャ境界でＣＴＵは不完全であり、また、ルマサンプルにおけるピクチャ高さがルマＣＴＢサイズの整数倍でない場合に下ピクチャ境界でＣＴＵは不完全であることを除いての、各ＣＴＵの符号化ユニットへの分割；各符号化ユニットの変換ユニットへの分割；各符号化ユニットの符号化ブロックへの分割；各符号化ブロックの変換ブロックへの分割；及び各変換ユニットの変換ブロックへの分割。
【００９２】
隣接ブロック可用性に関する導出プロセスへの入力は、現在ピクチャの左上ルマサンプルに対する現在ブロックの左上サンプルのルマ位置（xCurr，yCurr）と、現在ピクチャの左上ルマサンプルに対して隣接するブロックによってカバーされるのルマ位置（xNbY，yNbY）である。このプロセスの出力は、位置（xNbY，yNbY）をカバーする隣接ブロックの可用性であり、availableNと表記される。隣接ブロック可用性availableNは、以下のように導出される。隣接ブロックを含むスライスのtop_left_tile_idが、値において、現在ブロックを含むスライスのtop_left_tile_idとは異なる、又は、隣接ブロックが、現在ブロックとは異なるタイルに含まれる、という条件のうちの１つ以上が真（true）である場合、availableNは偽（false）に等しく設定される。
【００９３】
ＣＴＢラスター及びタイルスキャンプロセスは以下の通りである。ＣＴＢ単位でのｉ番目のタイル列の幅を記述する、両端を含め０からnum_tile_columns_minus1までの範囲のｉについてのリストColWidth[i]は、以下のように導出される：
if(uniform_tile_spacing_flag)
for(i=0;i<=num_tile_columns_minus1;i++)
ColWidth[i]=((i+1)*PicWidthInCtbsY)/(num_tile_columns_minus1+1)-
(i*PicWidthInCtbsY)/(num_tile_columns_minus1+1)
else{
ColWidth[num_tile_columns_minus1]=PicWidthInCtbsY        (6-1)
for(i=0;i<num_tile_columns_minus1;i++){
ColWidth[i]=tile_column_width_minus1[i]+1
ColWidth[num_tile_columns_minus1]-=ColWidth[i]
}
}
ＣＴＢ単位でのｊ番目のタイル行の高さを記述する、両端を含め０からnum_tile_rows_minus1までの範囲のｊについてのリストRowHeight[j]は、以下のように導出される：
if(uniform_tile_spacing_flag)
for(j=0;j<=num_tile_rows_minus1;j++)
RowHeight[j]=((j+1)*PicHeightInCtbsY)/(num_tile_rows_minus1+1)-
(j*PicHeightInCtbsY)/(num_tile_rows_minus1+1)
else{
RowHeight[num_tile_rows_minus1]=PicHeightInCtbsY        (6-2)
for(j=0;j<num_tile_rows_minus1;j++){
RowHeight[j]=tile_row_height_minus1[j]+1
RowHeight[num_tile_rows_minus1]-=RowHeight[j]
}
}
【００９４】
ＣＴＢ単位でのｉ番目のタイル列境界の位置を記述する、両端を含め０からnum_tile_columns_minus1＋１までの範囲のｉについてのリストColBd[i]は、以下のように導出される：
for(ColBd[0]=0,i=0;i<=num_tile_columns_minus1;i++)
ColBd[i+1]=ColBd[i]+ColWidth[i]        (6-3)
ＣＴＢ単位でのｊ番目のタイル行境界の位置を記述する、両端を含め０からnum_tile_rows_minus1＋１までの範囲のｊについてのリストRowBd[j]は、以下のように導出される：
for(RowBd[0]=0,j=0;j<=num_tile_rows_minus1;j++)
RowBd[j+1]=RowBd[j]+RowHeight[j]        (6-4)
ピクチャのＣＴＢラスタースキャンにおけるＣＴＢアドレスからタイルスキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrRsについてのリストCtbAddrRsToTs[ctbAddrRs]は、以下のように導出される：
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++){
tbX=ctbAddrRs%PicWidthInCtbsY
tbY=ctbAddrRs/PicWidthInCtbsY
for(i=0;i<=num_tile_columns_minus1;i++)
if(tbX>=ColBd[i])
tileX=i
for(j=0;j<=num_tile_rows_minus1;j++)        (6-5)
if(tbY>=RowBd[j])
tileY=j
CtbAddrRsToTs[ctbAddrRs]=0
for(i=0;i<tileX;i++)
CtbAddrRsToTs[ctbAddrRs]+=RowHeight[tileY]*ColWidth[i]
for(j=0;j<tileY;j++)
CtbAddrRsToTs[ctbAddrRs]+=PicWidthInCtbsY*RowHeight[j]
CtbAddrRsToTs[ctbAddrRs]+=(tbY-RowBd[tileY])*ColWidth[tileX]+tbX-ColBd[tileX]
}
【００９５】
タイルスキャンにおけるＣＴＢアドレスからピクチャのＣＴＢラスタースキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrTsについてのリストCtbAddrRsToTs[ctbAddrRs]は、以下のように導出される：
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++)        (6-6)
CtbAddrTsToRs[CtbAddrRsToTs[ctbAddrRs]]=ctbAddrRs
タイルスキャンにおけるＣＴＢアドレスからタイルＩＤへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrTsについてのリストTileId[ctbAddrTs]は、以下のように導出される：
for(j=0,tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++,tileIdx++)
for(y=RowBd[j];y<RowBd[j+1];y++)        (6-7)
for(x=ColBd[i];x<ColBd[i+1];x++)
TileId[CtbAddrRsToTs[y*PicWidthInCtbsY+x]]=
explicit_tile_id_flag?tile_id_val[i][j]:tileIdx
タイルインデックスからタイル内のＣＴＵの番号への変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のtileIdxについてのリストNumCtusInTile[tileIdx]は、以下のように導出される：
for(j=0,tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++,tileIdx++)        (6-8)
NumCtusInTile[tileIdx]=ColWidth[i]*RowHeight[j]
【００９６】
タイルＩＤからタイルインデックスへの変換を記述するNumTilesInPic  tileId値の集合についての集合TileIdToIdx[tileId]、及びタイルＩＤからタイル内の最初のＣＴＵのタイルスキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からNumTilesInPic−１までの範囲のtileIdxについてのリストFirstCtbAddrTs[tileIdx]は、以下のように導出される：
for(ctbAddrTs=0,tileIdx=0,tileStartFlag=1;ctbAddrTs<PicSizeInCtbsY;ctbAddrTs++){
if(tileStartFlag){
TileIdToIdx[TileId[ctbAddrTs]]=tileIdx
FirstCtbAddrTs[tileIdx]=ctbAddrTs        (6-9)
tileStartFlag=0
}
tileEndFlag=ctbAddrTs==PicSizeInCtbsY-1||TileId[ctbAddrTs+1]!=TileId[ctbAddrTs]
if(tileEndFlag){
tileIdx++
tileStartFlag=1
}
}
両端を含め０からnum_tile_columns_minus1までの範囲のｉについて、ルマサンプル単位でのｉ番目のタイル列の幅を記述するColumnWidthInLumaSamples[i]の値は、ColWidth[i]<<CtbLog2SizeYに等しく設定される。両端を含め０からnum_tile_rows_minus1までの範囲のｊについて、ルマサンプル単位でのｊ番目のタイル行の高さを記述するRowHeightInLumaSamples[j]の値は、RowHeight[j]<<CtbLog2SizeYに等しく設定される。
【００９７】
ピクチャパラメータセットＲＢＳＰ構文は次のとおりである：
【表１】
2022500924.tif 000003
【００９８】
スライスヘッダ構文は次のように変更される。
【表２】
2022500924.tif 000004
【００９９】
slice_data()構文は次のとおりである：
【表３】
2022500924.tif 000005
【０１００】
ピクチャパラメータセットＲＢＳＰセマンティクスは次のとおりである。single_tile_in_pic_flagは、ＰＰＳを参照する各ピクチャ内に１つのタイルしか存在しないことを記述するには、１に等しく設定される。single_tile_in_pic_flagは、ＰＰＳを参照する各ピクチャ内に２つ以上のタイルが存在することを記述するには、ゼロに等しく設定される。ビットストリーム適合性は、single_tile_in_pic_flagの値が、符号化ビデオシーケンス（coded  video  sequence；ＣＶＳ）内でアクティブにされる全てのＰＰＳに対して同じであることを要求し得る。num_tile_columns_minus1＋１は、ピクチャを分割するタイル列の数を記述する。num_tile_columns_minus1は、両端を含め０からPicWidthInCtbsY−１までの範囲内であるとされる。存在しない場合、num_tile_columns_minus1の値はゼロに等しいと推定される。num_tile_rows_minus1＋１は、ピクチャを分割するタイル行の数を記述する。num_tile_rows_minus1は、両端を含めゼロからPicHeightInCtbsY−１までの範囲内であるとされる。存在しない場合、num_tile_rows_minus1の値はゼロに等しいと推定される。変数NumTilesInPicは、（num_tile_columns_minus1＋１）＊（num_tile_rows_minus1＋１）に等しく設定される。
【０１０１】
single_tile_in_pic_flagがゼロに等しいとき、NumTilesInPicはゼロより大きい。tile_id_len_minus1＋１は、存在する場合にＰＰＳ内の構文要素tile_id_val[i][j]と、存在する場合にＰＰＳを参照するスライスヘッダ内の構文要素top_left_tile_id及びbottom_right_tile_idとを表すのに使用されるビットの数を記述する。tile_id_len_minus1の値は、両端を含めCeil(Log2(NumTilesInPic))から１５までの範囲内である。explicit_tile_id_flagは、各タイルのタイルＩＤが明示的に信号伝達されることを記述するには、１に等しく設定される。explicit_tile_id_flagは、タイルＩＤが明示的に信号伝達されないことを記述するには、ゼロに設定される。tile_id_val[i][j]は、ｉ番目のタイル列且つｊ番目のタイル行のタイルのタイルＩＤを記述する。tile_id_val[i][j]の長さは、tile_id_len_minus1＋１ビットである。
【０１０２】
両端を含めゼロからnum_tile_columns_minus1までの範囲内の任意の整数ｍ、及び両端を含めゼロからnum_tile_rows_minus1までの範囲内の任意の整数ｎについて、ｉがｍに等しくない又はｊがｎに等しくない場合、tile_id_val[i][j]はtile_id_val[m][n]に等しくならず、ｊ＊（num_tile_columns_minus1＋１）＋ｉがｎ＊（num_tile_columns_minus1＋１）＋ｍ  よりも小さい場合、tile_id_val[i][j]は、tile_id_val[m][n]よりも小さい。uniform_tile_spacing_flagは、タイル列境界及び同様にタイル行境界がピクチャ全体に均一に分布されていることを記述するには、１に等しく設定される。uniform_tile_spacing_flagは、タイル列境界及び同様にタイル行境界がピクチャ全体に均一に分布されていないが構文要素tile_column_width_minus1[i]及びtile_row_height_minus1[i]を用いて明示的に信号伝達されることを記述するには、ゼロに等しく設定される。存在しない場合、uniform_tile_spacing_flagの値は１に等しいと推定される。tile_column_width_minus1[i]＋１は、ＣＴＢ単位でのｉ番目のタイル列の幅を記述する。tile_row_height_minus1[i]＋１は、ＣＴＢ単位でのｉ番目のタイル行の高さを記述する。
【０１０３】
以下の変数は、ＣＴＢラスター及びタイルスキャニング変換プロセスを呼び出すことによって導出される：ＣＴＢ単位でのｉ番目のタイル列の幅を記述する、両端を含め０からnum_tile_columns_minus1までの範囲のｉについてのリストColWidth[i]；ＣＴＢ単位でのｊ番目のタイル行の高さを記述する、両端を含め０からnum_tile_rows_minus1までの範囲のｊについてのリストRowHeight[j]；ＣＴＢ単位でのｉ番目のタイル列境界の位置を記述する、両端を含め０からnum_tile_columns_minus1＋１までの範囲のｉについてのリストColBd[i]；ＣＴＢ単位でのｊ番目のタイル行境界の位置を記述する、両端を含め０からnum_tile_rows_minus1＋１までの範囲のｊについてのリストRowBd[j]；ピクチャのＣＴＢラスタースキャンにおけるＣＴＢアドレスからタイルスキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrRsについてのリストctbAddrRsTs[ctbAddrRs]；タイルスキャンにおけるＣＴＢアドレスからピクチャのＣＴＢラスタースキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrTsについてのリストCtbAddrTsToRs[ctbAddrTs]；タイルスキャンにおけるＣＴＢアドレスからタイルＩＤへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrTsについてのリストTileId[ctbAddrTs]；タイルインデックスからタイル内のＣＴＵの番号への変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のtileIdxについてのリストNumCtusInTile[tileIdx]；タイルＩＤからタイルインデックスへの変換を記述するNumTilesInPic  tileId値の集合についての集合TileIdToIdx[tileId]；タイルＩＤからタイル内の最初のＣＴＵのタイルスキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からNumTilesInPic−１までの範囲のtileIdxについてのリストFirstCtbAddrTs[tileIdx]；ルマサンプル単位でのｉ番目のタイル列の幅を記述する、両端を含め０からnum_tile_columns_minus1までの範囲のｉについてのリストColumnWidthInLumaSamples[i]；及びルマサンプル単位でのｊ番目のタイル行の高さを記述する、両端を含め０からnum_tile_rows_minus1までの範囲のｊについてのリストRowHeightInLumaSamples[j]。
【０１０４】
両端を含め０からnum_tile_columns_minus1までの範囲のｉについてのColumnWidthInLumaSamples[i]、及び両端を含め０からnum_tile_rows_minus1までの範囲のｊについてのRowHeightInLumaSamples[j]の値は全て、０より大きい。tile_boundary_treated_as_picture_boundary_flagは、各タイル境界が、ＰＰＳを参照するピクチャに対する復号プロセスにおいてピクチャ境界と同じに扱われることを記述するには、１に等しく設定される。tile_boundary_treated_as_picture_boundary_flagは、各タイル境界が、ＰＰＳを参照するピクチャに対する復号プロセスにおいてピクチャ境界と同じに扱われてもよいし、そうでなくてもよいことを記述するには、ゼロに等しく設定される。存在しない場合、tile_boundary_treated_as_picture_boundary_flagの値は１に等しいと推定される。loop_filter_across_tiles_enabled_flagは、ＰＰＳを参照するピクチャ内のタイル境界を横切ってインループフィルタリング処理が実行され得ることを記述するには、１に等しく設定される。loop_filter_across_tiles_enabled_flagは、ＰＰＳを参照するピクチャ内のタイル境界を横切ってインループフィルタリング処理が実行されないことを記述するには、ゼロに等しく設定される。インループフィルタリング処理は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、及び適応ループフィルタ処理を含む。存在しない場合、loop_filter_across_tiles_enabled_flagの値はゼロに等しいと推定される。
【０１０５】
スライスヘッダセマンティクスは以下のとおりである。存在する場合、スライスヘッダ構文要素slice_pic_parameter_set_idの値は、符号化ピクチャの全てのスライスヘッダにおいて同じである。slice_pic_parameter_set_idは、使用中のＰＰＳに関するpps_pic_parameter_set_idの値を記述する。slice_pic_parameter_set_idの値は、両端を含め０から６３の範囲内である。single_tile_in_slice_flagは、スライス内に１つしかタイルが存在しないことを指定するには、１に等しく設定される。single_picture_in_pic_flagは、スライス内に２つ以上のタイルが存在することを記述するには、ゼロに等しく設定される。top_left_tile_idは、スライスの左上隅にあるタイルのタイルＩＤを記述する。top_left_tile_idの長さは、tile_id_len_minus1＋１ビットである。top_left_tile_idの値は、同じ符号化ピクチャの如何なる他の符号化スライスＮＡＬユニットのtop_left_tile_idの値とも等しくない。ピクチャ内に２つ以上のスライスが存在する場合、ピクチャ内のスライスの復号順序は、top_left_tile_idの値を増加させていくものである。bottom_right_tile_idは、スライスの右下隅にあるタイルのタイルＩＤを記述する。bottom_right_tile_idの長さは、tile_id_len_minus1＋１ビットである。存在しない場合、bottom_right_tile_idの値はtop_left_tile_idと等しいと推定される。
【０１０６】
変数NumTileRowsInSlice、NumTileColumnsInSlice、及びNumTilesInSliceは、以下のように導出される：
deltaTileIdx=TileIdToIdx[bottom_right_tile_id]-TileIdToIdx[top_left_tile_id]
NumTileRowsInSlice=(deltaTileIdx/(num_tile_columns_minus1+1))+1        (7-25)
NumTileColumnsInSlice=(deltaTileIdx%(num_tile_columns_minus1+1))+1
NumTilesInSlice=NumTileRowsInSlice*NumTileColumnsInSlice
【０１０７】
slice_typeは、表４に従ってスライスの符号化タイプを記述する。
【表４】
2022500924.tif 000006
例えば、ピクチャがイントラランダムアクセスピクチャ（Intra  Random  Access  Picture；ＩＲＡＰ）ピクチャであるなど、nal_unit_typeが、両端を含めＴＢＤの範囲内の値を持つ場合、slice_typeは２に等しい。log2_diff_ctu_max_bt_sizeは、ルマＣＴＢサイズと、二分割を用いて分割可能な符号化ブロックの最大ルマサイズ（幅又は高さ）との間の差を記述する。log2_diff_ctu_max_bt_sizeの値は、両端を含めゼロからCtbLog2SizeY−MinCbLog2SizeYの範囲内である。log2_diff_ctu_max_bt_sizeが存在しない場合、log2_diff_ctu_max_bt_sizeの値は２に等しいと推定される。
【０１０８】
変数MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY、及びMaxMttDepthは、以下のように導出される：
MinQtLog2SizeY=(slice_type==I)?MinQtLog2SizeIntraY:MinQtLog2SizeInterY  (7-26)
MaxBtLog2SizeY=CtbLog2SizeY-log2_diff_ctu_max_bt_size        (7-27)
MinBtLog2SizeY=MinCbLog2SizeY          (7-28)
MaxTtLog2SizeY=(slice_type==I)?  5:6    (7-29)
MinTtLog2SizeY=MinCbLog2SizeY          (7-30)
MinQtSizeY=1<<MinQtLog2SizeY          (7-31)
MaxBtSizeY=1<<MaxBtLog2SizeY          (7-32)
MinBtSizeY=1<<MinBtLog2SizeY          (7-33)
MaxTtSizeY=1<<MaxTtLog2SizeY          (7-34)
MinTtSizeY=1<<MinTtLog2SizeY          (7-35)
MaxMttDepth=(slice_type==I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slices              (7-36)
dep_quant_enabled_flagは、従属量子化が無効であることを記述するには、ゼロに等しく設定される。dep_quant_enabled_flagは、従属量子化が有効であることを記述するには、１に等しく設定される。sign_data_hiding_enabled_flagは、符号ビット非表示が無効であることを記述するには、ゼロに等しく設定される。sign_data_hiding_enabled_flagは、符号ビット非表示が有効であることを記述するには、１に等しく設定される。sign_data_hiding_enabled_flagが存在しない場合、それは０に等しいと推定される。slice_boundary_treated_as_pic_boundary_flagは、スライスの各スライス境界が復号プロセスにおいてピクチャ境界と同じに扱われることを記述するには、１に等しく設定される。０に等しいslice_boundary_treated_as_pic_boundary_flagは、各タイル境界が復号プロセスにおいてピクチャ境界と同じに扱われてもよいし、そうでなくてもよいことを記述する。存在しない場合、slice_boundery_treated_as_pic_boundery_flagの値は１に等しいと推定される。offset_len_minus1＋１は、entry_point_offset_minus1[i]構文要素の、ビット単位での長さを記述する。offset_len_minus1の値は、両端を含め０から３１の範囲内である。entry_point_offset_minus1[i]＋１は、バイト単位でｉ番目のエントリーポイントオフセットを記述し、offset_len_minus1＋１ビットで表される。スライスヘッダに続くスライスデータは、両端を含め０からNumTilesInSlice−１の範囲のサブセットインデックス値を持つNumTilesInSlice個のサブセットで構成される。スライスデータの最初のバイトが、バイトゼロと見なされる。存在する場合、符号化スライスＮＡＬユニットのスライスデータ部分に現れるエミュレーション防止バイトが、サブセット識別の目的でスライスデータの一部としてカウントされる。
【０１０９】
サブセットゼロは、符号化されたスライスセグメントデータの、両端を含め０からentry_point_offset_minus1[0]までのバイトを含み、サブセットｋは、両端を含め１からNumTilesInSlice−２までの範囲内のｋで、符号化されたスライスデータのうち、両端を含めfirstByte[k]からlastByte[k]までのバイトを含み、firstByte[k]及びlastByte[k]は：
【数１】
2022500924.tif 000007
lastByte[k]=firstByte[k]+entry_point_offset_minus1[k]    (7-38)
として定義される。
最後のサブセット（NumTilesInSlice−１に等しいサブセットインデックスを持つ）は、符号化されたスライスデータの残りのバイトを含む。各サブセットは、同じタイル内にあるスライス内の全てのＣＴＵの全ての符号化ビットを含む。
【０１１０】
一般的なスライスデータセマンティクスは次の通りである：end_of_tile_one_bitは１に等しい。各タイルについて、変数LeftBoundaryPos、TopBoundaryPos、RightBoundaryPos及びBotBoundaryPosが、以下のように導出される。tile_boundary_treated_as_pic_boundary_flagがtrueに等しい場合、以下が適用される：
tileColIdx=CurrTileIdx/(num_tile_columns_minus1+1)        (7-39)
tileRowIdx=CurrTileIdx%(num_tile_columns_minus1+1)        (7-40)
LeftBoundaryPos=ColBd[tileColIdx]<<CtbLog2SizeY        (7-41)
RightBoundaryPos=((ColBd[tileColIdx]+ColWidth[tileColIdx])<<CtbLog2SizeY)-1
(7-42)
TopBoundaryPos=RowBd[tileRowIdx]<<CtbLog2SizeY        (7-43)
BotBoundaryPos=((RowBd[tileRowIdx]+RowHeight[tileRowIdx])<<CtbLog2SizeY)-1
(7-44)
そうでなく、slice_boundary_treated_as_pic_boundary_flagがtrueに等しい場合、以下が適用される：
sliceFirstTileColIdx=TileIdToIdx[top_left_tile_id]/(num_tile_columns_minus1+1)
(7-45)
sliceFirstTileRowIdx=TileIdToIdx[top_left_tile_id]%(num_tile_columns_minus1+1)
(7-46)
sliceLastTileColIdx=TileIdToIdx[bottom_right_tile_id]/(num_tile_columns_minus1+1
(7-47)
sliceLastTileRowIdx=TileIdToIdx[bottom_right_tile_id]%(num_tile_columns_minus1+1
(7-48)
LeftBoundaryPos=ColBd[sliceFirstTileColIdx]<<CtbLog2SizeY          (7-49)
RightBoundaryPos=((ColBd[sliceLastTileColIdx]+ColWidth[sliceLastTileColIdx])<<CtbLog2SizeY)-1
(7-50)
TopBoundaryPos=RowBd[sliceFirstTileRowIdx]<<CtbLog2SizeY            (7-51)
BotBoundaryPos=((RowBd[sliceLastTileRowIdx]+RowHeight[sliceLastTileRowIdx])<<CtbLog2SizeY)-1                                                        (7-52)
そうでない（slice_boundary_treated_as_pic_boundary_flagがFALSEに等しい）場合、以下が適用される：
LeftBoundaryPos=0                                                  (7-53)
RightBoundaryPos=pic_width_in_luma_samples-1                      (7-54)
TopBoundaryPos=0                                                  (7-55)
BotBoundaryPos=pic_height_in_luma_samples-1                        (7-56)
【０１１１】
時間的なルマ動きベクトル予測に関する導出プロセスは次のとおりである。yCb>>CtbLog2SizeYがyColBr>>CtbLog2SizeYに等しく、yColBrがpic_height_in_luma_samplesより小さく、且つxColBrがpic_width_in_luma_samplesより小さい場合、以下が適用される。
【０１１２】
変数colCbは、ColPicによって指定されるコロケートピクチャ内で（(xColBr>>3)<<3，(yColBr>>3)<<3）で与えられる変更された位置をカバーするルマ符号化ブロックを記述する。ルマ位置（xColCb，yColCb）は、ColPicによって指定されるコロケートピクチャの左上ルマサンプルに対してcolCbによって指定されるコロケートルマ符号化ブロックの左上サンプルに等しく設定される。コロケート動きベクトルに関する導出プロセスは、currCb、colCb、（xColCb，yColCb）、refIdxLX、及び入力として０に等しく設定される制御パラメータcontrolParaFlagを用いて呼び出され、出力はmvLXCol及びavailableFlagLXColに割り当てられる。yCb>>CtbLog2SizeYがyColBr>>CtbLog2SizeYに等しく、yColBrがBotBoundaryPos以下であり、且つxColBrがRightBoundaryPos以下である場合、以下が適用される。変数colCbは、ColPicによって指定されるコロケートピクチャ内で（(xColBr>>3)<<3，(yColBr>>3)<<3）で与えられる変更された位置をカバーするルマ符号化ブロックを記述する。ルマ位置（xColCb，yColCb）は、ColPicによって指定されるコロケートピクチャの左上ルマサンプルに対してcolCbによって指定されるコロケートルマ符号化ブロックの左上サンプルに等しく設定される。コロケート動きベクトルに関する導出プロセスは、currCb、colCb、（xColCb，yColCb）、refIdxLX、及び入力として０に等しく設定される制御パラメータcontrolParaFlagを用いて呼び出され、出力はmvLXCol及びavailableFlagLXColに割り当てられる。
【０１１３】
一部の例において、時間的なルマ動きベクトル予測に関する導出プロセスは次のとおりである。yCb>>CtbLog2SizeYがyColBr>>CtbLog2SizeYに等しく、yColBrがpic_height_in_luma_samplesより小さく、且つxColBrがpic_width_in_luma_samplesより小さい場合、以下が適用される。変数colCbは、ColPicによって指定されるコロケートピクチャ内で（(xColBr>>3)<<3，(yColBr>>3)<<3）で与えられる変更された位置をカバーするルマ符号化ブロックを記述する。ルマ位置（xColCb，yColCb）は、ColPicによって指定されるコロケートピクチャの左上ルマサンプルに対してcolCbによって指定されるコロケートルマ符号化ブロックの左上サンプルに等しく設定される。コロケート動きベクトルに関する導出プロセスは、currCb、colCb、（xColCb，yColCb）、refIdxLX、及び入力として０に等しく設定される制御パラメータcontrolParaFlagを用いて呼び出され、出力はmvLXCol及びavailableFlagLXColに割り当てられる。yCb>>CtbLog2SizeYがyColBr>>CtbLog2SizeYに等しい場合、以下が適用される。xColCtr＝Min(xColCtr，RightBoundaryPos)且つyColCtr＝Min(yColCtr，BotBoundaryPos)。変数colCbは、ColPicによって指定されるコロケートピクチャ内で（(xColBr>>3)<<3，(yColBr>>3)<<3）で与えられる変更された位置をカバーするルマ符号化ブロックを記述する。ルマ位置（xColCb，yColCb）は、ColPicによって指定されるコロケートピクチャの左上ルマサンプルに対してcolCbによって指定されるコロケートルマ符号化ブロックの左上サンプルに等しく設定される。コロケート動きベクトルに関する導出プロセスは、currCb、colCb、（xColCb，yColCb）、refIdxLX、及び入力として０に等しく設定される制御パラメータcontrolParaFlagを用いて呼び出され、出力はmvLXCol及びavailableFlagLXColに割り当てられる。
【０１１４】
ルマサンプル補間プロセスは次のとおりである。このプロセスへの入力は：フルサンプル単位のルマ位置（xIntL，yIntL）；分数サンプル単位のルマ位置（xFracL，yFracL）；及びルマ参照サンプルアレイrefPicLXLである。このプロセスの出力は、予測ルマサンプル値predSampleLXLである。変数shift1、shift2、shift3は、次のように導出される。変数shift1はＭｉｎ（４，BitDepthY−８）に等しく設定され、変数shift2は６に等しく設定され、変数shift3はＭａｘ（２，１４−BitDepthY）に等しく設定される。予測ルマサンプル値predSampleLXLは、以下のように導出される。xFracL及びyFracLの双方が０に等しい場合、predSampleLXLの値は、次のように導出される：
predSampleLXL=refPicLXL[xIntL][yIntL]<<shift3                  (8-228)
そうでなく、xFracLが０に等しくなく、且つyFracLが０に等しい場合、predSampleLXLの値は、以下のように導出される：
predSampleLXL=
(fL[xFracL,0]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL-3)][yIntL]+
fL[xFracL][1]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL-2)][yIntL]+
fL[xFracL][2]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL-1)][yIntL]+
fL[xFracL][3]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL)][yIntL]+
fL[xFracL][4]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+1)][yIntL]+
fL[xFracL][5]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+2)][yIntL]+
fL[xFracL][6]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+3)][yIntL]+
fL[xFracL][7]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+4)][yIntL])>>shift1                                                      (8-228)
【０１１５】
そうでなく、xFracLが０に等しく、且つyFracLが０に等しくない場合、predSampleLXLの値は、以下のように導出される：
predSampleLXL=
(fL[yFracL,0]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL-3)]+
fL[yFracL][1]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL-2)]+
L[yFracL][2]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL-1)]+
fL[yFracL][3]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL)]+
fL[yFracL][4]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL+1)]+
fL[yFracL][5]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL+2)]+
fL[yFracL][6]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL+3)]+
fL[yFracL][7]*refPicLXL[xIntL][Clip3(TopBoundaryPos,BotBoundaryPos,yIntL+4)])>>shift1                                                      (8-228)
【０１１６】
そうでなく、xFracLが０に等しくなく、且つyFracLが０に等しくない場合、predSampleLXLの値は、次のように導出される。ｎ＝０．．．７としたサンプルアレイtemp[n]が、以下のように導出される：
yPosL=Clip3(TopBoundaryPos,BotBoundaryPos,yIntL+n-3)            (8-228)
temp[n]=
(fL[xFracL,0]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL-3)][yPosL]+
fL[xFracL][1]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL-2)][yPosL]+
fL[xFracL][2]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL-1)][yPosL]+
fL[xFracL][3]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL)][yPosL]+
fL[xFracL][4]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+1)][yPosL]+
fL[xFracL][5]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+2)][yPosL]+
fL[xFracL][6]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+3)][yPosL]+
fL[xFracL][7]*refPicLXL[Clip3(LeftBoundaryPos,RightBoundaryPos,xIntL+4)][yPosL])>>shift1                                                      (8-228)
【０１１７】
予測ルマサンプル値predSampleLXLは、以下のように導出される：
predSampleLXL=(fL[yFracL][0]*temp[0]+
fL[yFracL][1]*temp[1]+
fL[yFracL][2]*temp[2]+
fL[yFracL][3]*temp[3]+
fL[yFracL][4]*temp[4]+
fL[yFracL][5]*temp[5]+
fL[yFracL][6]*temp[6]+
fL[yFracL][7]*temp[7])>>shift2                  (8-228)
【表５】
2022500924.tif 000008
【０１１８】
クロマサンプル補間プロセスは次のとおりである。このプロセスへの入力は：フルサンプル単位のクロマ位置（xIntC，yIntC）；１／８分数サンプル単位のクロマ位置（xFracC、yFracC）；及びクロマ参照サンプルアレイrefPicLXCである。このプロセスの出力は、予測クロマサンプル値predSampleLXCである。変数shift1、shift2、shift3、picWC、及びpicHCが、次のように導出される。変数shift1は、Ｍｉｎ（４，BitDepthC−８）に等しく設定され、変数shift2は６に等しく設定され、変数shift3はＭａｘ（２，１４−BitDepthC）に等しく設定される。変数lPos、rPos、tPos、及びbPosは、以下のように設定される：
lPos=LeftBoundaryPos/SubWidthC                    (8-228)
rPos=(RightBoundaryPos+1)/SubWidthC                (8-228)
tPos=TopBoundaryPos/SubHeightC                    (8-228)
bPos=(BotBoundaryPos+1)/SubHeightC                (8-228)
予測クロマサンプル値predSampleLXCは、以下のように導出される：xFracC及びyFracCの双方が０に等しい場合、predSampleLXCの値は、次のように導出される：
predSampleLXC=refPicLXC[xIntC][yIntC]<<shift3                (8-228)
そうでなく、xFracCが０に等しくなく、且つyFracCが０に等しい場合、predSampleLXCの値は、次のように導出される：
predSampleLXC=(fC[xFracC][0]*refPicLXC[Clip3(lPos,rPos,xIntC-1)][yIntC]+
fC[xFracC][1]*refPicLXC[Clip3(lPos,rPos,xIntC)][yIntC]+
fC[xFracC][2]*refPicLXC[Clip3(lPos,rPos,xIntC+1)][yIntC]+
C[xFracC][3]*refPicLXC[Clip3(lPos,rPos,xIntC+2)][yIntC])>>shift1
(8-228)
【０１１９】
そうでなく、xFracCが０に等しく、且つyFracCが０に等しくない場合、predSampleLXCの値は、次のように導出される：
redSampleLXC=(fC[yFracC][0]*refPicLXC[xIntC][Clip3(tPos,bPos,yIntC-1)]+
fC[yFracC][1]*refPicLXC[xIntC][Clip3(tPos,bPos,yIntC)]+
fC[yFracC][2]*refPicLXC[xIntC][Clip3(tPos,bPos,yIntC+1)]+
fC[yFracC][3]*refPicLXC[xIntC][Clip3(tPos,bPos,yIntC+2)])>>shift1
(8-228)
そうでなく、xFracCが０に等しくなく、且つyFracCが０に等しくない場合、predSampleLXCの値は、以下のように導出される。ｎ＝０．．．３としたサンプルアレイtemp[n]が、以下のように導出される：
yPosC=Clip3(tPos,bPos,yIntC+n-1)                              (8-228)
temp[n]=(fC[xFracC][0]*refPicLXC[Clip3(lPos,rPos,xIntC-1)][yPosC]+
fC[xFracC][1]*refPicLXC[Clip3(lPos,rPos,xIntC)][yPosC]+
fC[xFracC][2]*refPicLXC[Clip3(lPos,rPos,xIntC+1)][yPosC]+
fC[xFracC][3]*refPicLXC[Clip3(lPos,rPos,xIntC+2)][yPosC])>>shift1
(8-228)
【０１２０】
予測クロマサンプル値predSampleLXCは、以下のように導出される：
predSampleLXC=(fC[yFracC][0]*temp[0]+
fC[yFracC][1]*temp[1]+
fC[yFracC][2]*temp[2]+
fC[yFracC][3]*temp[3])>>shift2                (8-228)
【表６】
2022500924.tif 000009
【０１２１】
スライスデータに関するコンテキストベース適応バイナリ算術符号化（ＣＡＢＡＣ）構文解析プロセスは次のとおりである。ＣＴＵ構文の構文解析を開始するときに初期化プロセスが呼び出され、ＣＴＵはタイル内の最初のＣＴＵである。なお、スライスデータの始まりは各々、タイルの始まりであるため、この文章によってスライスデータの始まりもカバーされる。
【０１２２】
他の一例において、ＣＴＢラスター及びタイルスキャンプロセスは、次のとおりである。ＣＴＵ単位でのｉ番目のタイル列の幅を記述する、両端を含め０からnum_tile_columns_minus1までの範囲のｉについてのリストColWidth[i]は、以下のように導出される：
if(uniform_tile_spacing_flag)
for(i=0;i<=num_tile_columns_minus1;i++)
ColWidth[i]=((i+1)*PicWidthInCtbsY)/(num_tile_columns_minus1+1)-
(i*PicWidthInCtbsY)/(num_tile_columns_minus1+1)
else{
ColWidth[num_tile_columns_minus1]=PicWidthInCtbsY        (6-1)
for(i=0;i<num_tile_columns_minus1;i++){
ColWidth[i]=tile_column_width_minus1[i]+1
ColWidth[num_tile_columns_minus1]-=ColWidth[i]
}
}
【０１２３】
ＣＴＵ単位でのｊ番目のタイル行の高さを記述する、両端を含め０からnum_tile_rows_minus1までの範囲のｊについてのリストRowHeight[j]は、以下のように導出される：
if(uniform_tile_spacing_flag)
for(j=0;j<=num_tile_rows_minus1;j++)
RowHeight[j]=((j+1)*PicHeightInCtbsY)/(num_tile_rows_minus1+1)-
(j*PicHeightInCtbsY)/(num_tile_rows_minus1+1)
else{
RowHeight[num_tile_rows_minus1]=PicHeightInCtbsY        (6-2)
for(j=0;j<num_tile_rows_minus1;j++){
RowHeight[j]=tile_row_height_minus1[j]+1
RowHeight[num_tile_rows_minus1]-=RowHeight[j]
}
}
【０１２４】
ＣＴＢ単位でのｉ番目のタイル列境界の位置を記述する、両端を含め０からnum_tile_columns_minus1＋１までの範囲のｉについてのリストColBd[i]は、以下のように導出される：
for(ColBd[0]=0,i=0;i<=num_tile_columns_minus1;i++)
ColBd[i+1]=ColBd[i]+ColWidth[i]        (6-3)
【０１２５】
ＣＴＢ単位でのｊ番目のタイル行境界の位置を記述する、両端を含め０からnum_tile_rows_minus1＋１までの範囲のｊについてのリストRowBd[j]は、以下のように導出される：
for(RowBd[0]=0,j=0;j<=num_tile_rows_minus1;j++)
RowBd[j+1]=RowBd[j]+RowHeight[j]        (6-4)
【０１２６】
ピクチャのＣＴＢラスタースキャンにおけるＣＴＢアドレスからタイルスキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrRsについてのリストCtbAddrRsToTs[ctbAddrRs]は、以下のように導出される：
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++){
tbX=ctbAddrRs%PicWidthInCtbsY
tbY=ctbAddrRs/PicWidthInCtbsY
for(i=0;i<=num_tile_columns_minus1;i++)
if(tbX>=ColBd[i])
tileX=i
for(j=0;j<=num_tile_rows_minus1;j++)        (6-5)
if(tbY>=RowBd[j])
tileY=j
CtbAddrRsToTs[ctbAddrRs]=0
for(i=0;i<tileX;i++)
CtbAddrRsToTs[ctbAddrRs]+=RowHeight[tileY]*ColWidth[i]
for(j=0;j<tileY;j++)
CtbAddrRsToTs[ctbAddrRs]+=PicWidthInCtbsY*RowHeight[j]
CtbAddrRsToTs[ctbAddrRs]+=(tbY-RowBd[tileY])*ColWidth[tileX]+tbX-ColBd[tileX]
}
【０１２７】
タイルスキャンにおけるＣＴＢアドレスからピクチャのＣＴＢラスタースキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrTsについてのリストCtbAddrRsToTs[ctbAddrRs]は、以下のように導出される：
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++)        (6-6)
CtbAddrTsToRs[CtbAddrRsToTs[ctbAddrRs]]=ctbAddrRs
【０１２８】
タイルスキャンにおけるＣＴＢアドレスからタイルＩＤへの変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のctbAddrTsについてのリストTileId[ctbAddrTs]は、以下のように導出される：
for(j=0,tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++,tileIdx++)
for(y=RowBd[j];y<RowBd[j+1];y++)        (6-7)
for(x=ColBd[i];x<ColBd[i+1];x++)
TileId[CtbAddrRsToTs[y*PicWidthInCtbsY+x]]=tileIdx
【０１２９】
タイルインデックスからタイル内のＣＴＵの番号への変換を記述する、両端を含め０からPicSizeInCtbsY−１までの範囲のtileIdxについてのリストNumCtusInTile[tileIdx]は、以下のように導出される：
for(j=0,tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++,tileIdx++)        (6-8)
NumCtusInTile[tileIdx]=ColWidth[i]*RowHeight[j]
【０１３０】
タイルＩＤからタイルインデックスへの変換を記述するNumTilesInPic  tileId値の集合についての集合TileIdToIdx[tileId]、及びタイルＩＤからタイル内の最初のＣＴＵのタイルスキャンにおけるＣＴＢアドレスへの変換を記述する、両端を含め０からNumTilesInPic−１までの範囲のtileIdxについてのリストFirstCtbAddrTs[tileIdx]は、以下のように導出される：
for(ctbAddrTs=0,tileIdx=0,tileStartFlag=1;ctbAddrTs<PicSizeInCtbsY;ctbAddrTs++){
if(tileStartFlag){
TileIdToIdx[TileId[ctbAddrTs]]=tileIdx
FirstCtbAddrTs[tileIdx]=ctbAddrTs        (6-9)
tileStartFlag=0
}
tileEndFlag=ctbAddrTs==PicSizeInCtbsY-1||TileId[ctbAddrTs+1]!=TileId[ctbAddrTs]
if(tileEndFlag){
tileIdx++
tileStartFlag=1
}
}
【０１３１】
両端を含め０からnum_tile_columns_minus1までの範囲のｉについて、ルマサンプル単位でのｉ番目のタイル列の幅を記述するColumnWidthInLumaSamples[i]の値は、ColWidth[i]<<CtbLog2SizeYに等しく設定される。両端を含め０からnum_tile_rows_minus1までの範囲のｊについて、ルマサンプル単位でのｊ番目のタイル行の高さを記述するRowHeightInLumaSamples[j]の値は、RowHeight[j]<<CtbLog2SizeYに等しく設定される。
【０１３２】
ピクチャパラメータセットＲＢＳＰ構文は次のとおりである：
【表７】
2022500924.tif 000010
【０１３３】
スライスヘッダの構文は次のとおりである：：
【表８】
2022500924.tif 000011
【０１３４】
スライスヘッダセマンティクスは以下のとおりである。存在する場合、スライスヘッダ構文要素slice_pic_parameter_set_idの値は、符号化ピクチャの全てのスライスヘッダにおいて同じである。slice_pic_parameter_set_idは、使用中のＰＰＳに関するpps_pic_parameter_set_idの値を記述する。slice_pic_parameter_set_idの値は、両端を含め０から６３の範囲内である。first_slice_in_pic_flagは、そのスライスが復号順でピクチャの最初のスライスであることを記述するには、１に等しく設定される。first_slice_in_pic_flagは、そのスライスが復号順でピクチャの最初のスライスでないことを記述するには、０に等しく設定される。single_tile_in_slice_flagは、スライス内に１つしかタイルが存在しないことを指定するには、１に等しく設定される。０に等しいsingle_picture_in_pic_flagは、スライス内に２つ以上のタイルが存在することを記述する。top_left_tile_idは、スライスの左上隅にあるタイルのタイルＩＤを記述する。top_left_tile_idの長さは、Ceil(Log2((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)))ビットである。top_left_tile_idの値は、同じ符号化ピクチャの如何なる他の符号化スライスＮＡＬユニットのtop_left_tile_idの値とも等しくない。存在しない場合、top_left_tile_idの値はゼロに等しいと推定される。ピクチャ内に２つ以上のスライスが存在する場合、ピクチャ内のスライスの復号順序は、top_left_tile_idの値を増加させていくものである。bottom_right_tile_idは、スライスの右下隅にあるタイルのタイルＩＤを記述する。bottom_right_tile_idの長さは、Ceil(Log2((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)))ビットである。存在しない場合、bottom_right_tile_idの値はtop_left_tile_idと等しいと推定される。変数NumTileRowsInSlice、NumTileColumnsInSlice、及びNumTilesInSliceは、以下のように導出される：
deltaTileIdx=TileIdToIdx[bottom_right_tile_id]-TileIdToIdx[top_left_tile_id]
NumTileRowsInSlice=(deltaTileIdx/(num_tile_columns_minus1+1))+1        (7-25)
NumTileColumnsInSlice=(deltaTileIdx%(num_tile_columns_minus1+1))+1
NumTilesInSlice=NumTileRowsInSlice*NumTileColumnsInSlice
【０１３５】
all_tiles_mcts_flagは、スライス内の全てのタイルが、現在のアクセスユニットに関するスライス内のタイルのみを含むものであるＭＣＴＳの一部であることを記述するには、１に等しく設定され、ＭＣＴＳ境界（スライスのスライス境界とコロケートである）がピクチャ境界と同じに扱われる。all_tiles_mcts_flagは０に等しく設定されることで、１に等しいall_tiles_mcts_flagによって記述される上述のことが当てはまることもあればそうでないこともあることを記述する。slice_boundary_treated_as_pic_boundary_flagは、スライスの各スライス境界が復号プロセスにおいてピクチャ境界と同じに扱われることを記述するには、１に等しく設定される。０に等しく設定されたslice_boundary_treated_as_pic_boundary_flagは、各タイル境界が復号プロセスにおいてピクチャ境界と同じに扱われてもよいし、そうでなくてもよいことを記述するためのものである。存在しない場合、slice_boundery_treated_as_pic_boundery_flagの値は１に等しいと推定される。各サブセットは、同じタイル内にあるスライス内の全てのＣＴＵの全ての符号化ビットを含む。
【０１３６】
図７は、映像符号化装置７００の一例の概略図である。映像符号化装置７００は、ここに記載されるような開示の例／実施形態を実装するのに適している。映像符号化装置７００は、ダウンストリームポート７２０、アップストリームポート７５０、及び／又はトランシーバユニット（Ｔｘ／Ｒｘ）７１０を有し、Ｔｘ／Ｒｘ７１０は、ネットワーク上でアップストリーム及び／又はダウンストリームにデータを通信する送信器及び／又は受信器を含む。映像符号化装置７００はまた、データを処理する論理ユニット及び／又は中央演算処理ユニット（ＣＰＵ）を含むプロセッサ７３０、及びデータを格納するメモリ７３２を含む。映像符号化装置７００はまた、電気コンポーネント、光−電気（ＯＥ）コンポーネント、電気−光（ＥＯ）コンポーネント、及び／又は、電気、光、若しくは無線の通信ネットワークを介したデータ通信のためにアップストリームポート７５０及び／又はダウンストリームポート７２０に結合された無線通信コンポーネントを含み得る。映像符号化装置７００はまた、ユーザに及びユーザからデータを伝えるための入力及び／又は出力（Ｉ／Ｏ）装置７６０を含み得る。Ｉ／Ｏ装置７６０は、例えば、映像データを表示するディスプレイ、音声データを出力するスピーカなどの出力装置を含み得る。Ｉ／Ｏ装置７６０はまた、例えばキーボード、マウス、トラックボールなどの入力装置、及び／又はそのような出力装置とインタラクトするための対応するインタフェースを含み得る。
【０１３７】
プロセッサ７３０は、ハードウェア及びソフトウェアによって実装される。プロセッサ７３０は、１つ以上のＣＰＵチップ、コア（例えば、マルチコアプロセッサとして）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、及びデジタル信号プロセッサ（ＤＳＰ）として実装され得る。プロセッサ７３０は、ダウンストリームポート７２０、Ｔｘ／Ｒｘ７１０、アップストリームポート７５０、及びメモリ７３２と通信する。プロセッサ７３０は符号化モジュール７１４を有する。符号化モジュール７１４は、ビットストリーム５００及び／又は画像６００を使用し得るものである例えば方法１００、８００、及び９００などの上述の開示実施形態を実装する。符号化モジュール７１４はまた、ここに記載されるいずれか他の方法／機構を実装し得る。さらに、符号化モジュール７１４は、コーデックシステム２００、エンコーダ３００、及び／又はデコーダ４００を実装してもよい。例えば、符号化モジュール７１４は、エンコーダとして作用するときに、画像をスライスに分割し、スライスをタイルに分割し、タイルをＣＴＵに分割し、ＣＴＵをブロックに分割し、そして、ブロックを符号化することができる。さらに、符号化モジュール７１４は、スライス内の最初のタイル及び最後のタイルのタイルＩＤに基づいてスライスの境界を信号伝達することによって、スライス内のタイルの数、スライス内のタイルに関するエントリーポイントオフセットの数、タイルのＣＴＵアドレス、スライス内の最後のＣＴＵ、及び／又は他のデータを暗示的に信号伝達することができる。デコーダとして作用するとき、符号化モジュール７１４は、そのようなデータを、スライス内の最初のタイル及び最後のタイルに基づいて再構成することができ、従って、符号化効率を高めることができる。従って、符号化モジュール７１４は、映像データを分割及び符号化するときに、映像符号化装置７００に更なる機能性及び／又は符号化効率を提供させる。それ故に、符号化モジュール７１４は、映像符号化装置７００の機能を向上させるとともに、映像符号化技術に特有の問題に対処する。さらに、符号化モジュール７１４は、映像符号化装置７００を異なる状態へと転換させる。あるいは、符号化モジュール７１４は、メモリ７３２に格納されてプロセッサ７３０によって実行される命令として（例えば、非一時的な媒体に格納されたコンピュータプログラムプロダクトとして）実装されることができる。
【０１３８】
メモリ７３２は、例えばディスク、テープドライブ、ソリッドステートドライブ、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、三値コンテンツアドレッサブルメモリ（ＴＣＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）などの１つ以上のメモリタイプを有する。メモリ７３２は、そのようなプログラムが実行のために選択されたときに該プログラムを格納するように、及びプログラム実行中に読み出された命令及びデータを格納するように、オーバーフローデータ記憶装置として使用されてもよい。
【０１３９】
図８は、例えば画像６００などの画像を、例えばビットストリーム５００などのビットストリームへと符号化する方法８００の一例のフローチャートである。方法８００は、方法１００を実行するときに、例えばコーデックシステム２００、エンコーダ３００、及び／又は映像符号化装置７００などのエンコーダによって使用され得る。
【０１４０】
方法８００は、エンコーダが、複数の画像を含むビデオシーケンスを受信し、例えばユーザ入力に基づいて、そのビデオシーケンスをビットストリームへと符号化することを決めたときに開始し得る。ビデオシーケンスは、符号化に先立って、更なる分割のためにピクチャ／画像／フレームへと分割される。ステップ８０１にて、画像が複数のスライスへと分割される。スライスは複数のタイルへと分割される。タイルは複数のＣＴＵへと分割される。ＣＴＵは更に符号化ブロックへと分割される。
【０１４１】
ステップ８０３にて、各スライスが、ビットストリーム内の別個のＶＣＬ  ＮＡＬユニットに符号化される。スライスは、（１つ以上の）タイル、ＣＴＵ、符号化ブロックを含む。従って、各スライスのタイル、ＣＴＵ、及び符号化ブロックも、対応するＶＣＬ  ＮＡＬユニット内に符号化される。ビットストリームは、ビデオシーケンス内の様々な画像からの複数のスライスを含む複数のＶＣＬ  ＮＡＬユニットを含む。上述のように、スライスは整数個のタイルを含む。従って、複数のＶＣＬ  ＮＡＬユニット内の各ＶＣＬ  ＮＡＬユニットが、整数個のタイルへと分割された画像データの単一のスライスを含む。
【０１４２】
なお、ステップ８０３の前に、後に、及び／又は最中にステップ８０５及び８０７が行われてもよい。説明の明瞭さのために、ステップ８０５及び８０７を別々に扱う。ステップ８０５にて、各スライスのタイルにタイルＩＤが割り当てられる。さらに、ＣＴＵにアドレスが割り当てられる。例えば、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスは、ＣＴＵを含むタイルに対応するタイルＩＤに基づいて割り当てられ得る。
【０１４３】
ステップ８０７にて、対応するスライス内の、及び故に、各ＶＣＬ  ＮＡＬユニット内の、タイルの数を指し示す値がビットストリーム内に符号化される。例えば、ＶＣＬ  ＮＡＬユニット内のタイルの数は、そのスライスに対応するＰＰＳ又はスライスヘッダを含む非ＶＣＬ  ＮＡＬユニットに含められ得る。他の一例において、タイルの数はビットストリームから省略されてもよい。何故なら、デコーダは、対応するスライス内の左上及び右下のタイル（これらは、スライスヘッダを含む非ＶＣＬ  ＮＡＬユニットにて信号伝達され得る）に基づいて、ＶＣＬ  ＮＡＬユニット内のタイルの数を割り出すことができ得るからである。タイルに関するエントリーポイントオフセットもビットストリーム内に符号化される。例えば、タイルに関するエントリーポイントオフセットは、スライスに関連付けられたスライスヘッダ内に符号化され得る。エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示す。エントリーポイントオフセットの数は、タイルの数より１だけ少ない値として割り出されることができるので、エントリーポイントオフセットの数はビットストリーム内で明示的に信号伝達されない。一部の例において、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスも、スライスヘッダ内で明示的に信号伝達され得る。他の例において、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスはビットストリームから省略され、ＶＣＬ  ＮＡＬユニットに含まれる最初のタイルのタイルＩＤに基づいた、デコーダにおけるＣＴＵアドレスの決定がサポートされる。上述のように、ステップ８０３で符号化されたＣＴＵは、ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを指し示すフラグを含まなくてよい。これは何故なら、スライス内のタイル数の知識に基づいて、デコーダがＶＣＬ  ＮＡＬユニット内のＣＴＵ数を割り出すことができるからである。しかしながら、ＶＣＬ  ＮＡＬユニットは、各タイルに関連する画像データ間の分離を維持することをサポートするために、各タイル内の最後のＣＴＵの直後にパディングビットを含むように符号化されてもよい。
【０１４４】
ステップ８０９にて、エントリーポイントオフセットの数なしでビットストリームが送信され、タイルに関するエントリーポイントオフセットの数はＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ないという推定に従って、タイルを復号することがサポートされる。
【０１４５】
図９は、例えばビットストリーム５００などのビットストリームからの例えば画像６００などの画像を復号する方法９００の一例のフローチャートである。方法９００は、方法１００を実行するときに、例えばコーデックシステム２００、デコーダ４００、及び／又は映像符号化装置７００などのデコーダによって使用され得る。
【０１４６】
方法９００は、例えば方法８００の結果としてのビデオシーケンスを表す符号化データのビットストリームをデコーダが受信し始めるときに開始し得る。ステップ９０１にて、ビットストリームがデコーダで受信される。ビットストリームは複数のＶＣＬ  ＮＡＬユニットを含み、各ＶＣＬ  ＮＡＬユニットが、複数のタイルへと分割された画像データを含む。上述のように、画像の各スライスが整数個のタイルを含む。また、各スライスは、別個のＶＣＬ  ＮＡＬユニットに含まれる。従って、各ＶＣＬ  ＮＡＬユニットが整数個のタイルを含む。さらに、タイルは各々が複数のＣＴＵへと分割されており、ＣＴＵが更に複数の符号化ブロックへと分割されている。
【０１４７】
ステップ９０３にて、デコーダは、ＶＣＬ  ＮＡＬユニット内のタイルの数を割り出す。
例えば、ＶＣＬ  ＮＡＬユニット内のタイルの数は、対応するスライスヘッダを含む非ＶＣＬ  ＮＡＬユニットから得ることができる。他の一例において、スライスヘッダは、スライス内の左上及び右下のタイルを示すデータを含み得る。このデータを用いて、スライス内の、及び故にＶＣＬ  ＮＡＬユニット内の、タイルの数を割り出すことができる。デコーダは、次いで、スライス内のタイルの数を使用して、タイルに関するエントリーポイントオフセットの数を割り出すことができる。例えば、タイルに関するエントリーポイントオフセットの数は、ＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ない。上述のように、エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示す。エントリーポイントオフセットの数は、圧縮及びひいては符号化効率を高めるために、ビットストリーム内で明示的に信号伝達されないとし得る。
【０１４８】
ステップ９０５にて、デコーダは、エントリーポイントオフセットの数に基づいて、ビットストリームからタイルに関するエントリーポイントオフセットを取得する。例えば、タイルに関するエントリーポイントオフセットは、スライスに関連付けられたスライスヘッダから取得され得る。
【０１４９】
上述のように、画像データは、タイルの各々に含まれる複数のＣＴＵとしてコード化される。さらに、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスが、タイルに対応するタイルＩＤに基づいて割り当てられ得る。従って、ステップ９０７にて、デコーダは、タイルのタイルＩＤ、及びタイルＩＤに基づくＣＴＵのアドレスを割り出すことができる。一部の例において、タイルＩＤは、例えばＰＰＳ及び／又はスライスヘッダ内で明示的に信号伝達される。他の例において、デコーダは、スライスの左上タイル及び右下タイルのタイルＩＤに基づいてタイルＩＤを割り出すことができる。また、一部のケースにおいて、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスは、スライスヘッダ内で明示的に信号伝達される。他の例において、デコーダは、ＶＣＬ  ＮＡＬユニットに含まれる最初のタイル（例えば、左上タイル）のタイルＩＤに基づいて、ＶＣＬ  ＮＡＬユニット内のＣＴＵのアドレスを割り出し得る。
【０１５０】
ステップ９０９にて、デコーダは、エントリーポイントオフセットにてタイルを復号して再構成画像を生成する。例えば、デコーダは、タイルのエントリーポイントオフセットとＣＴＵアドレスとを用いてＣＴＵを復号することができ、ＣＴＵアドレスは、スライスヘッダ内で明示的に信号伝達されるか、あるいはタイルＩＤに基づいて推定されるかのいずれかである。デコーダは、次いで、再構成画像を、再構成ビデオシーケンスの一部として、ディスプレイに向けて転送することができる。一部の例において、デコーダは、ＶＣＬ  ＮＡＬユニット内の最後のＣＴＵを指し示すフラグを探さなくてもよい。というのは、そのようなフラグはＶＣＬ  ＮＡＬユニットから省略され得るからである。そのような場合、デコーダは、スライス内のタイル数の知識に基づいて、ＶＣＬ  ＮＡＬユニット内のＣＴＵの数を割り出すことができる。一部の例において、デコーダは、各タイル内の最後のＣＴＵの直後のパディングビットに基づいて、ＶＣＬ  ＮＡＬユニット内のタイル同士を分離することができる。
【０１５１】
図１０は、例えば画像６００などの画像のビデオシーケンスを、例えばビットストリーム５００などのビットストリームに符号化するシステム１０００の一例の概略図である。システム１０００は、例えばコーデックシステム２００、エンコーダ３００、デコーダ４００、及び／又は映像符号化装置７００などのエンコーダ及びデコーダによって実装され得る。また、システム１０００は、方法１００、８００、及び／又は９００を実行するときに使用され得る。
【０１５２】
システム１０００はビデオエンコーダ１００２を含む。ビデオエンコーダ１００２は、画像を複数のタイルへと分割する分割モジュール１００１を有する。ビデオエンコーダ１００２は更に、タイルを、少なくとも１つのＶＣＬ  ＮＡＬユニットのビットストリームへと符号化し、ビットストリーム内にＶＣＬ  ＮＡＬユニット内のタイルの数を符号化し、且つビットストリーム内にタイルに関するエントリーポイントオフセットを符号化する符号化モジュール１００３を有し、エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。ビデオエンコーダ１００２は更に送信モジュール１００５を有し、送信モジュール１００５は、エントリーポイントオフセットの数を有しないビットストリームを送信して、タイルに関するエントリーポイントオフセットの数がＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ない、という推定に従ってタイルを復号することをサポートする。ビデオエンコーダ１００２は更に、方法８００のステップのうちのいずれかを実行するように構成され得る。
【０１５３】
システム１０００はまた、ビデオデコーダ１０１０を含む。ビデオデコーダ１０１０は、複数のタイルへと分割された画像データを含むＶＣＬ  ＮＡＬユニットを含んだビットストリームを受信する受信モジュール１０１１を有する。ビデオデコーダ１０１０は更に、ＶＣＬ  ＮＡＬユニット内のタイルの数を割り出し、且つＶＣＬ  ＮＡＬユニット内のタイルの数より１だけ少ないものとして、タイルに関するエントリーポイントオフセットの数を割り出す決定モジュール１０１３を有し、エントリーポイントオフセットは各々、ＶＣＬ  ＮＡＬユニット内の対応するタイルの開始位置を指し示し、エントリーポイントオフセットの数は、ビットストリーム内で明示的に信号伝達されない。ビデオデコーダ１０１０は更に、エントリーポイントオフセットの数に基づいて、タイルに関するエントリーポイントオフセットを取得する取得モジュール１０１５を有する。ビデオデコーダ１０１０は更に、エントリーポイントオフセットにてタイルを復号して再構成画像を生成する復号モジュール１０１７を有する。ビデオデコーダ１０１０は更に、方法９００のステップのうちのいずれかを実行するように構成され得る。
【０１５４】
第１のコンポーネントは、第１のコンポーネントと第２のコンポーネントとの間のライン、トレース、又は他の媒体を除く介在コンポーネントが存在しない場合に、第２のコンポーネントに直接的に結合される。第１のコンポーネントは、第１のコンポーネントと第２のコンポーネントとの間にライン、トレース、又は他の媒体以外の介在コンポーネントが存在する場合に、第２のコンポーネントに間接的に結合される。用語“結合される”及びその変形は、直接的に結合されること及び間接的に結合されることの双方を含む。用語“約”の使用は、特に断らない限り、続く数の±１０％を含む範囲を意味する。
【０１５５】
これまた理解されるべきことには、ここに記載された例示的な方法のステップは、必ずしも、記載された順序で実行される必要はなく、そのような方法のステップの順序は、単に例示的なものであると理解されるべきである。同様に、そのような方法に追加のステップが含められてもよく、また、本開示の様々な実施形態と一致する方法において、ある特定のステップが省略されたり組み合わされたりしてもよい。
【０１５６】
本開示にて幾つかの実施形態を提示したが、理解され得ることには、開示されたシステム及び方法は、本開示の精神又は範囲を逸脱することなく、数多くのその他の具体的形態でも具現化され得るものである。ここでの例は、限定的なものではなく、例示的なものと見なされるべきであり、意図することは、ここに与えられた詳細事項に限定されるべきでないということである。例えば、これらの様々な要素又はコンポーネントは、他のシステムにおいて結合あるいは統合されてもよく、あるいは、特定の機構が省略されたり、実装されなかったりしてもよい。
【０１５７】
また、様々な実施形態において個別あるいは別個であるように記載及び図示された技術、システム、サブシステム及び方法が、本開示の範囲を逸脱することなく、他のシステム、コンポーネント、技術又は方法と結合あるいは統合され得る。変形、代用及び改変のその他の例が、当業者によって解明可能であり、ここに開示された精神及び範囲を逸脱することなく為され得る。
【図１】
2022500924.tif 000012
【図２】
2022500924.tif 000013
【図３】
2022500924.tif 000014
【図４】
2022500924.tif 000015
【図５】
2022500924.tif 000016
【図６】
2022500924.tif 000017
【図７】
2022500924.tif 000018
【図８】
2022500924.tif 000019
【図９】
2022500924.tif 000020
【図１０】
2022500924.tif 000021
【手続補正書】
【提出日】令和3年5月11日(2021.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デコーダに実装される方法であって、
前記デコーダの受信器により、複数のタイルへと分割されたスライスのスライスデータを含む符号化スライスネットワーク抽象化層（ＮＡＬ）ユニットを含んだビットストリームを受信し、
前記デコーダのプロセッサにより、前記タイルに関するエントリーポイントオフセットの数を導出し、前記エントリーポイントオフセットの数は、前記スライス内の前記タイルの前記数より１だけ少なく、各エントリーポイントオフセットが、前記符号化スライスＮＡＬユニット内の２つのタイルの２つの開始位置の間のオフセットを指し示し、
前記プロセッサにより、前記エントリーポイントオフセットの前記数に基づいて、前記タイルに関する前記エントリーポイントオフセットを取得し、
前記プロセッサにより、前記エントリーポイントオフセットに基づいて前記タイルを再構成して再構成画像を生成する、
ことを有する方法。
【請求項２】
前記タイルに関する前記エントリーポイントオフセットは、前記スライスに関連付けられたスライスヘッダから取得される、請求項１に記載の方法。
【請求項３】
前記ビットストリームは、複数の符号化スライスＮＡＬユニットを含み、各符号化スライスＮＡＬユニットが、整数個のタイルへと分割された単一のスライスのスライスデータを含む、請求項１乃至２のいずれかに記載の方法。
【請求項４】
前記スライスは、前記タイルの各々に含まれる複数の符号化ツリーユニット（ＣＴＵ）として符号化され、前記スライス内の前記ＣＴＵのアドレスが、前記タイルに対応するタイルインデックスに基づいて割り当てられる、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記タイルを再構成することは、前記スライスヘッダ内で明示的に信号伝達される前記スライス内の前記ＣＴＵのアドレスに基づいて、前記ＣＴＵを再構成することを含む、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記タイルを再構成することは、
前記プロセッサにより、前記スライス内の最初のタイルのタイルインデックスに基づいて、前記スライス内の前記ＣＴＵの前記アドレスを割り出し、
前記プロセッサにより、前記ＣＴＵの前記アドレスに基づいて前記ＣＴＵを再構成する、
ことを含む、請求項１乃至４のいずれかに記載の方法。
【請求項７】
前記ビットストリームは、前記スライス内の最後のＣＴＵを指し示すフラグを含まず、前記符号化スライスＮＡＬユニットは、前記スライス内の最後のＣＴＵの直後にパディングビットを含む、請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記プロセッサにより、前記再構成画像を、再構成ビデオシーケンスの一部として、ディスプレイに向けて転送する、ことを更に有する請求項１乃至７のいずれかに記載の方法。
【請求項９】
エンコーダに実装される方法であって、
前記エンコーダのプロセッサにより、画像を少なくとも１つのスライスへと分割し、且つ該少なくとも１つのスライスを複数のタイルへと分割し、
前記プロセッサにより、前記タイルを、少なくとも１つの符号化スライスネットワーク抽象化層（ＮＡＬ）ユニットのビットストリームへと符号化し、
前記プロセッサにより、前記ビットストリーム内に、前記タイルに関するエントリーポイントオフセットを符号化し、各エントリーポイントオフセットが、前記符号化スライスＮＡＬユニット内の２つのタイルの２つの開始位置の間のオフセットを指し示し、エントリーポイントオフセットの数は、前記ビットストリーム内で明示的に信号伝達されない、
ことを有する方法。
【請求項１０】
前記エンコーダの送信器により、前記エントリーポイントオフセットの前記数を有しない前記ビットストリームを送信する、
ことを更に有する請求項９に記載の方法。
【請求項１１】
前記スライス内のＣＴＵのアドレスは前記ビットストリームから省かれ、前記スライス内の最初のタイルのタイルインデックスに基づいた、デコーダでの、前記ＣＴＵの前記アドレスの割り出しをサポートする、請求項９乃至１０のいずれかに記載の方法。
【請求項１２】
符号化されたビットストリームを含んだ非一時的な記憶媒体であって、前記ビットストリームは、複数のタイルへと分割されたスライスのスライスデータを含む符号化スライスネットワーク抽象化層（ＮＡＬ）ユニットと、前記ビットストリーム内の前記タイルに関するエントリーポイントオフセットとを有し、各エントリーポイントオフセットが、前記符号化スライスＮＡＬユニット内の２つのタイルの２つの開始位置の間のオフセットを指し示し、エントリーポイントオフセットの数は、前記ビットストリーム内で明示的に信号伝達されない、記憶媒体。
【請求項１３】
符号化されたビデオビットストリームを受信するように構成された受信器と、
前記受信器に結合されたメモリであり、命令を格納したメモリと、
前記メモリに結合されたプロセッサであり、前記メモリに格納された前記命令を実行するように構成されて、当該プロセッサが請求項１乃至１１のいずれかに記載の方法を実行するようにされる、プロセッサと、
を有する符号化装置。
【請求項１４】
請求項１乃至１１のいずれかに記載の方法を実行する処理回路を有するコーダ。
【請求項１５】
コンピュータ又はプロセッサ上で実行されるときに請求項１乃至１１のいずれかに記載の方法を実行するためのプログラムコードを有するコンピュータプログラムプロダクト。
【請求項１６】
プロセッサ、該プロセッサに結合された受信器、及び該プロセッサに結合された送信器を有し、前記プロセッサ、前記受信器、及び前記送信器は、請求項１乃至１１のいずれかに記載の方法を実行するように構成されている、
映像符号化装置。
【請求項１７】
映像符号化装置によって使用されるコンピュータプログラムプロダクトを有する非一時的なコンピュータ読み取り可能媒体であって、前記コンピュータプログラムプロダクトは、プロセッサによって実行されるときに前記映像符号化装置に請求項１乃至１１のいずれかに記載の方法を実行させるように当該非一時的なコンピュータ読み取り可能媒体に格納された、コンピュータ実行可能命令を有する、非一時的なコンピュータ読み取り可能媒体。
【請求項１８】
複数のタイルへと分割されたスライスのスライスデータを含む符号化スライスネットワーク抽象化層（ＮＡＬ）ユニットを含んだビットストリームを受信するように構成された受信ユニットと、
前記タイルに関するエントリーポイントオフセットの数を導出するように構成された導出ユニットであり、前記エントリーポイントオフセットの前記数は、前記スライス内の前記タイルの数より１だけ少なく、各エントリーポイントオフセットが、前記符号化スライスＮＡＬユニット内の２つのタイルの２つの開始位置の間のオフセットを指し示す、導出ユニットと、
前記エントリーポイントオフセットの前記数に基づいて、前記タイルに関する前記エントリーポイントオフセットを取得するように構成された取得ユニットと、
前記エントリーポイントオフセットに基づいて前記タイルを再構成して再構成画像を生成するように構成された再構成ユニットと、
を有する復号装置。
【請求項１９】
画像を少なくとも１つのスライスへと分割し、且つ該少なくとも１つのスライスを複数のタイルへと分割するように構成された分割ユニットと、
符号化ユニットであり、
前記タイルを、少なくとも１つの符号化スライスネットワーク抽象化層（ＮＡＬ）ユニットのビットストリームへと符号化し、
前記ビットストリーム内に前記タイルに関するエントリーポイントオフセットを符号化し、各エントリーポイントオフセットが、前記符号化スライスＮＡＬユニット内の２つのタイルの２つの開始位置の間のオフセットを指し示し、エントリーポイントオフセットの数は、前記ビットストリーム内で明示的に信号伝達されない、
ように構成された符号化ユニットと、
を有する符号化装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本開示は、概して映像符号化に関し、具体的には、映像符号化において圧縮を増すことを支援するために画像をスライス、タイル、及び符号化ツリーユニット（coding  tree  units；ＣＴＵ）に分割することに関する。
【国際調査報告】
2022500924.tif 000022
2022500924.tif 000023