本発明の目的は、2つの別個の画像処理回路の各々を使用して符号化ビデオストリームに符号化するために画素アレイをスライスおよびタイルに分割して、該画素アレイの画素の2つのサブセットに対して符号化しかつバッファリングするための方法、画像処理デバイス、およびシステムを提供することで、既知の方法、画像処理デバイスおよびシステムにおける問題点を克服または軽減することである。
第1の態様によれば、第1の画像処理回路に配置された第1の符号器、および第2の画像処理回路に配置された第2の符号器によって、符号化ビデオストリームに符号化するために画素アレイをスライスおよびタイルに分割するための方法が提供される。画素アレイは、第1の画像処理回路に配置された第1のバッファに画素データが格納されている画素の第1のサブセット、および、第2の画像処理回路に配置された第2のバッファに画素データが格納されている画素の第2のサブセットで構成され、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界は、画素アレイに対してある傾斜角で傾斜している。方法は、画素アレイを2つまたはそれ以上のスライスに分割することと、それぞれのスライスを2つまたはそれ以上のタイルに分割することとを含み、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される。それぞれのスライスを2つまたはそれ以上のタイルに分割する動作では、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界が2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定されることを含み、オフセットは傾斜角に基づく。
2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットでタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界を設定することであって、オフセットは傾斜角に基づく、第2の境界を設定することによって、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに第1の符号器によって符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに第2の符号器によって符号化される画素数は、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対してある傾斜角で傾斜しているときのオフセットを使用しないこととの関連で低減する。それ故に、第1の符号器に転送される必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送される必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。
スライスは、上下の垂直分離を意味する。それぞれのスライスは、他のスライスに関する画像データへのアクセスを必要とせずに符号化され得る。
タイルは、水平方向に隣り合う水平分離を意味する。それぞれのタイルは、他のタイルに関する画像データへのアクセスを必要とせずに符号化され得る。
ここで、第1の境界が傾斜角で傾斜することは、第1の境界に沿った少なくともどこかで、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が、画素アレイの画素の列または行に沿って延在しないことで、同じ画素の列における画素が画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の異なる側に位置し、同じ画素の行における画素が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の異なる側に位置することを意味する。
ここでのオフセットは、スライスの長さに沿ったオフセット、すなわち、2つの隣接するスライスにおけるタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界がスライスの長さに沿って整列しないようにされることを意味する。
オフセットが傾斜角に基づくことは、2つの隣接するスライス間のオフセットが傾斜角を考慮に入れて設定されることで、異なるオフセットが異なる傾斜角に対して設定されるようにすることを意味する。例えば、オフセットは、その後に、第1の符号器および第2の符号器によって、それぞれ、タイルの第1のサブセットおよびタイルの第2のサブセットを符号化ビデオストリームに符号化するときに、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、最小化されるまたは少なくともできるだけ低いままであるような傾斜角に基づいて設定され得る。例えば、傾斜角に基づいてオフセットを設定するための手法は、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数と、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数との和が、異なるオフセットに対して決定され、かつオフセットが最小和になるオフセットに設定されるように、反復するものであってよい。
傾斜角は、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界に沿って一定であり得る。オフセットはさらにまた、2つまたはそれ以上のスライスのそれぞれ2つの隣接するスライスに対して同じになるように設定され得る。
別の方法として、傾斜角は、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界に沿って変化し得る。画素アレイを2つまたはそれ以上のスライスに分割する動作はさらにまた、画素アレイを3つまたはそれ以上のスライスに分割することを含んでよく、それぞれのスライスを2つまたはそれ以上のタイルに分割する動作は、3つまたはそれ以上のスライスのそれぞれ2つの隣接するスライスについて、2つの隣接するスライスのそれぞれのスライスのタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界をあるオフセットで設定することを含んでよく、オフセットは、2つの隣接するスライスにおける画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の局所傾斜角に基づく。
局所傾斜角は、オフセットが設定される2つの隣接するスライスにおける第1の境界の傾斜角の尺度を意味する。
傾斜角が画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界に沿って変化するシナリオでは、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界は、一定の傾斜角ではあるが、画素アレイの別個の水平部分では別個の傾斜角で傾斜し得る。画素アレイを3つまたはそれ以上のスライスに分割する動作はさらにまた、それぞれ2つの隣接する水平部分について、2つの隣接する水平部分間の第3の境界が2つの隣接するスライス間の第4の境界と整列するように画素アレイのそれぞれの別個の水平部分を2つまたはそれ以上のスライスに分割することによって、画素アレイを4つまたはそれ以上のスライスに分割することを含んでよい。2つの隣接するスライス間の第4の境界を2つの隣接する水平部分間の第3の境界と整列させることによって、第1の境界はそれぞれの水平部分におけるスライスにおいて一定の傾斜角を有することになる。これによって、そのスライスにおける第1の境界の傾斜角に基づくそれぞれのスライスにおける第2の境界のオフセットの設定が可能になり、それによって、オフセットを有さないこととの関連で、符号化するための画像処理回路間の転送を必要とするデータ量が低減する。別の方法として、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界は湾曲し得る。
傾斜角が画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界に沿って変化するシナリオでは、2つの隣接するスライスにおける第1の境界の局所傾斜角は、2つの隣接するスライスにおける平均傾斜角として決定されてよい。
2つまたはそれ以上のスライスのそれぞれの2つまたはそれ以上のタイルの対応するタイルのサイズは、2つまたはそれ以上のスライスのそれぞれにおいて同じであってよい。換言すれば、2つまたはそれ以上のスライスにおけるタイル間の境界は、水平方向に整列してよい。
方法は、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットの画素に符号化される画素データを第1の符号器に転送することと、第1の符号器によってタイルの第1のサブセットを符号化することと、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素の画素データを第2の符号器に転送することと、第2の符号器によってタイルの第2のサブセットを符号化することとをさらに含んでよい。
第2の態様によれば、処理機能を有するデバイスによって実行されるときに第1の態様による方法を実施するための命令が格納されている、非一時的なコンピュータ可読記憶媒体が提供される。
第3の態様によれば、第1の画像処理回路に配置された第1の符号器および第2の画像処理回路に配置された第2の符号器によって、符号化ビデオストリームに符号化するために画素アレイをスライスおよびタイルに分割するための画像処理デバイスが提供される。画素アレイは、第1の画像処理回路に配置された第1のバッファに画素データが格納されている画素の第1のサブセットと、第2の画像処理回路に配置された第2のバッファに画素データが格納されている画素の第2のサブセットとで構成され、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界は、画素アレイに対してある傾斜角で傾斜している。デバイスは、画素アレイを2つまたはそれ以上のスライスに分割するように構成される第1の分割機能と、それぞれのスライスを2つまたはそれ以上のタイルに分割するように構成される第2の分割機能とを実行するように構成される回路を備え、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される。第2の分割機能は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界を、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定するようにさらに構成され、オフセットは傾斜角に基づく。
適用可能なとき、第1の態様による方法の上記のオプションの特徴は第3の態様にも適用される。過度の繰り返しを回避するために、上記を参照されたい。
第4の態様によれば、画素アレイを符号化ビデオストリームに符号化するためのシステムが提供される。画素アレイは、画素の第1のサブセットと画素の第2のサブセットとで構成され、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界は、画素アレイに対してある傾斜角で傾斜している。システムは、第1の画像処理回路と、第2の画像処理回路と、第1の画像処理回路に配置された第1の符号器と、第2の画像処理回路に配置された第2の符号器と、第1の画像処理回路に配置された第1のバッファであって、画素の第1のサブセットの画素データを格納する第1のバッファと、第2の画像処理回路に配置された第2のバッファであって、画素の第2のサブセットの画素データを格納する第2のバッファとを備える。システムは、画素アレイを2つまたはそれ以上のスライスに分割するように構成される第1の分割機能と、それぞれのスライスを2つまたはそれ以上のタイルに分割するように構成される第2の分割機能であって、それぞれのスライスの2つまたはそれ以上のタイルは、タイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される、第2の分割機能とを実行するように構成される回路をさらに備える。第2の分割機能は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界を、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定するようにさらに構成され、オフセットは傾斜角に基づく。回路は、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素の画素データを第1の符号器に転送するように構成される第1の転送機能と、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素の画素データを第2の符号器に転送するように構成される第2の転送機能とでさらに構成される。第1の符号器はタイルの第1のサブセットを符号化するように構成され、第2の符号器はタイルの第2のサブセットを符号化するように構成される。
適用可能なとき、第1の態様による方法の上記のオプションの特徴は第4の態様にも適用される。過度の繰り返しを回避するために、上記を参照されたい。
本発明の適用性のさらなる範囲は、以下に示される詳細な説明から明らかになるであろう。しかしながら、詳細な説明および具体的な例は、本発明の好ましい実施形態を示し例示としてのみ示されるが、これは本発明の範囲内のさまざまな変更および修正が当業者にはこの詳細な説明から明らかとなるからであることを、理解するべきである。
それ故に、本発明は、説明されるデバイスの特定の構成部品または説明される方法の動作には、そのようなデバイスおよび方法が変化し得るため限定されないことは理解されたい。本明細書で使用される専門用語が特定の実施形態を説明する目的のためだけのものであり、限定することを意図していないことも理解されたい。本明細書および添付の特許請求項で使用されるように、「a」、「an」、「the」、および「said」という冠詞が、別段文脈で明確に指示されない限り、要素の1つまたは複数があることを意味すると意図されていることは留意されるべきである。よって、例えば、「あるユニット(a unit)」または「そのユニット(the unit)」への言及はいくつかのデバイスなどを含み得る。さらに、「備える(comprising)」、「含む(including)」、「含有する(containing)」という語および同様の言い回しは、他の要素またはステップを排除しない。
本発明の上記のおよび他の態様について、ここで、添付の図を参照しながらより詳細に説明する。図は、限定と見なされるべきではなく、むしろ、説明および理解のために使用されている。同様の参照符号は全体を通して同様の要素を指す。
本発明についてここで、本発明の現在のところ好ましい実施形態が示されている添付の図面を参照しながら、以降でより詳しく説明する。しかしながら、本発明は、多くの異なる形態で具現化されてよく、本明細書に示される実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、完全に網羅して本発明の範囲を当業者に伝えるために提供される。
以下では、本開示による、画素アレイを符号化ビデオストリームに符号化するためのシステム100について、図1を参照しながら論述する。システム100は、画素アレイが画素の第1のサブセットおよび画素の第2のサブセットで構成され、かつ画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対してある傾斜角で傾斜しており、画素の第1のサブセットおよび画素の第2のサブセットが各々の処理回路で、例えば、並列処理を可能にするために、別個に処理されるシナリオで使用されることが意図されている。
システム100は例えば、複数の画像センサによってキャプチャされた画像フレーム同士を合成することによって構造化されるパノラマ画像フレームなどの大きな画像フレームの符号化に対して使用され得る。システム100において符号化される画素アレイはさらにまた、複数の画像センサの2つの画像センサからの画素に関連していることが考えられる。画素アレイの画素はさらにまた、典型的には、2つの別個の画像センサからの画素間の第1の境界におけるいずれの可視の影響も取り除くまたは低減するために、画素データの水平方向の補正変換、ならびに画素データの合成および混合によって処理されていることが考えられる。画素アレイのさらなる処理はまた、画素アレイがシステム100において得られる前に行われていてよい。そのような処理が2つの画像処理回路で別個に(典型的には並列に)行われる場合、画素データは2つの画像処理回路間で転送させなければならない。さらに、場合によっては、2つの画像処理回路の異なる1つで処理される画素アレイの画素データ間の第1の境界は、画素アレイに対して傾斜していてよい。第1の画像センサ410、第2の画像センサ420、第3の画像センサ430、および第4の画像センサ440のセットアップの一例が図4に示されている。第2の画像センサ420および第3の画像センサ430は、いずれの相互の傾斜もなく中央に配置されるに対し、第1の画像センサ410および第4の画像センサ440は、第2の画像センサ420および第3の画像センサ430に対してそれぞれ、角度uで傾斜させて配置される。例えば、第1の画像センサ410および第2の画像センサ420に関する画素データを含むシステム100において処理される画素アレイについて、合成に関する処理、および異なる処理回路によって処理されるべきである任意のさらなる処理の後の画素データ間の第1の境界は、画素アレイに対する角度で傾斜することになる。この傾斜は、一部は第1の画像センサ410と第2の画像センサ420との間の角度uによるものであり、一部はシステム100の処理前の変換によるものである。第1の境界の傾斜はまた、第2の画像センサ420および第3の画像センサ430からの処理された画像データに関する画素アレイにおいて、例えば、水平方向の補正変換により、画像センサ間の相互の傾斜以外の理由で生じる場合がある。
システム100はまた、例えば広角レンズを使用して、例えば、大きな画像フレームの符号化に対して使用されてよく、大きな画像フレームは2つまたはそれ以上の垂直部分に分割されている。システム100において符号化される画素アレイはさらにまた、画像フレームの2つの部分からの画素に関連することが考えられる。画素アレイの画素はさらにまた、典型的には、画素アレイがシステム100において得られる前に処理されていることが考えられる。そのような処理は、例えば、球面投影または円柱投影に関する画素データの変換を含んでよい。合成に関するそのような処理および任意のさらなる処理が2つの画像処理回路で別個に(典型的には並列に)行われている場合があるとき、この画素データは典型的には、2つの画像処理回路間の画素データの転送を必要とすることになる。さらに、場合によっては、2つの画像処理回路の異なる1つで処理された画素アレイの画素データ間の第1の境界は、例えば、球面投影または円柱投影に関する画素データの変換により、第1の境界が湾曲しているように、画素アレイに対して傾斜していてよい。第1の画像部分510、第2の画像部分520、第3の画像部分530、および第4の画像部分540への画像フレーム500の分割の一例が図5に示されている。例えば、第1の画像部分510および第2の画像部分520に関する画素データを含む、システム100において処理される画素アレイが、例えば、レンズ歪みについて調節するために画素データの水平方向の補正変換を含めて、2つの処理回路のうちの対応する1つにおいて処理されているとき、2つの画像処理回路の異なるものにおいて処理された画素アレイの画素データ間の第1の境界は、第1の境界が湾曲しているように画素アレイに対して傾斜していてよい。
システム100は、第1の画像処理回路110と、第2の画像処理回路120と、第1の画像処理回路110に配置される第1の符号器112と、第2の画像処理回路120に配置される第2の符号器122と、第1の画像処理回路110に配置される第1のバッファ114と、第2の画像処理回路120に配置される第2のバッファ124とを備える。第1のバッファ114は画素の第1のサブセットに関する画素データを格納し、第2のバッファ124は画素の第2のサブセットに関する画素データを格納する。第1の処理回路110および第2の処理回路120はそれぞれ、中央処理装置(CPU)、マイクロコントローラ、またはマイクロプロセッサなど、第1のプロセッサ116および第2のプロセッサ126をそれぞれ含んでよい。第1の符号器112および第2の符号器122は例えば、H.262、H.265、H.266、AV1、およびVP9の映像圧縮規格に従って符号化するように適応され得る。
システム100は回路130をさらに備える。回路130は、システム100の機能を実行するように構成される。回路は例えば、図3に関してさらに説明されることになる画像処理デバイス300に含まれてよい。回路130は、中央処理装置(CPU)、マイクロコントローラ、またはマイクロプロセッサなどのプロセッサ132を含んでよい。プロセッサ132はプログラムコードを実行するように構成される。プログラムコードは例えば、システム100の機能を実行するように構成されてよい。
システム100はメモリ140をさらに含んでよい。メモリ140は、バッファ、フラッシュメモリ、ハードドライブ、取り外し可能な媒体、揮発性メモリ、不揮発性メモリ、ランダムアクセスメモリ(RAM)、または別の適したデバイスのうちの1つまたは複数であってよい。例示の配置構成では、メモリ140は、長期データ格納用の不揮発性メモリと、回路130用のシステムメモリとして機能する揮発性メモリとを含む。メモリ140は、データバス上で回路130とデータを交換し得る。メモリ140と回路130との間の付属の制御線およびアドレスバスも存在し得る。データは、データバス上で第1の処理回路110と第2の処理回路120との間でさらに交換されてよい。
システム100の機能は、システム100の非一時的なコンピュータ可読媒体(例えば、メモリ140)上に格納され、かつ回路130によって(例えば、プロセッサ132を使用して)実行される実行可能な論理ルーチン(例えば、コード行、ソフトウェアプログラムなど)の形態で具現化されてよい。さらに、画像処理デバイス100の機能は、スタンドアロンのソフトウェアアプリケーションであってよい、または画像処理デバイス100に関連している追加のタスクを実行するソフトウェアアプリケーションの一部を形成してよい。説明される機能は、回路130の処理ユニット、例えば、プロセッサ132が実行するように構成される方法と見なされ得る。また、説明される機能はソフトウェアで実装され得るが、そのような機能性は、専用ハードウェアもしくはファームウェア、または、ハードウェア、ファームウェア、および/またはソフトウェアの何らかの組み合わせを介して同様に実行されてよい。
システム100は、画素の第1のサブセットおよび画素の第2のサブセットが第1の処理回路110および第2の処理回路120それぞれで別個に符号化されるシナリオで使用されることが意図されているため、できるだけ少量の画素データが第1の処理回路110と第2の処理回路120との間で共有されるのが望ましいが、これは、そのような共有が、処理を減速させるような、第1の処理回路110と第2の処理回路120との間の画素データの転送を含む同期を必要とするからである。それ故に、第1の処理回路110および第2の処理回路120のうちの1つにおいて画素データを符号化するとき、そのような符号化は好ましくは、できるだけ少量の画素データの転送しか必要としないものとするべきである。符号化がスライスのタイルで実行されることになるため、スライスおよびタイルへの分割は、それぞれのタイルが、画素の第1のサブセットおよび画素の第2のサブセットのうちの1つからのみからまたは主に1つからの画素データに関連するようにするべきであり、すなわち、いくつかのタイルは主に画素の第1のサブセットからの画素データに関連し得、いくつかのタイルは主に画素の第2のサブセットからの画素データに関連し得る。この目的に向けて、回路130は、傾斜角に基づいて画素アレイをスライスおよびタイルに分割するための分割機能を実行するように構成される。
具体的には、回路130は、画素アレイを2つまたはそれ以上のスライスに分割するように構成される第1の分割機能151を実行するように構成される。第1の分割機能151は、画素アレイを少なくとも2つのスライスに、典型的には、最高で100のスライス、好ましくは4~16のスライスに分割するように構成される。
回路130は、それぞれのスライスを2つまたはそれ以上のタイルに分割するように構成される第2の分割機能152を実行するようにさらに構成され、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器112によって符号化され、タイルの第2のサブセットは第2の符号器122によって符号化される。タイルの第1のサブセットおよびタイルの第2のサブセットは、分離していることに加えて、それぞれ連続することになり、主に、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の1つの側の画素に関連することで、タイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つは、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の1つの側の画素に関連し、これらのうちのもう1つは該第1の境界のもう1つの側の画素に関連する。第2の分割機能は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界を、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定するようにさらに構成され、オフセットは傾斜角に基づく。具体的には、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対する傾斜角vで傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送させる必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送させる必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。例えば、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数と、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数との和が、異なるオフセットに対して決定され、かつオフセットが最小和になるオフセットに設定されるような反復法による傾斜角に基づいて設定されてよい。別の方法として、傾斜角の関数が、オフセットが決定された傾斜角に対して計算可能であることから導出される解析的解法も使用されてよい。第2の分割機能152は、画素アレイをスライスごとに少なくとも2つのタイルに分割するように構成される。スライスごとのタイル数は、アプリケーション特有であってよく、例えば、スライスごとに10のタイルとすることが可能である。スライスごとのタイル数は異なるスライスで異なっていてよい。
回路130は、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素の画素データを第1の符号器に転送するように構成される第1の転送機能153を実行するように、および、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素の画素データを第2の符号器に転送するように構成される第2の転送機能154を実行するようにさらに構成される。画素データを第2のバッファから第1の符号器におよび第1のバッファから第2の符号器に転送することは、周辺部品接続(Peripheral Component Interconnect)(PCI)を介して実行されてよく、これによって、それぞれ、第1の符号器が第1のバッファにおいて直接画像データにアクセスし、かつ第2の符号器が第2の画像バッファにおいて直接画像データにアクセスするときよりもその画像データへのアクセスが減速する。
回路130は、タイルの第1のサブセットを符号化するように第1の符号器に命令するように構成される第1の命令機能155を実行するように、および、タイルの第2のサブセットを符号化するように第2の符号器に命令するように構成される第2の命令機能156を実行するようにさらに構成されてよい。
第1の符号器112はタイルの第1のサブセットを符号化するように構成され、第2の符号器114はタイルの第2のサブセットを符号化するように構成される。
傾斜角は、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界に沿って一定であってよい。オフセットはさらにまた、それぞれ2つの隣接するスライス間で同じであるように設定されてよい。
代替的には、傾斜角は、画素アレイの、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界に沿って変化し得る。第1の分割機能151は、さらにまた、画素アレイを3つまたはそれ以上のスライスに分割するように構成されてよく、第2の分割機能は、異なる2つの隣接するスライス間で異なるオフセットを使用するように構成されてよい。具体的には、2つの隣接するスライス間で使用されるオフセットは、2つの隣接するスライスにおける局所傾斜角に基づいてよい。
傾斜角が、3つまたはそれ以上のスライスのうちの2つの隣接するスライスにおいて変化することで、例えば、画素アレイの画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が湾曲するケースである場合、2つの隣接するスライスにおける局所傾斜角は、2つの隣接するスライスにおける平均傾斜角として決定されてよい。
傾斜角が、画素アレイの第1の水平部分において一定であり、また、画素アレイの第2の水平部分において一定であるが異なるように変化する場合、第1の分割機能151は、画素アレイのそれぞれの別個の水平部分を2つまたはそれ以上のスライスに分割することで、画素アレイが4つまたはそれ以上のスライスに分割されるように構成されてよい。画素アレイの同じ水平部分における2つの隣接するスライスに対する局所傾斜角は、さらにまた、その水平部分における一定の傾斜角として決定されてよい。画素アレイの水平部分の異なるものにおける2つの隣接するスライスに対する局所傾斜角は、2つの水平部分における2つの異なってはいるが一定の傾斜角の平均として決定されてよい。2つの隣接するスライス間の第4の境界を2つの隣接する水平部分間の第3の境界と整列させることによって、第1の境界はそれぞれの水平部分におけるスライスにおいて一定の傾斜角を有することになる。これによって、そのスライスにおける第1の境界の傾斜角に基づいてそれぞれのスライスにおける第2の境界のオフセットの設定が可能になることで、オフセットを有さないこととの関連で符号化するために画像処理回路間の転送を必要とするデータ量が低減する。
2つまたはそれ以上のスライスのそれぞれの2つまたはそれ以上のタイルの対応するタイルのサイズは、2つまたはそれ以上のスライスのそれぞれにおいて同じあるか異なっているかのどちらかであってよい。換言すれば、2つまたはそれ以上のスライスにおけるタイル間の境界は水平方向に整列していてもしていなくもよい。これは、異なるスライスの対応するタイルに対する異なるサイズが関連の実装に対して復号可能であるまたは復号器側にない可能性があるかどうかに左右されることになる。さらに、2つまたはそれ以上のスライスの対応するタイルの同じサイズを有することは符号化のスケジューリングを簡易にし得るが、これは、同じサイズのタイルを符号化することはかかる時間が同様であるからである。2つまたはそれ以上のスライスの対応するタイルの同じサイズを有することは、2つまたはそれ以上のスライスのうちの1つのスライスにおけるタイルを符号化するとき、2つまたはそれ以上のスライスのうちの他のスライスにおける対応するタイルに対して対応するバッファにおける画像データの使用をさらに可能にし得る。
以下では、本開示による、符号化ビデオストリームに符号化するために画素アレイをスライスおよびタイルに分割するための方法200について、図2を参照しながら論述する。方法200は、画素アレイが画素の第1のサブセットおよび画素の第2のサブセットで構成され、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対してある傾斜角で傾斜しており、画素の第1のサブセットおよび画素の第2のサブセットが、例えば並列処理を可能にするために、各々の処理回路で別個に処理されるシナリオで使用されることが意図されている。方法200は、例えば、複数の画像センサによってキャプチャされた画像フレーム同士を合成することによって構造化されるパノラマ画像フレームなどの大きな画像フレーム、または、例えば、広角レンズを使用してキャプチャされる大きな画像フレームの符号化に関して実行されてよく、ここで、大きな画像フレームは、図1、図4、および図5を参照してシステム100に関して説明されるように、2つまたはそれ以上の部分に分割されている。
方法200が、画素の第1のサブセットおよび画素の第2のサブセットが第1の処理回路110および第2の処理回路120においてそれぞれ、別個に符号化されるシナリオで実行されることが意図されているため、できるだけ少ない画素データが第1の処理回路110と第2の処理回路120との間で共有されることが望ましいが、これは、そのような共有が処理を減速させるような、第1の処理回路110と第2の処理回路120との間の画素データの転送を含む同期を必要とするからである。例えば、画素データを第2のバッファから第1の符号器におよび第1のバッファから第2の符号器に転送することは、PCIを介して実行されてよく、これによって、それぞれ、第1の符号器が第1のバッファにおいて直接画像データにアクセスし、かつ第2の符号器が第2の画像バッファにおいて直接画像データにアクセスするときよりもその画像データへのアクセスが減速する。さらに、画素データの転送を含む同期のさらなるステップを有することによって、画像処理回路のうちの1つがその他の画像処理回路の画像データの受信を待たなくてはならないことにより待ち時間が取り込まれる場合がある。それ故に、第1の処理回路110および第2の処理回路120のうちの1つにおいて画素データを符号化するとき、そのような符号化は好ましくは、できるだけ少ない画素データの転送しか必要としないようにするべきである。符号化がスライスのタイルで実行されることになるため、スライスおよびタイルへの分割は、それぞれのタイルが、画素の第1のサブセットおよび画素の第2のサブセットのうちの1つのみからのまたは主に1つからの画素データに関連するようにするべきであり、すなわち、いくつかのタイルは主に画素の第1のサブセットからの画素データに関連し得、いくつかのタイルは主に画素の第2のサブセットからの画素データに関連し得る。この目的に向けて、画素アレイは、傾斜角に基づいてスライスおよびタイルに分割される。
方法200は、画素アレイを2つまたはそれ以上のスライスに分割することS210と、それぞれのスライスを2つまたはそれ以上のタイルに分割することS220とを含み、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器で符号化される。タイルの第1のサブセットおよびタイルの第2のサブセットは、分離していることに加えて、それぞれ連続することになり、主に、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の1つの側の画素に関連することで、タイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つは、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の1つの側の画素に関連し、これらのうちのもう1つは該第1の境界のもう1つの側の画素に関連する。それぞれのスライスを2つまたはそれ以上のタイルに分割することS210は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界を、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定することを含み、オフセットは傾斜角に基づく。具体的には、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対する傾斜角vで傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送させる必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送させる必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。例えば、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数と、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数との和が、異なるオフセットに対して決定され、かつオフセットが最小和になるオフセットに設定されるような反復法による傾斜角に基づいて設定されてよい。
方法200およびそれに含まれるステップは、図1に関して説明されるようなシステム100の対応する機能としてさらに適応されてよい。
以下では、本開示による、画素アレイをスライスおよびタイルに分割するための画像処理デバイス300について、図3を参照しながら論述する。スライスおよびタイルは、第1の画像処理回路に配置された第1の符号器および第2の画像処理回路に配置された第2の符号器によって符号化ビデオストリームに符号化されることが意図されている。画像処理デバイス300は、画素アレイが画素の第1のサブセットおよび画素の第2のサブセットで構成され、かつ画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対してある傾斜角で傾斜しており、画素の第1のサブセットおよび画素の第2のサブセットが、例えば、並列処理を可能にするために別個に処理されるシナリオで使用されることが意図されている。画像処理デバイス300は、例えば、複数の画像センサによってキャプチャされた画像フレーム同士を合成することによって構造化されるパノラマ画像フレームなどの大きな画像フレーム、または、例えば、広角レンズを使用してキャプチャされる大きな画像フレームの符号化に対して使用されてよく、ここで、大きな画像フレームは、図1、図4、および図5を参照してシステム100に関して説明されるように、2つまたはそれ以上の部分に分割されている。画像処理デバイス300は、図1を参照して説明されるシステム100などのシステムに含まれてよい。
画像処理デバイス300は回路130を備える。回路130は、システム100の機能を実行するように構成される。回路130は、中央処理装置(CPU)、マイクロコントローラ、またはマイクロプロセッサなどのプロセッサ132を含んでよい。プロセッサ132はプログラムコードを実行するように構成される。プログラムコードは例えば、システム100の機能を実行するように構成されてよい。
画像処理デバイス300はメモリ140をさらに含んでよい。メモリ340は、バッファ、フラッシュメモリ、ハードドライブ、取り外し可能な媒体、揮発性メモリ、不揮発性メモリ、ランダムアクセスメモリ(RAM)、または別の適したデバイスのうちの1つまたは複数であってよい。例示の配置構成では、メモリ140は、長期データ格納用の不揮発性メモリと、回路130用のシステムメモリとして機能する揮発性メモリとを含む。メモリ140は、データバス上で回路130とデータを交換し得る。メモリ140と回路130との間の付属の制御線およびアドレスバスも存在し得る。データは、データバス上で第1の処理回路110と第2の処理回路120との間でさらに交換されてよい。
画像処理デバイス300の機能は、画像処理デバイス300の非一時的なコンピュータ可読媒体(例えば、メモリ140)上に格納され、かつ回路130によって(例えば、プロセッサ132を使用して)実行される実行可能な論理ルーチン(例えば、コード行、ソフトウェアプログラムなど)の形態で具現化されてよい。さらに、画像処理デバイス300の機能は、スタンドアロンのソフトウェアアプリケーションであってよい、または画像処理デバイス300に関連している追加のタスクを実行するソフトウェアアプリケーションの一部を形成してよい。説明される機能は、回路130の処理ユニット、例えば、プロセッサ132が実行するように構成される方法と見なされ得る。また、説明される機能はソフトウェアで実装され得るが、そのような機能性は、専用ハードウェアもしくはファームウェア、または、ハードウェア、ファームウェア、および/またはソフトウェアの何らかの組み合わせを介して同様に実行されてよい。
画像処理デバイス300は、画素の第1のサブセットおよび画素の第2のサブセットが、それぞれ、第1の処理回路110および第2の処理回路120で別個に処理されるシナリオで使用されることが意図されているため、できるだけ少ない画素データが第1の処理回路110と第2の処理回路120との間で共有されるのが望ましいが、これは、そのように共有することは、処理を減速させるような、第1の処理回路110と第2の処理回路120との間の画素データの転送を含む同期を必要とするからである。それ故に、第1の処理回路110および第2の処理回路120のうちの1つにおいて画素データを符号化するとき、そのような符号化は好ましくは、できるだけ少ない画素データの転送しか必要としないものとするべきである。符号化がスライスのタイルで実行されることになるため、スライスおよびタイルへの分割は、それぞれのタイルが、主に画素の第1のサブセットおよび画素の第2のサブセットのうちの1つからの画素データに関連するようにするべきであり、すなわち、いくつかのタイルは主に画素の第1のサブセットからの画素データに関連し得、いくつかのタイルは主に画素の第2のサブセットからの画素データに関連し得る。この目的に向けて、回路130は、傾斜角に基づいて画素アレイをスライスおよびタイルに分割するための分割機能を実行するように構成される。
具体的には、回路130は、画素アレイを2つまたはそれ以上のスライスに分割するように構成される第1の分割機能151を実行するように構成される。
回路130は、それぞれのスライスを2つまたはそれ以上のタイルに分割するように構成される第2の分割機能152を実行するようにさらに構成され、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される。タイルの第1のサブセットおよびタイルの第2のサブセットは、分離していることに加えて、それぞれ連続することになり、主に、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の1つの側の画素に関連することで、タイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つは、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界の1つの側の画素に関連し、これらのうちのもう1つは該第1の境界のもう1つの側の画素に関連する。第2の分割機能は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界を、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定するようにさらに構成され、オフセットは傾斜角に基づく。具体的には、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界が画素アレイに対する傾斜角vで傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送させる必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送させる必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。例えば、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数と、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数との和が、異なるオフセットに対して決定され、かつオフセットが最小和になるオフセットに設定されるような反復法による傾斜角に基づいて設定されてよい。
画像処理デバイス300およびそれに含まれる機能は、図1に関して説明されるようなシステム100の対応する機能としてさらに適応されてよい。
以下では、画素アレイがタイルにまたはスライスおよびタイルに分割される、図6、図7a~図7b、図8a~図8d、図9a~図9d、および図10a~図10dを参照しながら5つの例について説明する。画素アレイ、スライス、タイル、および傾斜角の絶対的なサイズおよび相対的なサイズが例示の目的のためだけに選択されているため、必ずしも任意の実際のシナリオを反映するとは限らないことは留意されたい。図6、図7a~図7b、図8a~図8d、図9a~図9d、および図10a~図10dにおいて、薄い実線でかつ数字「1」または数字「2」を含むそれぞれの正方形は、単一の画素または複数の画素を含む画素ブロックのどちらかに対応し、太字の破線のそれぞれの正方形または長方形はタイルに対応し、それぞれの水平方向の太線はスライス間の第4の境界を示す。例えば、図7aにおいて、画素アレイ700は、それぞれが9つの画素または画素ブロックで構成される8つの正方形タイルに分割されるが、画素アレイ700はいずれのスライスにも分割されない。図7bにおいて、画素アレイ700は、それぞれが3つの画素または画素ブロックである2つのスライスに高さで分割され、それぞれのスライスは3つのタイルに分割される。タイルのうちの4つは9つの画素または画素ブロックで構成され、タイルのうちの2つは18個の画素または画素ブロックで構成される。
ここで、画素アレイ600をタイルに分割する第1の例が挙げられた図6を参照する。この場合、画素の第1のサブセットおよび画素の第2のサブセットとの間の第1の境界Bは水平、すなわち、画素アレイにおける列と平行である。画素の第1のサブセットは数字「1」で示される正方形で構成され、画素の第2のサブセットは数字「2」で示される正方形で構成される。それぞれの正方形は、単一の画素または複数の画素を含む画素のブロックに対応することが可能である。画素アレイ600をタイルに分割することで、第1の処理回路および第2の処理回路においてそれぞれ、画素の第1のサブセットおよび画素の第2のサブセットを別個に符号化するときに第1の処理回路と第2の処理回路との間で転送させなければならない画素データをできるだけ少なくするために、第1の回路と第2の回路との間の画素データの転送の必要性を回避することは些細なことである。例えば、図6に示される8つのタイルへの分割は、画素データの転送を必要とすることはない。
ここで、画素アレイ700がタイルにまたはスライスおよびタイルに分割される第2の例について図7a~図7bを参照する。この場合、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bは一定の傾斜角vで傾斜している。画素の第1のサブセットは数字「1」で示される正方形で構成され、画素の第2のサブセットは数字「2」で示される正方形で構成される。画素の第1のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされた画素データを有し、画素の第2のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされた画素データを有する。それぞれの正方形は、単一の画素または複数の画素を含む画素のブロックに対応することが可能である。
図7aでは、画素アレイ700は、先行技術の方法に従って、8つのタイルに、つまり、それぞれの列に2つのタイルがある4つのタイルの列に分割されている。左から最初の2つの列における4つのタイルの画素は、第1の処理回路において第1の符号器によって符号化され、左から最後の2つの列における4つのタイルは、第2の処理回路において第2の符号器によって符号化される。図7aに見られるように、先行技術の方法に従って画素アレイ700をタイルに分割した後、9つの正方形に対応する画素の画素データは、最初の2つの列の4つのタイルを第1の符号器によって符号化するときに第2の処理回路から第1の回路に転送させなければならず、9つの正方形に対応する画素の画素データは、最後の2つの列の4つのタイルを第2の符号器によって符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、18個の正方形に対応する画素の画素データ全体は、この例において先行技術の方法を使用して2つの処理回路の間で転送させなければならない。
本開示による方法200が図7bに示されるようにこの第1の例として実行されるとき、画素アレイ700は最初2つまたはそれ以上のスライスに分割され、それぞれのスライスは次いで、2つまたはそれ以上のタイルに分割され、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される。それぞれのスライスが2つまたはそれ以上のタイルに分割されるとき、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定され、オフセットは傾斜角に基づく。図7bに対して使用される方法のスライスおよびタイルへの分割は、それぞれのスライスにおける対応するタイル(同じタイルの列におけるタイル)が同じサイズの、すなわち同じ幅のものでなければならないことをさらに必要とする。図7bに見られるように、画素アレイ700は第1のスライスS1および第2のスライスS2に分割されている。第1のスライスS1は3つのタイルT1、T2、T3に分割されており、第1のタイルT1および第2のタイルT2はタイルの第1のサブセットに属し、第3のタイルT3はタイルの第2のサブセットに属する。第1のスライスS1のタイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、すなわち、それぞれのタイルはタイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つに属しているだけである。同様に、第2のスライスS2は3つのタイルT1、T2、T3に分割されており、第1のタイルT1はタイルの第1のサブセットに属し、第2のタイルT2および第3のタイルT3はタイルの第2のサブセットに属する。第2のスライスS2のタイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、すなわち、それぞれのタイルはタイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つに属しているだけである。第1のスライスS1のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第1の境界Bの傾斜角vに基づいて互いに対してオフセットされる。オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bが画素アレイに対する傾斜角vで傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送される必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送される必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。例えば、オフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数と、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数との和が、異なるオフセットに対して決定され、かつオフセットが最小和になるオフセットに設定されるような反復法による傾斜角に基づいて設定されてよい。
図7bに見られるように、本開示による方法に従って画素アレイ700をスライスおよびタイルに分割した後、2つの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第1のサブセット、すなわち、第1のタイルT1および第2のタイルT2を符号化するときに第2の処理回路から第1の回路に転送させなければならず、2つの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第2のサブセット、すなわち、第3のタイルT3を符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、2つの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第1のサブセット、すなわち、第1のタイルT1を符号化するときに第2の処理回路から第1の回路に転送させなければならず、2つの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第2のサブセット、すなわち、第2のタイルT2および第3のタイルT3を符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、8つの正方形に対応する画素の画素データ全体は、この例において本開示の方法200を使用して2つの処理回路の間で転送させなければならない。
図7bにおけるオフセットは6つの正方形である。傾斜角が小さくなっていく場合、オフセットは小さくなっていくことが考えられ、その逆もまた同様である。
ここで、画素アレイ800がタイルにまたはスライスおよびタイルに分割される第3の例について図8a~図8dを参照する。この場合、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bは、第1の境界Bに沿って変化する傾斜角v1、v2で傾斜し、それによって、画素アレイ800の第1の水平部分において、第1の境界Bは一定である第1の傾斜角v1を有し、かつ画素アレイ800の第2の水平部分において、第1の境界Bは、一定であるが第1の傾斜角v1と異なる第2の傾斜角v2を有する。画素の第1のサブセットは数字「1」で示される正方形で構成され、画素の第2のサブセットは数字「2」で示される正方形で構成される。画素の第1のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされる画素データを有し、画素の第2のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされる画素データを有する。それぞれの正方形は、単一の画素または複数の画素を含む画素のブロックに対応することができる。
図8aにおいて、画素アレイ800は、先行技術の方法に従って、16個のタイル、つまり、それぞれの列に4つのタイルがある4つのタイルの列に分割されている。左から最初の2つの列における8つのタイルの画素は、第1の処理回路における第1の符号器によって符号化され、左から最後の2つの列における8つのタイルは第2の処理回路における第2の符号器によって符号化される。図8aに見られるように、先行技術の方法に従って、画素アレイ800をタイルに分割した後、4つの正方形に対応する画素の画素データは、最初の2つの列の8つのタイルを第1の符号器によって符号化するときに第2の処理回路から第1の回路に転送させなければならず、12の正方形に対応する画素の画素データは、最後の2つの列の8つのタイルを第2の符号器によって符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、16の正方形に対応する画素の画素データ全体は、この例において先行技術の方法を使用して2つの処理回路の間で転送させなければならない。
本開示による方法200が図8bに示されるようなこの第3の例として実行されるとき、画素アレイ800は最初、2つまたはそれ以上のスライスに分割され、それぞれのスライスは次いで、2つまたはそれ以上のタイルに分割され、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される。それぞれのスライスが2つまたはそれ以上のタイルに分割されるとき、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定され、オフセットは傾斜角v1、v2に基づく。図8bに対して使用される方法のスライスおよびタイルへの分割は、それぞれのスライスにおける対応するタイル(同じタイルの列におけるタイル)が同じサイズの、すなわち同じ幅のものでなければならないことをさらに必要とする。傾斜角v1、v2は一定であるが2つの水平部分においては異なっており、2つの水平部分はそれぞれ2つのスライスに分割される。図8bに見られるように、画素アレイ800は第1のスライスS1、第2のスライスS2、第3のスライスS3、および第4のスライスS4に分割されている。第1のスライスS1は7つのタイルT1~T7に分割されており、第1のタイルT1~第6のタイルT6は第1のスライスS1のタイルの第1のサブセットに属し、第7のタイルT7は第1のスライスS1のタイルの第2のサブセットに属する。同様に、第2のスライスS2は7つのタイルT1~T7に分割されており、第1のタイルT1~第4のタイルT4は第2のスライスS2のタイルの第1のサブセットに属し、第5のタイルT5~第7のタイルT7は第2のスライスS2のタイルの第2のサブセットに属する。第3のスライスS3は7つのタイルT1~T7に分割されており、第1のタイルT1~第3のタイルT3は第3のスライスS3のタイルの第1のサブセットに属し、第4のタイルT4~第7のタイルT7は第3のスライスS3のタイルの第2のサブセットに属する。最後に、第4のスライスS4は7つのタイルT1~T7に分割されており、第1のタイルT1および第2のタイルT2は第4のスライスS4のタイルの第1のサブセットに属し、第3のタイルT3~第7のタイルT7は第4のスライスS4のタイルの第2のサブセットに属する。スライスのそれぞれのタイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、すなわち、それぞれのタイルはタイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つに属しているだけである。第1のスライスS1のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第3のスライスS3および第4のスライスS4の水平部分における第1の境界Bの局所傾斜角v1に基づいて互いに対してオフセットされる。第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第3のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第2のスライスS2および第3のスライスS3の水平部分における第1の境界Bの局所傾斜角v1、v2に基づいて互いに対してオフセットされる。第2のスライスS2および第3のスライスS3は異なる一定の傾斜角を有する水平部分の異なるものに位置しているため、第2のスライスS2および第3のスライスS3における局所傾斜角は、第1の傾斜角v1および第2の傾斜角v2の平均として決定可能である。第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第4のスライスS4のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第3のスライスS3および第4のスライスS4の水平部分における第1の境界Bが位置する局所傾斜角v2に基づいて互いに対してオフセットされる。それぞれ2つの隣接するスライス間の対応するオフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bが画素アレイに対する変化する傾斜角v1、v2で傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送される必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送される必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。
図8bに見られるように、本開示による方法に従って画素アレイ800をスライスおよびタイルに分割した後、1つの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第1のサブセット、すなわち、第1のタイルT1~第6のタイルT6を符号化するときに第2の処理回路から第1の回路に転送させなければならず、1つの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第2のサブセット、すなわち、第7のタイルT7を符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、1つの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第1のサブセット、すなわち、第1のタイルT1~第4のタイルT4を符号化するときに第2の処理回路から第1の回路に転送させなければならず、1つの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第2のサブセット、すなわち、第5のタイルT5~第7のタイルT7を符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、1つの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第1のサブセット、すなわち、第1のタイルT1~第3のタイルT3を符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第2のサブセット、すなわち、第4のタイルT4~第7のタイルT7を符号化するときに第1の処理回路から第2の回路に転送させなければならない。最後に、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第1のサブセット、すなわち、第1のタイルT1および第2のタイルT2を符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第2のサブセット、すなわち、第3のタイルT3~第7のタイルT7を符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、5つの正方形に対応する画素の画素データ全体は、この例において本開示の方法200を使用して2つの処理回路の間で転送させなければならない。
図8bにおけるオフセットは、第1のスライスと第2のスライスとの間の2つの正方形、第2のスライスS2と第3のスライスS3との間の1つの正方形、および、第3のスライスS3と第4のスライスS4との間の1つの正方形である。傾斜角が隣接するスライスのいずれかにおいて小さくなっていく場合、オフセットはそれら2つの隣接するスライス間で小さくなっていき、その逆もまた同様である。
ここで、本開示による画素アレイ800のスライスおよびタイルへの分割が第3の例として示されている図8cを参照する。図8bに関して説明される分割とは対照的に、図8cに対して使用される方法のスライスおよびタイルへの分割では、異なるスライスにおけるタイルのサイズに対する制限はない。それ故に、タイルのスライスにおけるサイズおよび位置は独立して設定可能である。その結果として、図8cに見られるように、画素アレイ800は第1のスライス~第4のスライスS1、S2、S3、S4に分割されている。第1のスライスS1は4つのタイルに分割されており、この場合、左から最初の3つのタイルは第1のスライスS1のタイルの第1のサブセットに属し、最後のタイルは第1のスライスS1のタイルの第2のサブセットに属する。同様に、第2のスライスS2は5つのタイルに分割されており、最初の3つのタイルは第2のスライスS2のタイルの第1のサブセットに属し、最後の2つのタイルは第2のスライスS2のタイルの第2のサブセットに属する。第3のスライスS3は4つのタイルに分割されており、左から最初の2つのタイルは第3のスライスS3のタイルの第1のサブセットに属し、最後の2つのタイルは第3のスライスS3のタイルの第2のサブセットに属する。最後に、第4のスライスS4は5つのタイルに分割されており、左から最初の2つのタイルは第4のスライスS4のタイルの第1のサブセットに属し、最後の3つのタイルは第4のスライスS4のタイルの第2のサブセットに属する。スライスのそれぞれのタイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、すなわち、それぞれのタイルはタイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つに属しているだけである。第1のスライスS1のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第1のスライスS1および第2のスライスS2の水平部分における第1の境界Bの局所傾斜角v1に基づいて互いに対してオフセットされる。第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第2のスライスS2および第3のスライスS3の水平部分における第1の境界Bの局所傾斜角v1、v2に基づいて互いに対してオフセットされる。第2のスライスS2および第3のスライスS3は異なる一定の傾斜角を有する水平部分の異なるものに位置しているため、第2のスライスS2および第3のスライスS3における局所傾斜角は、第1の傾斜角v1および第2の傾斜角v2の平均として決定可能である。第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第4のスライスS4のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第3のスライスS3および第4のスライスS4の水平部分における第1の境界Bの局所傾斜角v2に基づいて互いに対してオフセットされる。それぞれ2つの隣接するスライス間の対応するオフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bが画素アレイに対する傾斜角v1もしくはv2でまたは変化する傾斜角v1、v2で傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送される必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送される必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。
図8cに見られるように、タイルのサイズが異なるスライスにおいて独立して設定可能である場合の、本開示による方法に従って画素アレイ800をスライスおよびタイルに分割した後、1つの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第1のサブセット、すなわち、第1のタイル~第3のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、1つの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第2のサブセット、すなわち、第4のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、1つの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第1のサブセット、すなわち、第1のタイル~第3のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、1つの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第2のサブセット、すなわち、第4のタイルおよび第5のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、1つの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第1のサブセット、すなわち、第1のタイルおよび第2のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第2のサブセット、すなわち、第3のタイルおよび第4のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。最後に、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第1のサブセット、すなわち、第1のタイルおよび第2のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第2のサブセット、すなわち、第3のタイル~第5のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、5つの正方形に対応する画素の画素データ全体は、この例において本開示の方法200を使用して2つの処理回路の間で転送させなければならない。
図8cにおけるオフセットは、第1のスライスS1と第2のスライスS2との間の2つの正方形、第2のスライスS2と第3のスライスS3との間の1つの正方形、および、第3のスライスS3と第4のスライスS4との間の1つの正方形である。傾斜角が隣接するスライスのいずれかにおいて小さくなっていく場合、オフセットはそれらの隣接するスライス間で小さくなっていき、その逆もまた同様である。
図8cに関して異なるスライスにおけるタイルのサイズに対する制限がない場合でも、それぞれのスライスが2つ以上のタイルに分割されていることは留意されたい。別の方法として、それぞれのスライスはまた、第1の境界のそれぞれの側に1つとなるように、2つのタイルに分割されている。しかしながら、スライスを、タイルが同様のサイズである2つ以上のタイルに分割することは、符号化のスケジューリングを簡易にし得るが、これは、同様のサイズのタイルを符号化することはかかる時間が同様であるからである。また、これによって、2つまたはそれ以上のスライスの他のスライスにおける対応するタイルに対する対応するバッファにおける画像データの使用が可能になる。
さらに別の方法として、図8dは、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bにおけるタイルを除く、それぞれのスライスにおける対応するタイル(同じタイルの列におけるタイル)は同じサイズ、すなわち同じ幅のものでなければならないことが必要とされる場合の画素アレイ800のスライスおよびタイルへの分割を示す。見られるように、スライスにおける大部分の対応するタイルは同じサイズのものである。しかしながら、第2のスライスS2および第4のスライスS4における画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bにおけるタイルの幅は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界がこれらの各々の隣接するスライスに対するオフセットで配置されるように適応されかつ配置されることで、先行技術と比較して2つの処理回路間で転送させなければならない画素の画素データの総量を低減するようにする。具体的には、第1のスライスS1と第2のスライスS2との間の第2の境界のオフセットは2つの正方形であり、第2のスライスS2と第3のスライスS3との間の第2の境界のオフセットは1つの正方形であり、第3のスライスS3と第4のスライスS4との間の第2の境界のオフセットは1つの正方形である。
ここで、画素アレイ900がタイルにまたはスライスおよびタイルに分割される第4の例について図9a~図9dを参照する。この場合、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bは、第1の境界Bが湾曲するように、第1の境界Bに沿って変化する傾斜角で傾斜する。画素の第1のサブセットは数字「1」で示される正方形で構成され、画素の第2のサブセットは数字「2」で示される正方形で構成される。画素の第1のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされた画素データを有し、画素の第2のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされた画素データを有する。それぞれの正方形は、単一の画素または複数の画素を含む画素のブロックに対応することが可能である。
図8a~図8dと比較すると、図9a~図9dにおける画素アレイ900の画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bはまた、変化する傾斜角で傾斜しているが、画素アレイ900の2つの水平部分において一定の傾斜角ではなく、むしろ湾曲している。しかしながら、第4の例は、図9b~図9dの最初の2つのスライスS1、S2における湾曲した第1の境界Bの平均傾斜角が、図8b~図8dの最初の2つのスライスS1、S2における一定の傾斜角に近く、図9b~図9dの最後の2つのスライスS3、S4における湾曲した第1の境界Bが、図8b~図8dの最後の2つのスライスS3、S4における一定の傾斜角に近くなるように設計されているため、先行技術の方法に基づくタイルへの、および本開示による方法に基づくスライスおよびタイルへの分割は、それぞれ、図8a~図8dのように図9a~図9dのそれぞれで同じである。それぞれのスライスにおけるそれぞれのタイルの、タイルの第1のサブセットおよびタイルの第2のサブセットの各々における場所は、それぞれ、図8b、図8c、および図8dのように図9b、図9c、および図9dでも同じである。同様に、図9aに対して先行技術の方法を使用して2つの処理回路間で転送させなければならない画素の画素データの総量は、図8aに対するのと同じであり、図9b、図9c、および図9dに対して本開示による方法200を使用することは、それぞれ、図8b、図8c、および図8dに対するのと同じである。
ここで、画素アレイ1000がタイルにまたはスライスおよびタイルに分割される第5の例について図10a~図10dを参照する。この場合、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bは、第1の境界Bが湾曲するように、第1の境界Bに沿って変化する傾斜角で傾斜する。画素の第1のサブセットは数字「1」で示される正方形で構成され、画素の第2のサブセットは数字「2」で示される正方形で構成される。画素の第1のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされた画素データを有し、画素の第2のサブセットは第1の処理回路における第1のバッファにおいてバッファリングされた画素データを有する。それぞれの正方形は、単一の画素または複数の画素を含む画素のブロックに対応することが可能である。
図10aにおいて、画素アレイ1000は、先行技術の方法に従って、16個のタイル、つまり、それぞれの列に4つのタイルがある4つのタイルの列に分割されている。左から最初の2つの列における8つのタイルの画素は、第1の処理回路における第1の符号器によって符号化され、左から最後の2つの列における8つのタイルは第2の処理回路における第2の符号器によって符号化される。図10aに見られるように、先行技術の方法に従って、画素アレイ1000をタイルに分割した後、6つの正方形に対応する画素の画素データは、最初の2つの列の8つのタイルを第1の符号器によって符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、最後の2つの列の8つのタイルを第2の符号器によって符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、6つの正方形に対応する画素の画素データ全体は、この例において先行技術の方法を使用して2つの処理回路の間で転送させなければならない。
本開示による方法200が図10bに示されるようにこの第3の例として実行されるとき、画素アレイ1000は最初、2つまたはそれ以上のスライスに分割され、それぞれのスライスは次いで、2つまたはそれ以上のタイルに分割され、それぞれのスライスの2つまたはそれ以上のタイルはタイルの第1のサブセットおよびタイルの第2のサブセットで構成され、タイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、タイルの第1のサブセットは第1の符号器によって符号化され、タイルの第2のサブセットは第2の符号器によって符号化される。それぞれのスライスが2つまたはそれ以上のタイルに分割されるとき、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、2つまたはそれ以上のスライスの2つの隣接するスライス間のオフセットで設定され、オフセットは傾斜角に基づく。図10bに対して使用される方法のスライスおよびタイルへの分割は、それぞれのスライスにおける対応するタイル(同じタイルの列におけるタイル)が同じサイズの、すなわち同じ幅のものでなければならないことをさらに必要とする。傾斜角は、第1の境界Bが湾曲するように第1の境界Bに沿って変化する。図10bに見られるように、画素アレイ1000は第1のスライス~第4のスライスS1、S2、S3、およびS4に分割されている。第1のスライスS1は5つのタイルT1~T5に分割されており、第1のタイルT1~第3のタイルT3は第1のスライスS1のタイルの第1のサブセットに属し、第4のタイルT4および第5のタイルT5は第1のスライスS1のタイルの第2のサブセットに属する。同様に、第2のスライスS2は5つのタイルT1~T5に分割されており、第1のタイルT1および第2のタイルT2は第2のスライスS2のタイルの第1のサブセットに属し、第3のタイルT3~第5のタイルT5は第2のスライスS2のタイルの第2のサブセットに属する。第3のスライスS3は5つのタイルT1~T5に分割されており、第1のタイルT1および第2のタイルT2は第3のスライスS3のタイルの第1のサブセットに属し、第3のタイルT3~第5のタイルT5は第3のスライスS3のタイルの第2のサブセットに属する。最後に、第4のスライスS4は5つのタイルT1~T5に分割されており、第1のタイルT1~第3のタイルT3は第4のスライスS4のタイルの第1のサブセットに属し、第4のタイルT4および第5のタイルT5は第4のスライスS4のタイルの第2のサブセットに属する。スライスのそれぞれのタイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、すなわち、それぞれのタイルはタイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つに属しているだけである。第1のスライスS1のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第1のスライスS1および第2のスライスS2の水平部分における第1の境界Bの局所傾斜角に基づいて互いに対してオフセットされる。第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第2のスライスS2および第3のスライスS3における第1の境界Bの局所傾斜角に基づいて互いに対してオフセットされる。第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第4のスライスS4のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第3のスライスS3および第4のスライスS4における第1の境界Bの局所傾斜角に基づいて互いに対してオフセットされる。それぞれ2つの隣接するスライスにおける局所傾斜角は、その隣接するスライスの対において湾曲した第1の境界Bの部分の傾斜角の平均として決定可能である。それぞれ2つの隣接するスライス間の対応するオフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bが画素アレイに対する変化する傾斜角で傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送される必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送される必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。
図10bに見られるように、本開示による方法に従って画素アレイ1000をスライスおよびタイルに分割した後、ゼロの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第1のサブセット、すなわち、第1のタイルT1~第3のタイルT3を符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第2のサブセット、すなわち、第4のタイルT4および第5のタイルT5を符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、ゼロの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第1のサブセット、すなわち、第1のタイルT1および第2のタイルT2を符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第2のサブセット、すなわち、第3のタイルT3~第5のタイルT5を符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、ゼロの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第1のサブセット、すなわち、第1のタイルT1~第2のタイルT2を符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第2のサブセット、すなわち、第3のタイルT3~第5のタイルT5を符号化するときに第1の処理回路から第2の回路に転送させなければならない。最後に、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第1のサブセット、すなわち、第1のタイルT1~第3のタイルT3を符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第2のサブセット、すなわち、第4のタイルT4および第5のタイルT5を符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、画素の画素データ全体では、この例において本開示の方法200を使用して2つの処理回路の間で転送させなければならないものはない。
図10bにおけるオフセットは、第1のスライスS1と第2のスライスS2との間の1つの正方形、第2のスライスS2と第3のスライスS3との間のゼロの正方形、および、第3のスライスS3と第4のスライスS4との間の1つの正方形である。傾斜角が隣接するスライスのいずれかにおいて小さくなっていく場合、オフセットはそれらの隣接するスライス間で小さくなっていき、その逆もまた同様である。
ここで、本開示による画素アレイ1000のスライスおよびタイルへの分割が第3の例として示されている図10cを参照する。図10bに関して説明される分割とは対照的に、図10cに対して使用される方法のスライスおよびタイルへの分割について、それぞれのスライスにおける対応するタイルで、異なるスライスにおけるタイルのサイズに対する制限はない。それ故に、タイルのスライスにおけるサイズおよび位置は独立して設定可能である。その結果として、図10cに見られるように、画素アレイ1000は第1のスライス~第4のスライスS1、S2、S3、S4に分割されている。第1のスライスS1は4つのタイルに分割されており、この場合、左から最初の2つのタイルは第1のスライスS1のタイルの第1のサブセットに属し、最後の2つのタイルは第1のスライスS1のタイルの第2のサブセットに属する。第2のスライスS2は5つのタイルに分割されており、最初の2つのタイルは第2のスライスS2のタイルの第1のサブセットに属し、最後の3つのタイルは第2のスライスS2のタイルの第2のサブセットに属する。第3のスライスS3は5つのタイルに分割されており、左から最初の2つのタイルは第3のスライスS3のタイルの第1のサブセットに属し、最後の3つのタイルは第3のスライスS3のタイルの第2のサブセットに属する。最後に、第4のスライスS4は4つのタイルに分割されており、左から最初の2つのタイルは第4のスライスS4のタイルの第1のサブセットに属し、最後の2つのタイルは第4のスライスS4のタイルの第2のサブセットに属する。スライスのそれぞれのタイルの第1のサブセットおよびタイルの第2のサブセットは分離しており、すなわち、それぞれのタイルはタイルの第1のサブセットおよびタイルの第2のサブセットのうちの1つに属しているだけである。第1のスライスS1のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第1のスライスS1および第2のスライスS2の水平部分における第1の境界Bの局所傾斜角に基づいて互いに対してオフセットされる。第2のスライスS2のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の境界は、第2のスライスS2および第3のスライスS3における第1の境界Bの局所傾斜角に基づいて互いに対してオフセットされる。第3のスライスS3のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界、および第4のスライスS4のタイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界は、第3のスライスS3および第4のスライスS4における第1の境界Bの局所傾斜角に基づいて互いに対してオフセットされる。それぞれ2つの隣接するスライスにおける局所傾斜角は、その隣接するスライスの対において湾曲した第1の境界Bの部分の傾斜角の平均として決定可能である。それぞれ2つの隣接するスライス間の対応するオフセットは、画素データが第2のバッファに格納されているそれぞれのスライスのタイルの第1のサブセットに符号化される画素数、それに加えて、画素データが第1のバッファに格納されているそれぞれのスライスのタイルの第2のサブセットに符号化される画素数が、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bが画素アレイに対する変化する傾斜角で傾斜するときのオフセットを使用しないこととの関連で低減するように選択される。それ故に、第1の符号器に転送される必要がある第2のバッファに格納された画素データ量、および第2の符号器に転送される必要がある第1のバッファに格納された画素データ量は、オフセットを使用しないこととの関連で低減する。
図10cに見られるように、タイルのサイズが異なるスライスにおいて独立して設定可能である場合の、本開示による方法に従って画素アレイ1000をスライスおよびタイルに分割した後、ゼロの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第1のサブセット、すなわち、第1のタイルおよび第2のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第1のスライスS1のタイルの第2のサブセット、すなわち、第3のタイルおよび第4のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、ゼロの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第1のサブセット、すなわち、第1のタイルおよび第2のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第2のスライスS2のタイルの第2のサブセット、すなわち、第3のタイル~第5のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。さらに、ゼロの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第1のサブセット、すなわち、第1のタイルおよび第2のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第3のスライスS3のタイルの第2のサブセット、すなわち、第3のタイル~第5のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。最後に、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第1のサブセット、すなわち、第1のタイルおよび第2のタイルを符号化するときに第2の処理回路から第1の回路に転送させなければならず、ゼロの正方形に対応する画素の画素データは、第4のスライスS4のタイルの第2のサブセット、すなわち、第3のタイルおよび第4のタイルを符号化するときに第1の処理回路から第2の回路に転送させなければならない。それ故に、画素データ全体では、この例において本開示の方法200を使用して2つの処理回路の間で転送させなければならないものはない。
図10cにおけるオフセットは、第1のスライスS1と第2のスライスS2との間の1つの正方形、第2のスライスS2と第3のスライスS3との間のゼロの正方形、および、第3のスライスS3と第4のスライスS4との間の1つの正方形である。傾斜角が隣接するスライスのいずれかにおいて小さくなっていく場合、オフセットはそれらの隣接するスライス間で小さくなっていき、その逆もまた同様である。
さらに別の方法として、図10dは、画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bにおけるタイルを除く、それぞれのスライスにおける対応するタイル(同じタイルの列におけるタイル)は同じサイズ、すなわち同じ幅のものでなければならないことが必要とされる場合の画素アレイ1000のスライスおよびタイルへの分割を示す。見られるように、スライスにおける大部分の対応するタイルは同じサイズのものである。しかしながら、第2のスライスS2および第3のスライスS3における画素の第1のサブセットと画素の第2のサブセットとの間の第1の境界Bにおけるタイルの幅は、タイルの第1のサブセットとタイルの第2のサブセットとの間の第2の境界がそれらの各々の隣接するスライスに対するオフセットで配置されるように適応されかつ配置されていることで、先行技術と比較して2つの処理回路間で転送させなければならない画素の画素データ量全体を低減するようにする。具体的には、第1のスライスS1と第2のスライスS2との間の第2の境界のオフセットは1つの正方形であり、第2のスライスS2と第3のスライスS3との間の第2の境界のオフセットはゼロの正方形であり、第3のスライスS3と第4のスライスS4との間の第2の境界のオフセットは1つの正方形である。
本発明が上述される実施形態に限定されないことを、当業者は理解している。それどころか、添付の特許請求の範囲内の多くの修正および変形が可能である。そのような修正および変形は、図面、本開示、および添付の特許請求項を検討することで、特許請求された発明を実践する際に当業者によって理解かつ達成可能である。
例えば、いくつかの画素/画素ブロックにおいて等しいサイズ、すなわち、等しい高さを有するスライスに関する例全てについて説明されている。しかしながら、異なるサイズのスライスが使用されてよい。例えば、第1の境界に沿った変化する傾斜角について、異なるサイズのスライスへの分割は、画素アレイの異なっている水平部分において有益であり得る。