(57)【要約】ビデオ信号の符号化または復号化は、ビデオシーケンス内の現在のフレームの前のフレームのうちの少なくとも一部の第１のパーティショニングを決定することを含む。第１のパーティショニングから第１の領域のうちの少なくとも１つの予測サブ領域を予測する動きベクトルを使用して第１のパーティショニングが第２のパーティショニングに変更される。第２のパーティショニングを使用して現在のフレームのうちの現在の領域が符号化または復号化される。現在の領域は、第１の領域と同じ位置にあってもよい。この技術では、毎回フレーム全体を再区分化する必要がなくなり、かつ矩形形状のブロックパーティショニングと、マスクやその他のパーティショニング手法を使用したパーティショニングとの両方で使用することができる。
2019500766.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスを使用してビデオ信号を符号化または復号化する方法であって、前記ビデオ信号は、ビデオシーケンスを定義する複数のフレームを含み、前記複数のフレームの各々は、複数の画素を有する少なくとも１つの領域に分割され、
前記ビデオシーケンス内の現在のフレームの前のフレームについて、そのフレームのうちの第１の領域の第１のパーティショニングを決定するステップであって、前記第１のパーティショニングが前記第１の領域のうちの１つまたは複数の予測サブ領域を定義するステップと、
前記現在のフレームの前のフレームのうちの前記第１の領域の第１のパーティショニングについての予測サブ領域を予測する動きベクトルを決定するステップと、
前記動きベクトルを使用して前記第１のパーティショニングを変更して第２のパーティショニングを提供するステップと、
前記第２のパーティショニングを使用して前記現在のフレームのうちの現在の領域を符号化または復号化するステップと
を含む方法。
【請求項２】
前記現在のフレームのうちの前記現在の領域、および前記現在のフレームの前のフレームのうちの前記第１の領域は、同じ位置にあるマクロブロックなどのブロックである、請求項１に記載の方法。
【請求項３】
前記第１のパーティショニングは、前記第１の領域のうちの２つの予測サブ領域を定義し、
前記第２のパーティショニングは、２つの更新された予測サブ領域を含み、前記２つの更新された予測サブ領域間の境界は、前記第１の領域内で前記動きベクトルによって移動された前記第１のパーティショニングの前記２つの予測サブ領域間の境界である、請求項１または請求項２に記載の方法。
【請求項４】
前記動きベクトルは、前記第１の領域の前記２つの予測サブ領域のうちの１つのみの動きベクトルである、請求項３に記載の方法。
【請求項５】
前記動きベクトルは、前記第１の領域の前記２つの予測サブ領域の各々の動きベクトルを組み合わせた平均の動きベクトルである、請求項３に記載の方法。
【請求項６】
各フレームは複数のブロックに分割され、前記第１の領域は、前記現在のフレームの前のフレームのうちの第１のブロックであり、前記現在の領域は、前記現在のフレームのうちの現在のブロックであり、前記第１のパーティショニングの変更は、
前記動きベクトルを用いて前記第１のブロックの外周部を前記フレーム内の更新された位置に調整するステップであって、前記更新された位置が、前記第１のブロックに隣接する前記フレームの複数のブロックのうちの一部と重なるステップと、
前記更新された位置の外周部内で前記複数のブロックのうちの一部の頂点を前記動きベクトルによって移動させて前記第１のパーティショニングを前記第２のパーティショニングに変更するステップと
を含む、請求項１に記載の方法。
【請求項７】
前記第１のブロックは単一の予測サブ領域によって定義され、前記更新された位置内の前記第２のパーティショニングは複数の予測サブ領域を含む、請求項６に記載の方法。
【請求項８】
前記更新された位置は、前記第１のブロックの一部に加えて、少なくとも３つのブロックの一部と重なり、前記動きベクトルは、前記更新された位置によって包囲される最大の動きベクトルである、請求項６または請求項７に記載の方法。
【請求項９】
前記更新された位置は、前記第１のブロックの一部に加えて、少なくとも３つのブロックの一部と重なり、前記動きベクトルは、前記更新された位置によって包囲される動きベクトルの平均である、請求項６または請求項７に記載の方法。
【請求項１０】
前記第１のパーティショニングは、前記第１の領域の４つの予測サブ領域を含み、前記第１のパーティショニングの変更は、前記４つの予測サブ領域間の交点を前記動きベクトルによって移動させて前記第１のパーティショニングを前記第２のパーティショニングに変更するステップを含む、請求項１乃至９のいずれか１項に記載の方法。
【請求項１１】
前記第２のパーティショニングの使用は、前記第２のパーティショニングによる前記現在のフレームのうちの前記現在の領域の各予測サブ領域について、
前記予測サブ領域のための予測領域を生成するステップと、
前記予測領域を用いて残差領域を算出するステップと、
符号化されたビットストリーム内で前記残差領域を符号化するステップと
を含む、請求項１乃至１０のいずれか１項に記載の方法。
【請求項１２】
前記第１のパーティショニングを変更するのに使用される前記動きベクトルを、符号化されたビットストリーム内で符号化器から復号化器に伝達するステップをさらに含む、請求項１乃至１１のいずれか１項に記載の方法。
【請求項１３】
ビデオ信号を符号化または復号化するための装置であって、前記ビデオ信号は、ビデオシーケンスを定義する複数のフレームを含み、各フレームは少なくとも１つの領域に分割され、各領域は複数の画素を有し、前記装置は、
前記ビデオシーケンス内の現在のフレームの前のフレームについて、そのフレームのうちの第１の領域の第１のパーティショニングを決定し、前記第１のパーティショニングは前記第１の領域のうちの１つまたは複数の予測サブ領域を定義し、
前記現在のフレームの前のフレームのうちの前記第１の領域の第１のパーティショニングについての予測サブ領域を予測する動きベクトルを決定し、
前記動きベクトルを使用して前記第１のパーティショニングを変更して第２のパーティショニングを提供し、
前記第２のパーティショニングを使用して前記現在のフレームのうちの現在の領域を符号化または復号化する
ように構成されている、装置。
【請求項１４】
前記第１のパーティショニングは、マスクを使用して前記第１の領域の２つの予測サブ領域を定義し、前記２つの予測サブ領域は前記マスク内の境界の両側にあり、
前記第１のパーティショニングの変更は、前記動きベクトルによって前記マスク内で境界を移動させて、更新された境界を生成し、前記第２のパーティショニングが前記更新された境界の両側に２つの更新された予測サブ領域を含むようにすることを含む、請求項１３に記載の装置。
【請求項１５】
前記装置は、
前記フレーム内で前記第１の領域の境界を識別する位置を、前記第１の領域の少なくとも１つの予測サブ領域を予測する前記動きベクトルによって移動させて新たな領域を識別し、
前記位置において新たな領域の境界内に包囲される前記第１のパーティショニングを、前記新たな領域と少なくとも部分的に重なる予測サブ領域の少なくとも１つの動きベクトルによって修正する
ようにさらに構成されている、請求項１３または１４に記載の装置。
【請求項１６】
前記新たな領域と少なくとも部分的に重なる予測サブ領域の前記少なくとも１つの動きベクトルは、前記第１の領域の少なくとも１つの予測サブ領域を予測する前記動きベクトルである、請求項１５に記載の装置。
【請求項１７】
前記新たな領域と少なくとも部分的に重なる予測サブ領域の前記少なくとも１つの動きベクトルは、前記新たな領域と少なくとも部分的に重なる少なくとも２つの予測サブ領域の個々の動きベクトルの組み合わせである、請求項１５に記載の装置。
【請求項１８】
命令は、前記第２のパーティショニングによる前記現在の領域の各予測サブ領域について、
前記現在の領域の前記予測サブ領域に関連する残差のサブ領域を復号化することと、
前記予測サブ領域のための予測領域を生成することと、
前記残差のサブ領域を前記予測領域と組み合わせることと
により前記第２のパーティショニングを使用する命令をさらに含む、請求項１３乃至１７のいずれか１項に記載の装置。
【請求項１９】
前記動きベクトルは、前記第１の領域の少なくとも２つの予測サブ領域の個々の動きベクトルの組み合わせである、請求項１３乃至１８のいずれか１項に記載の装置。
【請求項２０】
ビデオ信号を符号化するための装置であって、前記ビデオ信号は、ビデオシーケンスを定義する複数のフレームを含み、各フレームは複数のブロックに区分され、各ブロックは複数の画素を有し、前記装置は、
前記ビデオシーケンス内の現在のフレームの前のフレームのうちの第１のブロックの第１のパーティショニングを決定し、
前記フレーム内で前記第１のブロックの境界を識別する位置を、前記第１のブロックの予測サブブロックを予測する動きベクトルによって移動させることにより第１のパーティショニングを第２のパーティショニングに変更して新たなブロックを識別し、前記位置において前記新たなブロックの境界内に包囲される前記第１のパーティショニングを、前記新たなブロックと少なくとも部分的に重なる前記フレームの予測サブブロックの動きベクトルによって修正し、
前記第２のパーティショニングを使用して前記現在のフレームのうち、前記第１のブロックと同じ位置にある現在のブロックを符号化する
ように構成されている、装置。
【請求項２１】
請求項１乃至１２のいずれか１項に記載のステップを実行するように構成された装置。
【請求項２２】
プロセッサと、命令を格納する非一時的メモリとを備えた装置であって、前記命令は、前記プロセッサに請求項１乃至１２のいずれか１項に記載のステップを実施させるか、あるいは請求項１３乃至２０のいずれか１項に記載の装置を実行に移させる、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピューティングデバイスを使用したビデオ信号の符号化または復号化に関する。
【背景技術】
【０００２】
デジタルビデオストリームは、典型的には、一連のフレームすなわち静止画像を使用して映像を表現する。各フレームは、色、輝度、または画素の他の属性の値を示す情報を含み得る多数のブロックを含む。ビデオストリーム内のデータ量は大きく、ビデオの送信および記憶は、かなりのコンピューティングリソースまたは通信リソースを使用する。ビデオデータに含まれる大量のデータにより、送信および記憶のために高性能圧縮が必要とされる。ブロックベースのコーデックでは、これは動きベクトルを使用する予測を含む予測技術を含む。
【発明の概要】
【０００３】
本開示は概して、１つまたは複数の動きベクトルによって調整される前のフレームのパーティショニングに基づいて現在のフレームのパーティショニングを可能にする直前のフレームの動きベクトルパーティショニング（motion vector partitioning）を使用して、ビデオストリームデータなどのビジュアルデータを符号化および復号化することに関する。概して言えば、新たなブロックの動きベクトルによってカバーされる動きベクトルの１つによって前のフレームのパーティションをシフトすることによって、ブロックが予測のための別の領域に区分される。
【０００４】
本明細書におけるビデオ信号を符号化または復号化する方法の１つの態様は、ビデオシーケンス内の現在のフレームの前のフレームのうちの少なくとも一部の第１のパーティショニングを決定することを含む。ビデオ信号は、ビデオシーケンスを定義する複数のフレームを含み、フレームは、複数の画素を有する少なくとも１つの領域に区分される。その方法はまた、第１のパーティショニングから第１の領域のうちの少なくとも１つの予測サブ領域を予測する動きベクトルを使用して第１のパーティショニングを第２のパーティショニングに変更すること、および第２のパーティショニングを使用して現在のフレームのうちの現在の領域を符号化または復号化することを含む。
【０００５】
本明細書で説明される一態様の装置は、プロセッサと、命令を格納する非一時的メモリとを備え、命令は、ビデオシーケンス内の現在のフレームの前のフレームのうちの少なくとも一部の第１のパーティショニングを決定することと、第１のパーティショニングから第１の領域のうちの少なくとも１つの予測サブ領域を予測する動きベクトルを使用して第１のパーティショニングを第２のパーティショニングに変更することと、第２のパーティショニングを使用して現在のフレームのうちの現在の領域を符号化または復号化することとを含む方法をプロセッサに実行させる。
【０００６】
本明細書における別の態様の装置は、ビデオ信号を符号化する装置であり、ビデオ信号は、ビデオシーケンスを定義する複数のフレームを含み、各フレームは複数のブロックに区分され、各ブロックは複数の画素を有する。その装置は、プロセッサと、命令を格納する非一時的メモリとを備え、その命令は、ビデオシーケンス内の現在のフレームの前のフレームのうちの少なくとも一部の第１のパーティショニングを決定することと、フレーム内で第１のブロックの境界を識別する位置を、第１のブロックの予測サブブロックを予測する動きベクトルによって移動させることにより第１のパーティショニングを第２のパーティショニングに変更して新たなブロックを識別することと、第１のパーティショニングによって定義される第１のブロックのうちの少なくとも１つの予測サブブロックを予測する動きベクトルを用いて、その位置において新たなブロックの境界内に包囲される第１のパーティショニングを、新たなブロックと少なくとも部分的に重なるフレームの予測サブブロックの動きベクトルによって修正することと、第２のパーティショニングを用いて現在のフレームのうち、第１のブロックと同じ位置にある現在のブロックを符号化することをプロセッサに実行させる。
【０００７】
本発明は、コンピュータデバイスを使用してビデオ信号を符号化または復号化する方法または装置の観点においても理解することができ、ビデオ信号は、ビデオシーケンスを定義する複数のフレームを含み、フレームは、複数の画素を有する少なくとも１つの領域に区分され、その方法は、ビデオシーケンス内の現在のフレームのうちの現在の領域の予測のために参照フレームのうちの少なくとも一部の第１のパーティショニングを決定するステップと、第１のパーティショニングから現在のフレームと隣接するかあるいは異なる現在のフレームのうちの第１の領域の予測サブ領域を少なくとも予測する動きベクトルを用いて第１のパーティショニングを第２のパーティショニングに細分化するステップと、第２のパーティショニングを使用して現在のフレームのうちの現在の領域を符号化または復号化するステップとを含む。第１のパーティショニングは、典型的には、第１の領域の１つまたは複数の予測サブ領域と重なり、１つまたは複数の予測サブ領域をカバーし、または１つまたは複数の予測サブ領域を含む。
【０００８】
本開示のこれらおよび他の態様は、以下の詳細な説明、添付の特許請求の範囲および添付の図面においてさらに詳細に記載される。
本明細書の記載は、以下に記載される添付の図面を参照し、いくつかの図面に亘って同様の参照番号が同様の構成を参照している。
【図面の簡単な説明】
【０００９】
【図１】ビデオ符号化および復号化システムの概略図。
【図２】送信局または受信局を具体化することができるコンピューティングデバイスの一例のブロック図。
【図３】符号化され、続いて復号化されるビデオストリームの図。
【図４】本明細書の教示の一態様によるビデオ圧縮システムのブロック図。
【図５】本明細書の教示の別の態様によるビデオ圧縮解除システムのブロック図。
【図６】直前のフレームの動きベクトルパーティショニングを使用して領域を符号化または復号化するプロセスのフローチャート図。
【図７Ａ−７Ｃ】図６の処理を説明するために使用される一例を示す図。
【図８Ａ−８Ｂ】図６の処理を説明するために使用される他の例を示す図。
【発明を実施するための形態】
【００１０】
ビデオストリームは、ビデオストリームを送信または格納するのに必要な帯域幅を低減するために、様々な技術によって圧縮され得る。ビデオストリームは、圧縮を含むビットストリームに符号化され、その後、復号化器に送信され、復号化器はビデオストリームを復号化または圧縮解除して、視聴または後処理するために準備する。ビデオストリームの符号化は、ビデオ品質とビットストリームサイズとの間のトレードオフを行うパラメータを含むことができ、復号化されたビデオストリームの知覚される品質を高めるようにすると、ビットストリームを送信または格納するのに必要なビット数が増加する。
【００１１】
優れた圧縮性能を達成する１つの技法は、空間的補償予測および／または動き補償予測によってビデオ信号の空間的および時間的相関を利用する。インター予測は、例えば、動きベクトルを使用して、符号化されるべき現在のブロックに似ている、以前に符号化され復号化されたブロックを識別する。動きベクトルおよび２つのブロック間の差を符号化することによって、復号化器は現ブロックを再作成することができる。
【００１２】
ブロックを復号化するために使用されるビットストリームのヘッダ内に含まれるデータの量を最小にするためには、できるだけ大きなブロックを符号化することが多くの場合望ましい。しかしながら、大きなブロックは望ましいものの、特にブロック内に多くの動きがある場合には、より大きな量の歪みが生じる可能性がある。このため、ブロック内のオブジェクトをよりよく一致させるために、より大きなブロックをいくつかの小さいブロックに区分することがある。例えば、１６×１６画素ブロックまたはそれ以上のブロックは、予測のための４×４画素のサイズのブロックまで区分され得る。マスク、ウェッジなどの他の技法を使用してフレームを区分化することは、同じ性質を示す。本明細書におけるブロックによるパーティショニングの説明は、フレームパーティショニングの出力の一例に過ぎない。
【００１３】
現在、各フレームはスクラッチから、すなわち前のフレームのパーティショニングに関係なく、区分されている。対照的に、本明細書の教示は、直前のフレームのパーティショニングがフレーム内の動きベクトルによってシフトされて、毎回フレーム全体を再区分化するのではなく、新たなパーティショニングを生成するオプションを説明する。概して、ブロック（またはフレームによって区分される前の領域）は、例えば、前のフレームのパーティション（単数または複数）をシフトすることによって（例えば、新たな領域またはブロックの動きベクトルによってカバーされる動きベクトルの１つによって）別の領域に区分される。新たな領域の各々は、それ自体の動きベクトルを有することができ、これにより、フレームの非正方形領域に対するモードおよび動きベクトルを分離することが可能になる。新たなフレームが有効となるように前のフレームのパーティショニングを変更するために動きベクトルを使用することによって、（計算時間を含む）予測コストが低減され得る。さらなる詳細は、本明細書の教示が使用され得る環境の最初の説明の後に記載される。
【００１４】
図１は、ビデオ符号化及び復号化システム１００の概略図である。送信局１０２は、例えば、図２に記載されているようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、送信局１０２の他の適切な実施形態も可能である。例えば、送信局１０２の処理を複数の装置に分散させることができる。
【００１５】
ネットワーク１０４は、ビデオストリームの符号化および復号化のために、送信局１０２および受信局１０６を接続することができる。具体的には、ビデオストリームを送信局１０２で符号化することができ、符号化されたビデオストリームを受信局１０６で復号化することができる。ネットワーク１０４は、例えばインターネットであってもよい。ネットワーク１０４は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、携帯電話ネットワーク、または送信局１０２から、この例では、受信局１０６にビデオストリームを転送する任意の他の手段とすることができる。
【００１６】
受信局１０６は、一例では、図２に記載されたようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、受信局１０６の他の適切な実施形態も可能である。例えば、受信局１０６の処理を複数の装置に分散させることができる。
【００１７】
ビデオ符号化および復号化システム１００の他の実施形態も可能である。例えば、一実施形態はネットワーク１０４を省略することができる。別の実施形態では、ビデオストリームを符号化し、後で受信局１０６またはメモリを有する任意の他の装置に送信するために格納することができる。一実施形態では、受信局１０６は、符号化されたビデオストリームを（例えば、ネットワーク１０４、コンピュータバス、および／または何らかの通信経路を介して）受信し、後の復号化のためにビデオストリームを記憶する。一実施形態では、ネットワーク１０４を介して符号化されたビデオを伝送するためにリアルタイム転送プロトコル（ＲＴＰ：real-time transport protocol）が使用される。別の実施形態では、ハイパーテキスト転送プロトコル（ＨＴＴＰ：Hypertext Transfer Protocol）などのＲＴＰ以外の転送プロトコルが使用されてもよい。別の実施形態では、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ベースのビデオストリーミングプロトコル等のＲＴＰ以外の転送プロトコルが使用されてもよい。
【００１８】
ビデオ会議システムで使用される場合、例えば、送信局１０２および／または受信局１０６は、以下に説明するように、ビデオストリームを符号化および復号化する能力を含むことができる。例えば、受信局１０６は、ビデオ会議サーバ（例えば、送信局１０２）から符号化されたビデオビットストリームを受信して復号化および視聴し、さらにそのビデオビットストリームを他の参加者による復号化および視聴のために符号化してビデオ会議サーバに送信するビデオ会議参加者とし得る。
【００１９】
図２は、送信局または受信局を実施することができるコンピューティングデバイス２００の一例のブロック図である。例えば、コンピューティングデバイス２００は、図１の送信局１０２および受信局１０６の一方または両方を実施することができる。コンピューティングデバイス２００は、複数のコンピューティングデバイスを含むコンピューティングシステムの形態、または例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの単一のコンピューティングデバイスの形態とすることができる。
【００２０】
コンピューティングデバイス２００内のＣＰＵ２０２は、中央処理装置とすることができる。代替的に、ＣＰＵ２０２は、現在存在するか、または今後開発される情報を操作または処理することができる任意の他のタイプのデバイスまたは複数のデバイスであってもよい。開示された実施態様は、図示のような単一のプロセッサ、例えばＣＰＵ２０２で実施することができるが、複数のプロセッサを使用して速度と効率の利点を達成することができる。
【００２１】
コンピューティングデバイス２００内のメモリ２０４は、実施形態では読み出し専用メモリ（ＲＯＭ）デバイスまたはランダムアクセスメモリ（ＲＡＭ）デバイスであってもよい。任意の他の適切なタイプの記憶装置をメモリ２０４として使用することができる。メモリ２０４は、ＣＰＵ２０２がバス２１２を使用してアクセスするコードおよびデータ２０６を含むことができる。メモリ２０４は、オペレーティングシステム２０８およびアプリケーションプログラム２１０をさらに含むことができ、アプリケーションプログラム２１０は、本明細書に記載された方法をＣＰＵ２０２が実行するのを可能にする少なくとも１つのプログラムを含む。例えば、アプリケーションプログラム２１０は、アプリケーション１〜Ｎを含むことができ、アプリケーション１〜Ｎは、本明細書で説明する方法を実行するビデオ符号化アプリケーションをさらに含む。コンピューティングデバイス２００はまた、例えば、モバイルコンピューティングデバイスと共に使用されるメモリカードとすることができる二次ストレージ２１４を含むことができる。ビデオ通信セッションは、かなりの量の情報を含み得るので、それらは、二次ストレージ２１４に全体的または部分的に記憶され、処理のために必要に応じてメモリ２０４にロードされる。
【００２２】
コンピューティングデバイス２００は、ディスプレイ２１８などの１つまたは複数の出力デバイスを含むこともできる。ディスプレイ２１８は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチセンシティブエレメントと組み合わせたタッチセンシティブディスプレイであってもよい。ディスプレイ２１８は、バス２１２を介してＣＰＵ２０２に接続することができる。ユーザがコンピューティングデバイス２００をプログラムするかまたは他の方法で使用することを可能にする他の出力デバイスが、ディスプレイ２１８に加えて、またはディスプレイ２１８に代えて設けられてもよい。出力デバイスがディスプレイであるか、またはディスプレイを含む場合、ディスプレイは、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）ディスプレイ、または有機ＬＥＤ（ＯＬＥＤ）などの発光ダイオード（ＬＥＤ）ディスプレイを含む様々な方法で実施することができる。
【００２３】
コンピューティングデバイス２００は、コンピューティングデバイス２００を操作するユーザの画像等の画像を検出することができる、例えば、カメラなどの撮像デバイス２２０、または現在または将来開発される任意の他の撮像デバイス２２０を含むか、または撮像デバイス２２０と通信することができる。撮像デバイス２２０は、コンピューティングデバイス２００を操作するユーザの方に向けられるように配置することができる。一例では、撮像デバイス２２０の位置および光軸は、視野が、ディスプレイ２１８に直接隣接する領域であって、その領域からディスプレイ２１８が視認可能な領域を含むように構成することができる。
【００２４】
コンピューティングデバイス２００は、コンピューティングデバイス２００の近くの音を感知することができる、例えば、マイクロホンなどの音声感知デバイス２２２、または現在または今後開発される任意の他の音声感知デバイスを含むか、または音声感知デバイス２２２と通信することができる。音声感知デバイス２２２は、コンピューティングデバイス２００を操作するユーザの方に向けられ、かつユーザがコンピューティングデバイス２００を操作している間にユーザによって発せられた例えば音声、他の発話を受信するように構成することができる。
【００２５】
図２は、コンピューティングデバイス２００のＣＰＵ２０２およびメモリ２０４が単一のユニットに統合されていることを示しているが、他の構成を利用することもできる。ＣＰＵ２０２の動作は、直接的にまたはローカルエリアネットワークまたは他のネットワークを介して接続することができる複数のマシン（各マシンは１つまたは複数のプロセッサを有する）にわたって分散させることができる。メモリ２０４は、ネットワークベースのメモリのような複数のマシンに分散するか、またはコンピューティングデバイス２００の動作を実行する複数のマシンにおけるメモリとすることができる。本明細書では単一のバスとして示されているが、コンピューティングデバイス２００のバス２１２は、複数のバスから構成することができる。さらに、二次ストレージ２１４は、コンピューティングデバイス２００の他の構成要素に直接接続されるか、またはネットワークを介してアクセスされ、かつメモリカードなどの単一の統合されたユニットまたは複数のメモリカードなどの複数のユニットを含むことができる。従って、コンピューティングデバイス２００は、多種多様な構成で実施することができる。
【００２６】
図３は、符号化され、続いて復号化されるビデオストリーム３００の一例の図である。ビデオストリーム３００は、ビデオシーケンス３０２を含む。次のステージでは、ビデオシーケンス３０２はいくつかの隣接フレーム３０４を含む。３つのフレームが隣接フレーム３０４として示されているが、ビデオシーケンス３０２は任意の数の隣接フレーム３０４を含むことができる。隣接フレーム３０４はさらに、個々のフレーム、例えばフレーム３０６に細分化することができる。次のステージでは、フレーム３０６は、一連のプレーンまたはセグメント３０８に分割することができる。セグメント３０８は、例えば、並列処理を可能にするフレームのサブセットとすることができる。セグメント３０８は、ビデオデータを別々の色に分離することができるフレームのサブセットとすることができる。例えば、カラービデオデータのフレーム３０６は、輝度プレーン（luminance plane）および２つの色度プレーン（chrominance plane）を含むことができる。セグメント３０８は、異なる解像度でサンプリングすることができる。
【００２７】
フレーム３０６がセグメント３０８に分割されているか否かにかかわらず、フレーム３０６は、さらに、フレーム３０６内の例えば１６×１６画素に対応するデータを含むことができるブロック３１０に細分化されてもよい。ブロック３１０は、１つまたは複数のプレーンの画素データからのデータを含むように構成される。ブロック３１０は、４×４画素、８×８画素、１６×８画素、８×１６画素、１６×１６画素、またはそれ以上等の任意の他の適切なサイズであってもよい。フレーム３０６のパーティショニングによって生じるブロック３１０または他の領域は、以下により詳細に説明するように、本明細書の教示に従って区分されてもよい。すなわち、符号化される領域は、より小さなサブブロックまたは領域に区分されるより大きな領域であってもよい。より詳細には、符号化されるべき現在の領域は、例えば、異なる予測モードを使用して符号化されるより小さい画素のグループに分割されてもよい。これらの画素のグループは、本明細書では、予測サブブロック、予測サブ領域、または予測ユニットと称される。場合によっては、領域が１つの予測モードのみを使用して符号化されるときに、符号化される領域全体を包含する１つのみの予測サブ領域が存在する。特に明記しない限り、以下の図４および図５におけるブロックの符号化および復号化の説明は、より大きな領域の予測サブブロック、予測サブ領域または予測ユニットに等しく適用される。
【００２８】
図４は、一実施形態による符号化器４００のブロック図である。符号化器４００は、例えばメモリ２０４などのメモリに格納されたコンピュータソフトウェアプログラムを提供するなどして、上述のように送信局１０２内で実施することができる。コンピュータソフトウェアプログラムは、ＣＰＵ２０２等のプロセッサよる実行時に、送信局１０２に図４で説明した方法でビデオデータを符号化させる機械命令を含むことができる。符号化器４００は、例えば、送信局１０２に含まれる専用のハードウェアとして実施することもできる。符号化器４００は、ビデオストリーム３００を入力として使用してフォワードパス（実線の接続線で示す）において様々な機能を実行して、符号化または圧縮されたビットストリーム４２０を生成するイントラ予測／インター予測ステージ４０２、変換ステージ４０４、量子化ステージ４０６、およびエントロピー符号化ステージ４０８を有する。符号化器４００は、将来のブロックの符号化のためのフレームを再構成する再構成パス（点線の接続線で示す）をも含む。図４において、符号化器４００は、再構成パスにおいて様々な機能を実行する以下のステージ、逆量子化ステージ４１０、逆変換ステージ４１２、再構成ステージ４１４、およびループフィルタリングステージ４１６を有する。符号化器４００の他の構成的な変形例を使用してビデオストリーム３００を符号化することができる。
【００２９】
ビデオストリーム３００が符号化のために提示されると、各フレーム３０６は例えばブロックのような複数の画素（例えば、領域）の単位で処理される。イントラ予測／インター予測ステージ４０２において、ブロックは、イントラフレーム予測（イントラ予測とも称する）またはインターフレーム予測（ここではインター予測とも呼ばれる）を用いて符号化することができる。いずれの場合でも、予測ブロックを形成することができる。イントラ予測の場合、予測（または予測子）ブロックが、以前に符号化され、かつ再構成された現在のフレーム内のサンプルから形成され得る。インター予測の場合、予測ブロックは、１つまたは複数の以前に構築された参照フレーム内のサンプルから形成され得る。
【００３０】
次に、引き続き図４を参照して、イントラ予測／インター予測ステージ４０２において予測ブロックが現在のブロックから減算され、残差ブロック（残差とも呼ばれる）が生成される。変換ステージ４０４は、ブロックベースの変換を使用して、残差を、例えば周波数領域の変換係数に変換する。このようなブロックベースの変換には、例えば、離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）および非対称離散サイン変換（ＡＤＳＴ：Asymmetric Discrete Sine Transform）が含まれる。他のブロックベースの変換も可能である。さらに、異なる変換の組み合わせを単一の残差に適用することができる。変換の適用の一例では、ＤＣＴは残差ブロックを周波数係数に変換し、ここで、変換係数値は空間周波数に基づいている。行列の左上の最低周波数（ＤＣ）係数、および行列の右下の最高周波数係数。予測ブロックのサイズ、したがって結果の残差ブロックは、変換ブロックのサイズと異なる可能性があることは注目に値する。例えば、残差ブロックまたは領域は、別々の変換が適用されるより小さいブロック領域に分割されてもよい。
【００３１】
量子化ステージ４０６は、変換係数を量子化値または量子化レベルを使用して量子化変換係数と呼ばれる離散量子値に変換する。例えば、変換係数は、量子化値で除算され、切り捨てられてもよい。次に、量子化された変換係数は、エントロピー符号化ステージ４０８によってエントロピー符号化される。エントロピー符号化は、トークンツリーおよびバイナリツリーを含む任意の数の技術を使用して実行されてもよい。例えば、使用される予測のタイプ、変換タイプ、動きベクトルおよび量子化値を含み得る、ブロックを復号化するために使用される他の情報とともに、エントロピー符号化された係数は、圧縮されたビットストリーム４２０に出力される。圧縮されたビットストリーム４２０は、符号化されたビデオストリームまたは符号化されたビデオビットストリームとも称され、これらの用語は本明細書では互換的に使用される。
【００３２】
符号化器４００および復号化器５００（以下に説明する）の両方が、圧縮されたビットストリーム４２０を復号化するために同じ参照フレームを使用することを確実にするために、図４における再構成パス（点線の接続線で示す）が使用される。再構成パスは、逆量子化ステージ４１０で量子化された変換係数を逆量子化すること、および逆変換ステージ４１２で逆量子化された変換係数を逆変換して微分残差ブロック（微分残差とも称される）を生成することを含む以下により詳細に説明される復号化プロセス中に行われる機能と同様の機能を実行する。再構成ステージ４１４において、イントラ予測／インター予測ステージ４０２で予測された予測ブロックを微分残差に加えて、再構成されたブロックが作成される。ブロック化アーチファクトなどの歪みを低減するために、ループフィルタリングステージ４１６が再構成されたブロックに適用される。
【００３３】
符号化器４００の他の変形例を使用して圧縮されたビットストリーム４２０を符号化することができる。例えば、非変換ベースの符号化器４００は、あるブロックまたはフレームに関して変換ステージ４０４を使用せずに残差信号を直接量子化することができる。別の実施形態では、符号化器４００は、量子化ステージ４０６と逆量子化ステージ４１０とを組み合わせて単一のステージにすることができる。符号化器４００は、この技法に従って任意のサイズまたは形状の画素のグループを符号化することができる。したがって、符号化される画素のグループは、より一般的には、領域と称される。
【００３４】
図５は、別の実施形態による復号化器５００のブロック図である。復号化器５００は、例えば、メモリ２０４に格納されたコンピュータソフトウェアプログラムを提供することによって、受信局１０６で実施することができる。コンピュータソフトウェアプログラムは、ＣＰＵ２０２などのプロセッサによる実行時に、受信局１０６に、図５において説明した方法でビデオデータを復号化させる機械命令を含む。復号化器５００は、例えば、送信局１０２または受信局１０６に含まれるハードウェアで実施することもできる。
【００３５】
復号化器５００は、上述の符号化器４００の再構成パスと同様に、一例では、様々な機能を実行して圧縮されたビットストリーム４２０から出力ビデオストリーム５１６を生成するための以下のステージ、エントロピー復号化ステージ５０２、逆量子化ステージ５０４、逆変換ステージ５０６、イントラ予測／インター予測ステージ５０８、再構成ステージ５１０、ループフィルタリングステージ５１２、およびデブロッキングフィルタリングステージ５１４を含む。圧縮されたビットストリーム４２０を復号化するために復号化器５００の他の構造的な変形例を使用することができる。
【００３６】
圧縮されたビットストリーム４２０が復号化のために提示されると、圧縮されたビットストリーム４２０内のデータ要素が、エントロピー復号化ステージ５０２によって復号化されて、一組の量子化変換係数が生成される。逆量子化ステージ５０４は、（例えば、量子化された変換係数に量子化値を乗算することにより）量子化された変換係数を逆量子化し、逆変換ステージ５０６は、選択された変換タイプを使用して逆量子化された変換係数を逆変換して、符号化器４００における逆変換ステージ４１２によって生成されたものと同一である微分残差を生成する。圧縮されたビットストリーム４２０から復号化されたヘッダ情報を使用して、復号化器５００は、イントラ予測／インター予測ステージ５０８を用いて、例えばイントラ予測／インター予測ステージ４０２において符号化器４００で生成されたのと同じ予測ブロックを作成する。再構成ステージ５１０において、予測ブロックを微分残差に加えて再構成ブロックが作成される。ループフィルタリングステージ５１２は、ブロッキングアーチファクトを低減するために再構成されたブロックに適用される。再構成されたブロックに他のフィルタリングを適用することができる。この例では、ブロッキング歪みを低減するためにデブロッキングフィルタリングステージ５１４が再構成ブロックに適用され、その結果が出力ビデオストリーム５１６として出力される。出力ビデオストリーム５１６は、復号化されたビデオストリームとも呼ばれ、用語は本明細書では互換的に使用される。
【００３７】
復号化器５００の他の変形例を使用して、圧縮されたビットストリーム４２０を復号化することができる。例えば、復号化器５００は、デブロッキングフィルタリングステージ５１４を用いずに出力ビデオストリーム５１６を生成することができる。説明を簡単にするためにブロックを参照して説明されているが、復号化器５００は、この技法に従って、任意のサイズまたは形状の画素のグループ（例えば、領域）を復号化することができる。
【００３８】
上記で簡単に説明したように、直前のフレームの動きベクトルパーティショニングによって（即ち、動きベクトルを使用して直前のフレームのパーティショニングを調整することによって）、フレームまたはフレームの領域は、符号化または復号化のために区分され得る。概して、領域は、新たな領域の動きベクトルによってカバーされる動きベクトルの１つによって前のフレームパーティションをシフトすることによって別の領域に分割される。
【００３９】
図６は、本開示の一実施形態による、直前のフレームの動きベクトルパーティショニングによって領域を符号化または復号化するプロセス６００のフローチャート図である。この方法またはプロセス６００は、ビデオストリームの符号化または復号化を支援するコンピューティングデバイス２００などのシステムにおいて実施することができる。プロセス６００は、例えば、送信局１０２または受信局１０６などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実施することができる。ソフトウェアプログラムは、メモリ２０４などのメモリに格納され、ＣＰＵ２０２のようなプロセッサによる実行時に、コンピューティングデバイスにプロセス６００を実行させる機械可読命令を含むことができる。プロセス６００は、ハードウェアの全体または一部を使用して実施することもできる。上述したように、いくつかのコンピューティングデバイスは、複数のメモリおよび複数のプロセッサを有してもよく、プロセス６００のステップまたは動作は、この場合、異なるプロセッサおよび異なるメモリを使用して分散されてもよい。本明細書で単数の「プロセッサ」および「メモリ」という用語を使用することは、１つのプロセッサまたは１つのメモリのみを有するのみならず、必ずしもすべての記載されたステップではないが、いくつかのステップの実行にそれぞれ使用されてもよい複数のプロセッサまたは複数のメモリを有するコンピューティングデバイスを含む。
【００４０】
説明を簡単にするために、プロセス６００は、一連のステップまたは動作として示され説明されている。しかしながら、本開示によるステップおよび動作は、様々な順序でおよび／または同時に進行することができる。さらに、本開示に従うステップまたは動作は、本明細書に提示および記載されていない他のステップまたは動作と共に進行することができる。さらに、開示された主題に従って方法を実施するために、図示された全てのステップまたは動作が必要とされるわけではない。プロセス６００は、入力信号の各フレームの各ブロックに対して繰り返されてもよい。いくつかの実施形態では、プロセス６００に従って、１つまたは複数のフレームのいくつかのブロックのみが処理される。例えば、プロセス６００を実行するとき、イントラ予測モードを使用して符号化されたブロックが省略されてもよい。
【００４１】
プロセス６００が符号化プロセスである場合、入力信号は、例えばビデオストリーム３００とすることができる。入力信号は、プロセス６００を実行するコンピュータによって任意の数の方法で受信される。例えば、入力信号は、撮像デバイス２２０によって取り込まれるか、またはバス２１２に接続された入力を介して別のデバイスから受信される。入力信号は、別の実施形態では、二次ストレージ２１４から取得することができる。他の受信方法および他の入力信号のソースも可能である。例えば、プロセス６００が復号化プロセスである場合、入力信号は、圧縮されたビットストリーム４２０などの符号化されたビットストリームであってもよい。
【００４２】
入力信号を使用して、６０２において領域の第１のパーティショニングが決定される。これは、ビデオシーケンス内の現在のフレームの前のフレームのうちの少なくとも一部の第１のパーティショニングを決定することを含むことができる。
【００４３】
プロセス６００が符号化プロセスである場合、第１のパーティショニングの決定は、レート歪み計算を使用することを組み込むことができる。例えば、フレームがビデオシーケンス内の第１のフレームである場合、第１のパーティショニングは、フレームをブロックに区分化し、例えば、図４の符号化処理による最低のレート歪み値から決定されるように、複数の利用可能な予測モードの中からブロックに対する最適な予測モードを決定することにより行われる。一例では、ブロックは１６×１６画素ブロックであり、利用可能な予測モードは、８×１６画素、１６×８画素、８×８画素、８×４画素、４×８画素、および４×４画素のサイズを有するブロックおよびブロックのサブブロックに対するいくつかのイントラ予測およびインター予測モードを含み得る。別の例では、フレームはビデオシーケンスの第１のフレームではない。そのような場合、第１のパーティショニングは、前のフレーム（例えば、フレームの前の、ビデオシーケンスにおける直前のフレーム）のパーティショニングに基づいて、本明細書で説明するように決定されてもよい。
【００４４】
プロセス６００が復号化プロセスである場合、第１のパーティショニングの決定は、図５に関して説明したような符号化されたビデオビットストリームからフレームを復号化することを含むことができる。復号化されるフレームは、一実施形態において符号化器によって決定されたパーティショニングに従って復号化される。
【００４５】
プロセス６００が符号化プロセスであろうと復号化プロセスであろうと、第１のパーティショニングは、フレームの第１の領域のうちの少なくとも１つの予測サブ領域を定義する。第１のパーティショニングは、６０４において動きベクトルを使用して変更される。一実施形態において、第１のパーティショニングの変更は、第１のパーティショニングから第１の領域のうちの少なくとも１つの予測サブ領域を予測する動きベクトルを使用して第１のパーティショニングを第２のパーティショニングに変更することを含む。場合によっては、これは、フレーム内の第１の領域の位置を動きベクトルによって移動させ、次いで、新たな領域の位置の境界内に包囲される第１のパーティショニングを、新たな領域と少なくとも部分的に重なる予測サブ領域の少なくとも１つの動きベクトルによって修正することにより達成される。他の場合、これは、第１の領域の境界内に包囲される第１のパーティショニングを動きベクトルによって修正することにより達成される。
【００４６】
図７Ａ〜図７Ｃは、図６のプロセス６００を説明するために使用される一例の図である。より具体的には、図７Ａ〜図７Ｃは、プロセス６００の６０４における第１のパーティショニングを変更することを説明する。この例は、ブロックとしての形成を有する領域が生じるパーティショニングを示しているため、ブロックという用語が使用される。しかしながら、図７Ａ〜図７Ｃを参照するプロセス６００の説明は、矩形形状を有している領域や、あるいは矩形形状を有していない領域に適用され得る。
【００４７】
図７Ａは、ビデオシーケンス内の現在のフレームの前のフレームの第１のパーティショニング７００の一部を示す。ブロックベースのパーティショニングのこの例では、第１のブロック７０２は、単に１つの予測サブブロックに区分される。すなわち、第１のブロック７０２は、図７Ａの第１のブロック７０２の境界内の矢印によって表される単一の動きベクトルを使用して予測される。第１のパーティショニング７００のいくつかの他の予測サブブロックが図７Ａに示されている。具体的には、３つの他のブロックの予測サブブロックが、例としてラベル付けされている。
【００４８】
第１のブロック７０２の上にあるブロックは、４つの等しいサイズの予測サブブロックに区分され、そのうちの２つは、予測サブブロック７０６および予測サブブロック７０８とラベル付けされている。予測サブブロック７０６は、図７Ａの予測サブブロック７０６の境界内の矢印によって示された動きベクトルを使用して予測され、予測サブブロック７０８は、図７Ａの予測サブブロック７０８の境界内の矢印によって示される動きベクトルを使用して予測される。予測サブブロック７０６，７０８の動きベクトルは異なるか、またはそれらが表すブロックの一部は単一のサブブロックとして示され得る。第１のブロック７０２の上のブロックの残りの２つのサブブロックは、異なる予測モードおよび／または異なる動きベクトルを使用して符号化される。
【００４９】
上にあるブロックの右側のブロックも４つの等しいサイズの予測サブブロックに区分され、そのうちの１つは、予測サブブロック７１０とラベル付けされている。予測サブブロック７１０は、図７Ａの予測サブブロック７１０の境界内の点によって示されるようにイントラ予測を使用して予測される。このブロックの残りの予測サブブロックは、ここでは使用されていないので、この例ではラベル付けされていないが、それぞれが異なる予測モードおよび／または異なる動きベクトルを用いて符号化されてもよい。
【００５０】
第１のブロック７０２の右側のブロックは、２つの等しいサイズの予測サブブロックに区分され、そのうちの１つは、予測サブブロック７１２とラベル付けされている。予測サブブロック７１２は、図７Ａの予測サブブロック７１２の境界内の点によって示されるようにイントラ予測を使用して予測される。このブロックの残りの予測サブブロックは、ここでは使用されていないが、異なる予測モードを使用して符号化されるので、この例ではラベル付けされていない。
【００５１】
第１のブロック７０２は、１６×１６画素ブロック、３２×３２画素ブロック、または他のサイズのブロックであってもよい。第１のブロック７０２が例えば１６×１６画素のブロックである場合、予測サブブロック７０６，７０８，７１０はそれぞれ８×８画素を含み、予測サブブロック７１２は８×１６画素である。
【００５２】
上述のように、第１のパーティショニングは、第１のパーティショニングからの第１の領域のうちの少なくとも１つの予測サブ領域を予測する動きベクトルを用いて第２のパーティショニングに変更することができる。図７Ａ〜図７Ｃの例において、これは、フレーム内の第１の領域（ここではブロック）の位置を動きベクトルによって移動させ、次に、新たな位置の境界内に包囲される第１のパーティショニングを、新たな位置と少なくとも部分的に重なる予測サブ領域の少なくとも１つの動きベクトルによって修正することにより達成される。図７Ａに示すように、第１のブロック７０２は、新たなブロック７０４によって示される位置に移動される。新たなブロック７０４の境界内に包囲される第１のパーティショニングは、第１のブロック７０２、予測サブブロック７０６，７０８，７１０、および予測サブブロック７１２を含む。新たなブロック７０４と少なくとも部分的に重なる予測サブブロックの動きベクトルは、第１のブロック７０２および予測サブブロック７０６，７０８の動きベクトルを含む。図７Ｂは、新たなブロック７０４の境界内の隣接する予測ブロックまたはサブブロック間の頂点７２０，７２２によって画定された境界が別の動きベクトルによって調整される第１のパーティショニングの変更を示す。使用される動きベクトルは、最大または最小の動きベクトルのような利用可能な動きベクトルのうちの１つのみであってもよく、また平均または加重平均などの利用可能な動きベクトルの組み合わせとすることができる。加重平均は、動きベクトルの各々を使用して予測された新たなブロック７０４の一部（例えば、領域全体の画素数）に基づいてもよい。図７Ｃは、５つの予測サブブロック７３２〜７４０を含む新たなブロック７０４に関して結果的に生じた第２のパーティショニング７３０を示す。
【００５３】
より概略的に説明すると、図７Ａ〜図７Ｃは、第１のパーティショニングの変更が、更新された位置がフレームの領域の一部（例えば、予測サブ領域の一部）と重なる動きベクトルを使用して第１の領域の外周部をフレーム内の更新された位置に調整することを含むプロセスを示す。次いで、領域の一部のコーナーまたは頂点（およびそれらの境界も含む）が、同じ動きベクトル（または異なる動きベクトル）によって更新された位置内で移動されて第１のパーティショニングが第２のパーティショニングに変更される。
【００５４】
図８Ａおよび図８Ｂは、図６のプロセス６００を説明するために使用される別の例の図である。この場合、動きベクトルを用いて第１のパーティショニングを変更することは、第１の領域の境界内に包囲される第１のパーティショニングを動きベクトルによって修正することにより達成される。図８Ａおよび図８Ｂは、複数のブロックに区分化することを示しており、これらの領域はブロックとして参照される。図８Ａにおいて、ブロック８００は４つの予測サブブロックに区分され、そのうちの１つは動きベクトル８０２を使用して予測され、残りの３つはイントラ予測される。この場合、変更された第２のパーティショニングがブロック８１０について示され、図７Ｂのように、予測サブブロック間の交点（コーナーまたは頂点）が動きベクトル８０２によって移動されて第１のパーティショニングが第２のパーティショニングに変更される。
【００５５】
パーティショニングを変更するために使用される動きベクトルの間の選択は、例えば予測モードまたは動きベクトル値に基づいて発見的手法で決定されるか、または異なる技術をテストし、符号化されるブロック（およびフレーム）に最適なものを選択することによって実験的に決定することができる。図６に従って処理されるフレームの各ブロックに関するパーティショニングを変更するために使用される技術は、復号化器が後続フレームの同じパーティショニングを生成するように、ビットストリーム内のフラグまたは他の識別子によって識別され得る。これは、同じ技術がフレームに使用されている範囲で、フレームヘッダーで送信することができる。代替的に、または追加的に、領域またはセグメント単位でパーティショニングを変更するために使用される動きベクトルが、復号化器によって使用される領域（たとえば、ブロック）またはセグメントヘッダで送信することができる。いくつかの実施形態では、復号化器が新たなパーティショニングを生成できるように、領域、セグメントまたはフレームのパーティショニングが直前のフレームの動きベクトルパーティショニングを使用して実行されたことを示すために、モード識別子のみが符号化器から送信される必要がある。これらの実施形態の変形形態では、プロセス６００は符号化器でのみ実行され、復号化器は、例えば図５に従ってビットストリーム内に位置する区分された領域を復号化することができる。
【００５６】
変更された第２のパーティショニングが決定されると、６０６において、第２のパーティショニングが現在のフレームの現在の領域を符号化または復号化するために使用される。現在の領域は、第１の領域と同じ位置とすることができる。例えば、現在の領域および第１の領域は、同じ位置にあるブロックであってもよい。同じ位置にある領域は、異なるフレーム内の同じ画素座標を有する。あるいは、現在の領域は、現在のフレーム内で、一例における第１のブロック７０２の動きベクトルなどの動きベクトルによって第１の領域位置からシフトされてもよい。現在の領域を符号化することは、現在の領域の予測サブ領域のための残差を生成し、現在の領域の復号化に必要な情報を用いて符号化されたビットストリームに残差を符号化することによって、第２のパーティショニングの予測サブ領域を符号化することを含む。例えば、符号化プロセスは、図４に関して説明したように、変換ステージ４０４、量子化ステージ４０６、およびエントロピー符号化ステージ４０８を使用して残差を処理することを含むことができる。各予測サブ領域に関する残差は、各々の最良のモードのための利用可能な予測モードの網羅的テストによって決定されるか、または第１の領域の前の予測モードに基づくより小さい予測モードのリストから決定された個々についての予測モードを使用して生成されてもよい。
【００５７】
プロセス６００が復号化プロセスである場合、変更されたパーティショニングを使用して、残差を復号化するために現在の領域の各予測サブ領域の残差のサイズを決定し、次いで、各々について同様のサイズの予測領域を生成して残差を加算して現在の領域を再構成する。例えば、復号化プロセスは、図５に関して説明したように、エントロピー復号化ステージ５０２、逆量子化ステージ５０４、および逆変換ステージ５０６を使用して残差を処理することを含むことができる。次に、図５に関しても説明したように、現在の領域が再構成ステージ５１０で再構成される。
【００５８】
プロセス６００は、ブロックベースのパーティショニング手法を使用して形成された矩形形状の予測サブブロックを用いる特定の例に関してこれまで説明したが、フレームに関して様々なパーティショニング手法から生成される領域と共にプロセス６００を使用することができる。プロセス６００は、例えば、動きベクトルによってシフトされた直前のフレームに対するマスクを使用することによって、マスクを使用して良好に動作する。別個に予測される２つの全体的に連続した画素領域の間に境界を有するマスクでは、第１のパーティショニングは第１の領域の２つの予測サブ領域を規定し、第２のパーティショニングは２つの更新された予測サブ領域を含み、更新された予測サブ領域の境界は、動きベクトルによって第１の領域内で移動された元の予測サブ領域間の境界である。すなわち、例えば、第１のパーティショニングは、マスクを使用して第１の領域の２つの予測サブ領域を規定し、２つの予測サブ領域の各々は、マスク内の境界の反対側にある。次に、第１のパーティショニングを変更することは、動きベクトルによってマスク内の境界を移動させて、予測のための更新された境界を生成して、更新されたマスクが予測のために使用されるとき、第２のパーティショニングが、更新された境界の反対側に２つの更新された予測サブ領域を含むようにすることを含む。ウェッジ、カラー、残差、および３つの動きベクトルモードのマスクを使用するパーティショニング技法から生成される領域は、プロセス６００による直前のフレームの動きベクトルパーティショニングからすべての利点を得ることができる。
【００５９】
新たなフレームを有効にするために動きベクトルを使用して前のフレームのパーティショニングを変更することにより、新たなフレームを符号化するときのパーティショニングに伴う計算を最小限に抑えることができる。本明細書の教示は、フレーム全体を再区分化するのを回避し、フレームの新たに定義された領域が独自の動きベクトルおよび／または符号化モードを有し、非正方形の画素のブロックのための別個のモードおよび動きベクトルを許可することを可能にする柔軟性を有するオプションを提供する。これは、圧縮の良好な予測を提供するのに役立つ。
【００６０】
上述の符号化および復号化の態様は、符号化および復号化技術のいくつかの例を示す。しかしながら、符号化および復号化は、特許請求の範囲で使用されるそれらの用語として圧縮、圧縮解除、変換、または任意の他の処理またはデータの変更を意味し得ることを理解されたい。
【００６１】
「例」という語は、本明細書では、例、事例、または実例としての役割を意味するものとして使用される。本明細書において「例」と記載された任意の態様または設計は、必ずしも他の態様または設計に対して好ましいまたは有利であるとして解釈されるべきではない。むしろ、「例」という言葉の使用は、具体的な方法で概念を提示することを意図している。本出願で使用される場合、用語「または」は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。即ち、他に明記されていない限り、あるいは文脈から明らかでない限り、「ＸはＡまたはＢを含む」とは、任意の自然な包含的置換（natural inclusive permutations）を意味することを意図する。即ち、「ＸはＡまたはＢを含む」は、ＸがＡを含む場合、ＸがＢを含む場合、またはＸがＡおよびＢの両方を含む場合のいずれにおいても満足される。さらに、本出願および添付の特許請求の範囲で使用される冠詞「a」および「an」は、他に明記されない限り、または単数形に向けられる文脈から明らかでない限り、「１つまたは複数」を意味すると一般に解釈されるべきである。さらに、「実施形態」または「一実施形態」という用語の使用は、そのように記載されない限り、同じ実施形態または実施を意味することを意図するものではない。
【００６２】
送信局１０２および／または受信局１０６（ならびに、符号化器４００および復号化器５００が含む、それに記憶され、かつ／またはそれによって実行されるアルゴリズム、方法、命令など）の実施形態は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせにおいて実現することができる。ハードウェアは、例えば、コンピュータ、知的財産（ＩＰ）コア、特定用途向け集積回路（ＡＳＩＣ：application-specific integrated circuits）、プログラマブル論理アレイ、光プロセッサ、プログラマブル論理コントローラ、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタル信号プロセッサ、または他の適切な回路を含むことができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを単独でまたは組み合わせて含むものとして理解されるべきである。用語「信号」および「データ」は互換的に使用される。さらに、送信局１０２および受信局１０６の一部は、必ずしも同じ方法で実施される必要はない。
【００６３】
さらに、一態様では、例えば、送信局１０２または受信局１０６は、実行時に、本明細書に記載された個々の方法、アルゴリズム、および／または命令をのうちのいずれかを実行するコンピュータプログラムを備えた汎用コンピュータまたは汎用プロセッサを使用して実施することができる。加えて、または代替的に、例えば、本明細書に記載された方法、アルゴリズム、または命令のいずれかを実行するための他のハードウェアを含むことができる専用コンピュータ／プロセッサを利用することができる。
【００６４】
送信局１０２および受信局１０６は、例えば、ビデオ会議システム内のコンピュータ上で実施することができる。あるいは、送信局１０２はサーバ上で実施することができ、受信局１０６はサーバとは別のハンドヘルド通信デバイスのようなデバイス上で実施することができる。この場合、送信局１０２は、符号化器４００を使用してコンテンツを符号化されたビデオ信号に符号化し、符号化されたビデオ信号を通信デバイスに送信することができる。通信デバイスは、復号化器５００を使用して符号化されたビデオ信号を復号化することができる。あるいは、通信デバイスは、通信デバイス上に局所的に格納されたコンテンツ、例えば、送信局１０２によって送信されなかったコンテンツを復号化することができる。他の適切な送信および受信の実施方式が利用可能である。例えば、受信局１０６は、ポータブル通信デバイスではなく、一般に固定のパーソナルコンピュータであってもよく、かつ／または符号化器４００を含むデバイスは、復号化器５００を含んでもよい。
【００６５】
さらに、本発明の実施形態の全部または一部は、例えば有形のコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、任意のプロセッサによって使用されるプログラムを有形に包含、格納、通信、または輸送することができる任意のデバイスであり得る。媒体は、例えば、電子、磁気、光学、電磁気、または半導体デバイスであり得る。他の適切な媒体も利用可能である。
【００６６】
上述した実施形態、実施例及び態様は、本発明の理解を容易にするために記載されており、本発明を限定するものではない。本発明は、添付の特許請求の範囲内に含まれる様々な改変および均等の構成を包含することを意図しており、その範囲は、法律で許容されるようなすべての改変および均等の構造を包含するように最も広い解釈が与えられる。
【図１】
2019500766.tif 000003
【図２】
2019500766.tif 000004
【図３】
2019500766.tif 000005
【図４】
2019500766.tif 000006
【図５】
2019500766.tif 000007
【図６】
2019500766.tif 000008
【図７Ａ】
2019500766.tif 000009
【図７Ｂ】
2019500766.tif 000010
【図７Ｃ】
2019500766.tif 000011
【図８Ａ】
2019500766.tif 000012
【図８Ｂ】
2019500766.tif 000013
【国際調査報告】
2019500766.tif 000014
2019500766.tif 000015
2019500766.tif 000016