(57)【要約】コンピューティング装置は、彩度ブロックに対応る輝度ブロックを再構成すること、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、最大の輝度サンプルおよび最小の輝度サンプルを識別することと、前記最大の輝度サンプルに対応するダウンサンプリング最大輝度サンプルを算出することと、前記最小の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出することと、前記ダウンサンプリング最大輝度サンプルと、前記ダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成することと、前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することによって、ビデオ信号を復号化する方法を実行する。【選択図】  図１
2022500967.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサと、前記１つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリと、を含むコンピューティング装置で実行されるビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、少なくとも１つの最大の輝度サンプルおよび少なくとも１つの最小の輝度サンプルを識別することと、
前記少なくとも１つの最大の輝度サンプルに対応し、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプルを算出することと、
前記少なくとも１つの最小の輝度サンプルに対応し、前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを算出することと、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成することと、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、
を含むビデオ信号を復号化する方法。
【請求項２】
前記彩度ブロックおよび前記輝度ブロックは、４：２：０または４：２：２の彩度サブサンプリングスキームによって符号化され、異なる解像度を有する、請求項１に記載の方法。
【請求項３】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび／または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのダウンサンプリング最大輝度サンプルを算出することは、前記最大輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含み、前記少なくとも１つのダウンサンプリング最小輝度サンプルを算出することは、前記最小輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含む、請求項１に記載の方法。
【請求項５】
前記線形モデルを生成することは、前記少なくとも１つのダウンサンプリング最大輝度サンプル及び前記第１の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、前記少なくとも１つのダウンサンプリング最小輝度サンプル及び前記第２の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項１に記載の方法。
【請求項６】
コンピューティング装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、少なくとも１つの最大の輝度サンプルおよび少なくとも１つの最小の輝度サンプルを識別し、
前記少なくとも１つの最大の輝度サンプルに対応し、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプルを算出し、
前記少なくとも１つの最小の輝度サンプルに対応し、前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを算出し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項７】
前記彩度ブロックおよび前記輝度ブロックは、４：２：０または４：２：２の彩度サブサンプリングスキームによって符号化され、異なる解像度を有する、請求項６に記載のコンピューティング装置。
【請求項８】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび／または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項６に記載のコンピューティング装置。
【請求項９】
前記少なくとも１つのダウンサンプリング最大輝度サンプルを算出することは、前記最大輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含み、前記少なくとも１つのダウンサンプリング最小輝度サンプルを算出することは、前記最小輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含む、請求項６に記載のコンピューティング装置。
【請求項１０】
前記線形モデルを生成することは、前記少なくとも１つのダウンサンプリング最大輝度サンプル及び前記第１の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、前記少なくとも１つのダウンサンプリング最小輝度サンプル及び前記第２の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項６に記載のコンピューティング装置。
【請求項１１】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、少なくとも１つの最大の輝度サンプルおよび少なくとも１つの最小の輝度サンプルを識別し、
前記少なくとも１つの最大の輝度サンプルに対応し、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプルを算出し、
前記少なくとも１つの最小の輝度サンプルに対応し、前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを算出し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、非一時的なコンピュータ読取可能な記憶媒体。
【請求項１２】
前記彩度ブロックおよび前記輝度ブロックは、４：２：０または４：２：２の彩度サブサンプリングスキームによって符号化され、異なる解像度を有する、請求項１１に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１３】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび／または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項１１に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１４】
前記少なくとも１つのダウンサンプリング最大輝度サンプルを算出することは、前記最大輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含み、前記少なくとも１つのダウンサンプリング最小輝度サンプルを算出することは、前記最小輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含む、請求項１１に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１５】
前記線形モデルを生成することは、前記少なくとも１つのダウンサンプリング最大輝度サンプル及び前記第１の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、前記少なくとも１つのダウンサンプリング最小輝度サンプル及び前記第２の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項１１に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１６】
１つまたは複数のプロセッサと、前記１つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリと、を含むコンピューティング装置で実行されるビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接彩度サンプルのサブ組を予め定められた順で検索して、最大の隣接彩度サンプルおよび最小の隣接彩度サンプルを識別することと、
前記最大の隣接彩度サンプルに対応する、前記複数の再構成された隣接輝度サンプルの第１の輝度サンプル及び最小の隣接彩度サンプルに対応する前記複数の再構成された隣接輝度サンプルの第２の輝度サンプルを識別することと、
前記第１の輝度サンプルに対応するダウンサンプリング最大輝度サンプル及び第２の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出することと、
前記ダウンサンプリング最大彩度サンプルと、前記ダウンサンプリング最小彩度サンプルと、前記最大の隣接彩度サンプルと、前記最小の隣接彩度サンプルとにより、線形モデルを生成することと、
前記再構成された彩度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、
を含むビデオ信号を復号化する方法。
【請求項１７】
前記彩度ブロックおよび前記輝度ブロックは、４：２：０または４：２：２の彩度サブサンプリングスキームによって符号化され、異なる解像度を有する、請求項１６に記載の方法。
【請求項１８】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび／または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項１６に記載の方法。
【請求項１９】
前記少なくとも１つのダウンサンプリング最大輝度サンプルを算出することは、前記最大輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含み、前記少なくとも１つのダウンサンプリング最小輝度サンプルを算出することは、前記最小輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含む、請求項１６に記載の方法。
【請求項２０】
前記線形モデルを生成することは、前記少なくとも１つのダウンサンプリング最大輝度サンプル及び前記第１の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、前記少なくとも１つのダウンサンプリング最小輝度サンプル及び前記第２の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項１６に記載の方法。
【請求項２１】
コンピューティング装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接彩度サンプルのサブ組を予め定められた順で検索して、最大の隣接彩度サンプルおよび最小の隣接彩度サンプルを識別し、
前記最大の隣接彩度サンプルに対応する、前記複数の再構成された隣接輝度サンプルの第１の輝度サンプル及び最小の隣接彩度サンプルに対応する前記複数の再構成された隣接輝度サンプルの第２の輝度サンプルを識別し、
前記第１の輝度サンプルに対応するダウンサンプリング最大輝度サンプル及び第２の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出し、
前記ダウンサンプリング最大彩度サンプルと、前記ダウンサンプリング最小彩度サンプルと、前記最大の隣接彩度サンプルと、前記最小の隣接彩度サンプルとにより、線形モデルを生成し、
前記再構成された彩度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、のような操作を実行させる、コンピューティング装置。
【請求項２２】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接彩度サンプルのサブ組を予め定められた順で検索して、最大の隣接彩度サンプルおよび最小の隣接彩度サンプルを識別し、
前記最大の隣接彩度サンプルに対応する、前記複数の再構成された隣接輝度サンプルの第１の輝度サンプル及び最小の隣接彩度サンプルに対応する前記複数の再構成された隣接輝度サンプルの第２の輝度サンプルを識別し、
前記第１の輝度サンプルに対応するダウンサンプリング最大輝度サンプル及び第２の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出し、
前記ダウンサンプリング最大彩度サンプルと、前記ダウンサンプリング最小彩度サンプルと、前記最大の隣接彩度サンプルと、前記最小の隣接彩度サンプルとにより、線形モデルを生成し、
前記再構成された彩度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する
のような操作を実行させる、非一時的なコンピュータ読取可能な記憶媒体。
【請求項２３】
１つまたは複数のプロセッサと、前記１つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリと、を含むコンピューティング装置で実行されるビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルに基いて複数のダウンサンプリング隣接輝度サンプルを算出することと、
前記複数のダウンサンプリング隣接輝度サンプルのサブ組を予め定められた順で検索して、第１組のダウンサンプリング隣接輝度サンプル及び第２組のダウンサンプリング隣接輝度サンプルを識別することと、
各彩度サンプルがそれぞれ前記第１組のダウンサンプリング隣接輝度サンプルにおける各ダウンサンプリング隣接輝度サンプルに対応する第３組の彩度サンプルを識別することと、
各彩度サンプルがそれぞれ前記第２組のダウンサンプリング隣接輝度サンプルにおける各ダウンサンプリング隣接輝度サンプルに対応する第４組の彩度サンプルを識別することと、前記第３組の彩度サンプルにおける彩度サンプルの平均と、前記第４組の彩度サンプルにおける彩度サンプルの平均と、前記第２組のダウンサンプリング隣接輝度サンプルにおける輝度サンプルの平均と、前記第１組のダウンサンプリング隣接輝度サンプルにおける輝度サンプルの平均とにより、線形モデルを生成することと、
前記再構成されたダウンサンプリング輝度ブロックの対応するサンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、
を含むビデオ信号を復号化する方法。
【請求項２４】
コンピューティング装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルに基いて複数のダウンサンプリング隣接輝度サンプルを算出し、
前記複数のダウンサンプリング隣接輝度サンプルのサブ組を予め定められた順で検索して、第１組のダウンサンプリング隣接輝度サンプル及び第２組のダウンサンプリング隣接輝度サンプルを識別し、
各彩度サンプルがそれぞれ前記第１組のダウンサンプリング隣接輝度サンプルにおける各ダウンサンプリング隣接輝度サンプルに対応する第３組の彩度サンプルを識別し、
各彩度サンプルがそれぞれ前記第２組のダウンサンプリング隣接輝度サンプルにおける各ダウンサンプリング隣接輝度サンプルに対応する第４組の彩度サンプルを識別することと、前記第３組の彩度サンプルにおける彩度サンプルの平均と、前記第４組の彩度サンプルにおける彩度サンプルの平均と、前記第２組のダウンサンプリング隣接輝度サンプルにおける輝度サンプルの平均と、前記第１組のダウンサンプリング隣接輝度サンプルにおける輝度サンプルの平均とにより、線形モデルを生成し、
前記再構成されたダウンサンプリング輝度ブロックの対応するサンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項２５】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルに基いて複数のダウンサンプリング隣接輝度サンプルを算出し、
前記複数のダウンサンプリング隣接輝度サンプルのサブ組を予め定められた順で検索して、第１組のダウンサンプリング隣接輝度サンプル及び第２組のダウンサンプリング隣接輝度サンプルを識別し、
各彩度サンプルがそれぞれ前記第１組のダウンサンプリング隣接輝度サンプルにおける各ダウンサンプリング隣接輝度サンプルに対応する第３組の彩度サンプルを識別し、
各彩度サンプルがそれぞれ前記第２組のダウンサンプリング隣接輝度サンプルにおける各ダウンサンプリング隣接輝度サンプルに対応する第４組の彩度サンプルを識別することと、前記第３組の彩度サンプルにおける彩度サンプルの平均と、前記第４組の彩度サンプルにおける彩度サンプルの平均と、前記第２組のダウンサンプリング隣接輝度サンプルにおける輝度サンプルの平均と、前記第１組のダウンサンプリング隣接輝度サンプルにおける輝度サンプルの平均とにより、線形モデルを生成し、
前記再構成されたダウンサンプリング輝度ブロックの対応するサンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、非一時的なコンピュータ読取可能な記憶媒体。
【請求項２６】
１つまたは複数のプロセッサと、前記１つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリと、を含むコンピューティング装置で実行されるビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出することと、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルをそれぞれ識別することと、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成することと、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、、
を含むビデオ信号を復号化する方法。
【請求項２７】
コンピューティング装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出し、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項２８】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出し、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、非一時的なコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にビデオデータの符号化および復号化に関し、特に、ビデオデータの符号化および復号化においてクロスコンポーネント線形モデルを用いて彩度ブロックを再構成する方法およびシステムに関する。
【背景技術】
【０００２】
デジタル・テレビ、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、デジタル・カメラ、デジタル記録装置、デジタル・メディア・プレーヤー、ビデオ・ゲーム機、スマートフォン、ビデオ会議装置やビデオ・ストリーミング装置などの各種電子装置は全てデジタル・ビデオを支持する。電子装置は、ＭＰＥＧ-４、ＩＴＵ-Ｔ  Ｈ.２６３、ＩＴＵ-Ｔ  Ｈ.２６４／ＭＰＥＧ-４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）及びＶｅｒｓａｔｉｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＶＶＣ）の規格で定義されたビデオ圧縮/展開の標準を実行することで、デジタル・ビデオ・データを受送信し、符号化し、復号化や格納する。ビデオ圧縮は、通常、空間（フレーム内）予測および／または時間（フレーム間）予測を実行して、ビデオデータに固有の冗長性を低減または削除することを含む。ブロックに基づくビデオ符号化において、ビデオフレームは、符号化ツリーユニット（ＣＴＵ：Ｃｏｄｉｎｇ  Ｔｒｅｅ  ＵＮＩＴ)と呼ばれる複数のビデオブロックを含む1つ又は複数のスライスに分割される。各ＣＴＵは、1つの符号化ユニット（ＣＵ）を含み、または予め定められた最小のＣＵサイズに達するまでより小さなＣＵに再帰的に分割されることがある。各ＣＵ（リーフＣＵとも呼ばれる）には、１つまたは複数の変換ユニット（ＴＵ：ｔｒａｎｓｆｏｒｍ  ｕｎｉｔ）と、1つまたは複数の予測ユニット（ＰＵ：ｐｒｅｄｉｃｔｉｏｎ  ｕｎｉｔ）とが含まれる。各ＣＵは、イントラ、インター、またはＩＢＣモードのいずれかで符号化されることが可能である。１つのビデオフレームにおけるイントラ符号化された（I）スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測で符号化される。１つのビデオフレームにおけるインター符号化された（ＰまたはＢ）スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測、または他の以前および／または将来の参照ビデオフレームにおける参照サンプルに関する時間予測を使用する。
【０００３】
以前符号化された参照ブロック、例えば隣接ブロックの空間予測又は時間予測に基いて、符号化対象である現在のビデオブロックの予測ブロックが得られる。参照ブロックを見つける処理は、ブロックマッチングアルゴリズムによって実現することが可能である。符号化対象である現在のブロックと予測ブロックとの間の画素差を示す残差データは、残差ブロック又は予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを生成した参照フレームにおける参照ブロックにポイントする動きベクトルと、残差ブロックとに応じて符号化される。動きベクトルを確定する処理は、通常動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードと残差ブロックによって符号化されるものである。更なる圧縮のために、残差ブロックは画素領域から変換領域、例えば周波数領域に変換され、結果として将来に定量化される残差変換係数が得られる。そして、最初に二次元行列で配置されて定量化された変換係数は、走査されて一次元の変換係数ベクトルを生成し、その後、更なる圧縮を達成するようにビデオ・ビットストリームにエントロピー符号化される。
【０００４】
そして、符号化されたビデオ・ビットストリームは、コンピュータ読取可能な記憶媒体（例えば、フラッシュメモリ）に保存されて、デジタル・ビデオ能力を持つ電子装置によってアクセスされ、或いは有線または無線でこの電子装置に直接送信される。そして、この電子装置は、例えば、符号化されたビデオ・ビットストリームを解析してこのビットストリームから構文要素を取得し、このビットストリームから取得された構文要素の少なくとも一部に基づいてデジタル・ビデオデータをこの符号化されたビデオストリームから元のフォーマットに再構成することで、ビデオ展開（上述したビデオ圧縮とは反対のプロセス）を実行しており、この再構成されたデジタル・ビデオデータを電子装置のディスプレイに再現する。
【０００５】
デジタル・ビデオの品質が高解像度から４Ｋ×２Ｋ、さらに８Ｋ×４Ｋに進んでいるにつれて、符号化／復号化対象となるビデオデータの量は指数関数的に増加する。復号化されたビデオデータの画像品質を維持しながらビデオデータを効率的に符号化／復号化することは、常に課題である。
【発明の概要】
【０００６】
本願は、ビデオデータの符号化および復号化、より具体的には、ビデオデータの符号化および復号化においてクロスコンポーネント線形モデルを用いて彩度ブロックを再構成する方法およびシステムに関する実現を説明する。
【０００７】
本願の第１の方面に従い、ビデオデータを復号化する方法は、１つまたは複数のプロセッサとこの１つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリとを備えるコンピューティング装置で実行される。コンピューティング装置は、彩度ブロックに対応する輝度ブロックを再構成することと、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して最大の輝度サンプルおよび最小の輝度サンプルを識別することと、前記最大の輝度サンプルに対応するダウンサンプリング最大輝度サンプルを算出することと、前記最小の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出することと、前記ダウンサンプリング最大輝度サンプルと、前記ダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより線形モデルを生成することと、前記再構成された輝度ブロックの輝度サンプルから前記彩度ブロックの各彩度サンプルにそれぞれ対応するダウンサンプリング輝度サンプルを算出することと、対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することを含む方法を実行する。
【０００８】
本願の第２の方面に従い、コンピューティング装置は、１つまたは複数のプロセッサと、メモリとメモリに格納されている複数のプログラムとを備える。プログラムは、１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に上述のような操作を実行させる。
【０００９】
本願の第３の方面に従い、非一時的なコンピュータ読取可能な記憶媒体は、１つまたは複数のプロセッサを備えるコンピューティング装置によって実行される複数のプログラムを格納している。プログラムは、１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に上述のような操作を実行させる。
【図面の簡単な説明】
【００１０】
本発明の実現のさらなる理解を提供する、本明細書に引き入れて本明細書の一部を構成する添付図面は、上述した実現を示し、その説明と共に基礎原理を説明するためものである。なお、同一符号は同一または相当な部分を示す。
【００１１】
【図１】図１は、本開示のある実施形態に係るビデオ符号化および復号化システムを例示するブロック図である。
【図２】図２は、本開示のある実施形態に係るビデオエンコーダを例示するブロック図である。
【図３】図３は、本開示のある実施形態に係るビデオデコーダを例示するブロック図である。
【図４】図４Ａ〜４Ｄは、本開示のある実施形態に係る、フレームがどのように再帰的に異なるサイズの複数のビデオブロックにクワッドツリー分割で分割されるかを示すブロック図である。
【図５Ａ】図５Ａは、本開示のある実施形態に係る、符号化対象である現在ＣＵの空間的に隣り合いかつ時間的に並べられたブロック位置を示すブロック図である。
【図５Ｂ】図５Ｂは、本開示のある実施形態に係る、波面並列処理を使用して画像における複数のＣＴＵの複数の行分にマルチスレッド符号化を行うことを示すブロック図である。
【図６】図６Ａおよび６Ｂは、本開示のある実施形態に係る、再構成された輝度ブロックおよび関連彩度ブロックをそれぞれ例示するブロック図である。
【図７】図７Ａ〜７Ｅは、本開示のある実施形態に係る、クロスコンポーネント線形モデルを使用して輝度値と彩度値との間で線形モデルを導出する種々の方法を示している。
【図８】図８は、本開示のある実施形態に係る、ビデオコーデックが、クロスコンポーネント線形モデルを使用して、輝度ブロックから再構成された輝度サンプルに基づいて彩度ブロックの彩度サンプルを再構成する技術を実現するためのプロセスを例示するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を詳細に説明する。以下の詳細な説明において、本明細書に述べる趣旨を容易に理解するために、複数の非限定的な具体的な詳細を述べる。ただし、本発明は、特許請求の範囲及びその趣旨から逸脱することではなく種々の変形により実施することができることは当業者には明らかである。例えば、本明細書に述べる趣旨がデジタルビデオ機能を有する多くの種類の電子装置で実施され得る。
【００１３】
図１は、本開示のある実施形態に係る、ビデオブロックを並列に符号化および復号化するためのシステム１０を例示するブロック図である。図１に示すように、システム１０は、将来目標装置１４によって復号化されるビデオデータを生成し符号化するソース装置１２を含む。ソース装置１２および目標装置１４には、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セットトップボックス、デジタル・テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオ・ゲーム機、ビデオ・ストリーミング装置などを含む多種の電子装置のいずれかを含んでもよい。ある実施形態では、ソース装置１２および目標装置１４は、無線通信機能を備えている。
【００１４】
ある実施形態では、目標装置１４は、リンク１６を介して復号化対象の符号化後のビデオデータを受信する。リンク１６には、符号化されたビデオデータをソース装置１２から目標装置１４に移動させる任意のタイプの通信媒体または装置を含むことが可能である。一つの例では、リンク１６には、ソース装置１２から、符号化されたビデオデータを目標装置１４にリアルタイムで直接送信できる通信媒体を含んでもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信規格に従って変調され、目標装置１４に送信される。通信媒体には、無線周波数（ＲＦ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）スペクトルまたは１つか複数の物理的な伝送路などの任意の無線または有線通信媒体を含むことが可能である。通信媒体は、ローカルエリアネットワークのようなパケットベースのネットワーク、ワイドエリアネットワークまたはインターネット等のようなグローバルネットワークの一部として構成してもよい。通信媒体には、ルーター、交換機、基地局や、ソース装置１２から目標装置１４への通信に役立つ他の任意の装置を含んでもよい。
【００１５】
他のある実施形態では、符号化されたビデオデータは、出力インターフェース２２からストレージ装置３２に送信される。その後、ストレージ装置３２にある符号化されたビデオデータは、入力インターフェース２８を介して目標装置１４によってアクセスされる。ストレージ装置３２には、ハードドライブ、Ｂｌｕ-ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、や符号化されたビデオデータを格納するための他の適切なデジタル記憶媒体などのような多種の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含むことが可能である。他の例では、ストレージ装置３２は、ファイルサーバ、またはソース装置１２によって生成された符号化ビデオデータを保持することができる別の中間ストレージ装置に対応してもよい。目標装置１４は、ストリーミングまたはダウンロードを介してストレージ装置３２から格納されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、符号化されたビデオデータを目標装置１４に送信することができる任意のタイプのコンピュータであることが可能である。例示的なファイルサーバは、ウェブサーバ（例えば、ウェブサイト用）、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）装置、またはローカルディスクドライブを含む。目標装置１４は、ファイルサーバーに保存されている符号化ビデオデータへのアクセスに適する無線チャネル（例えば、Ｗｉ―Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、またはそれらの組み合わせを含む任意の規格データ接続を介して、符号化されたビデオデータをアクセスすることができる。ストレージ装置３２からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであってもよい。
【００１６】
図１に示すように、ソース装置１２は、ビデオソース１８、ビデオエンコーダ２０、および出力インターフェース２２を含む。ビデオソース１８には、ビデオ・キャプチャ装置（例えばビデオカメラ）、前に捕らえられたビデオを含むビデオアーカイブ、ビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェイス、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそれらの組み合わせ等のようなソースを含むことが可能である。一つの例として、ビデオソース１８がセキュリティ監視システムのビデオカメラである場合、ソース装置１２および目標装置１４は、カメラ付き携帯電話またはビデオ電話を構成できる。しかしながら、本願で説明する実施形態は、一般にビデオ符号化に適用可能であり、そして無線および／または有線アプリケーションに適用可能である。
【００１７】
ビデオエンコーダ２０は、捕れるビデオ、予め捕らえられたビデオ、またはコンピュータによって生成されたビデオを符号化することができる。符号化されたビデオデータは、ソース装置１２の出力インターフェース２２を介して目標装置１４に直接送信されることが可能である。加えて（または選択的に）、符号化されたビデオデータは、その後、目標装置１４または他の装置によってアクセスされて復号化および／または再生できるように、ストレージ装置３２に格納されてもよい。出力インターフェース２２は、モデムおよび／または送信機をさらに含んでもよい。
【００１８】
目標装置１４は、入力インターフェース２８、ビデオデコーダ３０、および表示装置３４を含む。入力インターフェース２８は受信機および／またはモデムを含み、リンク１６を介して符号化されたビデオデータを受信する。リンク１６を介して通信された、またはストレージ装置３２に提供された符号化ビデオデータには、ビデオエンコーダ２０によって生成され、ビデオデコーダ３０によるビデオデータの復号化に使用される多くの構文要素を含んでもよい。これらの符号化されたビデオデータは、通信媒体で送信されるか、記憶媒体に記憶されているか、ファイルサーバーに記憶されているかに関わらず、そのような構文要素を含んでもよい。
【００１９】
ある実施形態では、目標装置１４は、集積された表示装置や、目標装置１４と通信できるように構成された外部表示装置である表示装置３４を含んでもよい。表示装置３４は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプの表示装置などの各種の表示装置のいずれかを含んでもよい。
【００２０】
ビデオエンコーダ２０およびビデオデコーダ３０は、ＶＶＣ、ＨＥＶＣ、ＭＰＥＧ-４、Ｐａｒｔ１０、高度なビデオ符号化（ＡＶＣ：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、またはそのような規格の拡張などの専門または業界標準に従って動作する。なお、本願は、特定のビデオ符号化／復号化の標準に限定されず、他のビデオ符号化／復号化規格にも適用可能であることが理解されるべきである。ソース装置１２のビデオエンコーダ２０は、これらの現在または将来の規格のいずれかに従ってビデオデータを符号化するように構成される。同様に、目標装置１４のビデオデコーダ３０は、これらの現在または将来の規格のいずれかに従ってビデオデータを復号化するように構成される。
【００２１】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、離散な論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせなどのような、種々の適切なエンコーダ回路のいずれかによって実現されることが可能である。ソフトウェアによって一部実現される場合、電子装置は、ソフトウェアの命令を適切な非一時的なコンピュータ読取可能な媒体に格納し、１つまたは複数のプロセッサによってハードウェアにおける命令を実行することで本開示に述べたビデオ符号化／復号化操作を実行してもよい。ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれの装置において結合式エンコーダ/デコーダ（ＣＯＤＥＣ）の一部として集積された一つまたは複数のエンコーダまたはデコーダに含まれてもよい。
【００２２】
図２は、本願で説明されるある実施形態に係るビデオエンコーダ２０を例示するブロック図である。ビデオエンコーダ２０は、ビデオフレーム内のビデオブロックに対してイントラ予測符号化およびインター予測符号化を実行することができる。イントラ予測符号化は空間予測に依存し、特定のビデオフレームまたは画像内のビデオデータの空間的冗長性を低減または削除する。インター予測符号化は、時間予測に依存し、ビデオシーケンスの隣接するビデオフレームまたは画像内のビデオデータの時間的冗長性を低減または削除する。
【００２３】
図２に示すように、ビデオエンコーダ２０は、ビデオデータメモリ４０、予測処理部４１、復号化画像バッファ（ＤＰＢ）６４、加算器５０、変換処理部５２、定量化部５４、エントロピー符号化部５６を備えている。予測処理部４１は、動き推定部４２、動き補償部４４、分割部４５、イントラ予測処理部４６、イントラブロックコピー（ＢＣ）部４８をさらに備えている。ある実施形態では、ビデオエンコーダ２０はまた、ビデオブロック再構成のための逆定量化部５８、逆変換処理部６０、および加算器６２をさらに備えている。加算器６２とＤＰＢ６４との間には、再構成されたビデオからブロック同士の境界をフィルタリングしてブロック性アーチファクトを除去するデブロッキング・フィルタ（図示せず）を配置することが可能である。また、加算器６２の出力をフィルタリングするために、デブロッキング・フィルタに加えて、環内フィルタ（図示せず）を用いてもよい。ビデオエンコーダ２０は、固定的、またはプログラマブル・ハードウェアユニットの形態で形成してもよいし、または図示された固定的またはプログラマブル・ハードウェアユニットの1つ又は複数内で分割されてもよい。
【００２４】
ビデオデータメモリ４０は、ビデオエンコーダ２０における部品によって符号化対象のビデオデータを格納する。ビデオデータメモリ４０におけるビデオデータは、例えばビデオソース１８から得られる。ＤＰＢ６４は、ビデオエンコーダ２０によってビデオデータを（例えば、イントラ予測またはインター予測符号化モードで）符号化する際に使用される参照ビデオデータを格納するバッファである。ビデオデータメモリ４０およびＤＰＢ６４は、種々のメモリデバイスのいずれかで形成されることが可能である。種々の例では、ビデオデータメモリ４０は、ビデオエンコーダ２０における他の部品とともにオンチップであってもよく、またはそれらの部品に対するオフチップであってもよい。
【００２５】
図２に示すように、ビデオデータを受信した後、予測処理部４１における分割部４５は、このビデオデータをビデオブロックに分割する。この分割には、このビデオデータに関するｑｕａｄ−ｔｒｅｅ構造のような予め定められた分割構造に従って、ビデオフレームをスライス、タイルまたは他のより大きい符号化ユニット（ＣＵ）に分割することを含んでもよい。ビデオフレームは、複数のビデオブロック（または、タイルと称されるビデオブロックトセット）に分割されることができる。予測処理部４１は、現在のビデオブロックに対して、エラー結果（例えば、符号化率および歪みレベル）に基づいて、複数のイントラ予測符号化モードのうちの１つまたは複数のインター予測符号化モードのうちの１つを選択するように、複数の可能な予測符号化モードのうちの１つを選択する。そして、予測処理部４１は、得られたイントラ又はインター予測符号化ブロックを加算器５０に提供して残差ブロックを生成し、その後の参照フレームの一部として使用するように符号化ブロックを再構成する。また、予測処理部４１は、さらに動きベクトル、イントラモードインジケータ、分割情報及び他の構文情報のような構文要素をエントロピー符号化部５６に提供する。
【００２６】
予測処理部４１におけるイントラ予測処理部４６は、現在のビデオブロックに適したイントラ予測符号化モードを選択するために、符号化対象である現在のブロックと同一のフレーム内の１つまたは複数の隣接ブロックと関連して、現在のビデオブロックのイントラ予測符号化を実行して空間予測を行うことができる。予測処理部４１における動き推定部４２および動き補償部４４は、一つ又は複数の参照フレーム内の一つ又は複数の予測ブロックに関連して、現在のビデオブロックのインター予測符号化を実行して時間予測を行う。ビデオエンコーダ２０は、複数のパスの符号化処理を実行して、例えばビデオデータにおける各ブロックに対して適切な符号化モードを選択してもよい。
【００２７】
ある実施形態では、動き推定部４２は、ビデオフレームのシーケンスの予め定められたパターンに従って、参照ビデオフレーム内における予測ブロックに対する現在のビデオフレーム内におけるビデオブロックの予測ユニット（ＰＵ）の変位を示す動きベクトルを生成することで、現在のビデオフレームに対してインター予測モードを決定する。動き推定部４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、現在のビデオ・フレームまたは画像内における符号化されている現在のビデオブブロック（または他の符号化ユニット）に対する基準フレーム（または他の符号化ユニット）内における予測ブロックに対して、現在のビデオ・フレーム内におけるビデオブロックのＰＵの変位を示すことができる。予め定められたパターンは、シーケンスにおけるビデオ・フレームをＰフレームまたはＢフレームとして指定できる。イントラＢＣ部４８は、動き推定部４２によるインター予測のための動きベクトルの決定と同様な方法により、イントラＢＣ符号化のためのベクトル、例えばブロックベクトルを決定してもよいし、または動き推定部４２を利用してブロックベクトルを決定してもよい。
【００２８】
絶対差の合計（ＳＡＤ）、二乗差の合計（ＳＳＤ）又はその他の差メトリックによって決定できる画素差では、予測ブロックは、符号化対象のビデオブロックのＰＵと厳密にマッチングされる参照フレームにおけるブロックである。ある実施形態では、ビデオエンコーダ２０は、ＤＰＢ６４に格納されている参照フレームのサブ整数画素位置の値を算出することが可能である。例えば、ビデオエンコーダ２０は、参照フレームの１／４画素位置、1／８の画素位置、または他の分数の画素位置の値を補間してもよい。したがって、動き推定装置４２は、すべての画素位置および分数画素位置に対して動き探索処理を実行して、分数画素精度を有する動きベクトルを出力ことができる。
【００２９】
動き推定部４２は、インター予測符号化フレーム内におけるビデオブロックのＰＵの位置と、それぞれＤＰＢ６４に格納されている１つまたは複数の参照フレームを識別する第１の参照フレームリスト（Ｌｉｓｔ０）または第２の参照フレームリスト（Ｌｉｓｔ１）から選択された参照フレームの予測ブロックの位置と比較することで、ビデオブロックのＰＵの動きベクトルを算出する。動き推定部４２は、算出された動きベクトルを動き補償部４４に送信し、そしてエントロピー符号化部５６に送信する。
【００３０】
動き補償部４４によって実行される動き補償には、動き推定部４２によって決定された動きベクトルに基づいて予測ブロックを取得または生成することを含み得る。動き補償部４４は、現在のビデオブロックのＰＵの動きベクトルを受信すると、参照フレームリストの1つにおいてこの動きベクトルが指している予測ブロックを位置決めし、ＤＰＢ６４からこの予測ブロックを探し、この予測ブロックを加算器５０に転送する。そして、加算器５０は、符号化されている現在のビデオブロックの画素値から動き補償部４４によって提供された予測ブロックの画素値を差し引くことで、画素差値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差値は、輝度差成分または彩度差成分、あるいはその両方を含み得る。また、動き補償部４４は、ビデオフレームのビデオブロックに関する構文要素をさらに生成して、ビデオデコーダ３０によってビデオフレームのビデオブロックを復号化する際に使用する。構文要素には、例えば、この予測ブロックを識別するための動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書で説明される任意の他の構文情報を含み得る。なお、動き推定部４２および動き補償部４４は、概念的な目的のために個別に示されているが、高度に集積されてもよい。
【００３１】
ある実施形態では、イントラＢＣ部４８は、動き推定部４２および動き補償部４４に関して上述した方法と同様の方法によりベクトルを生成し、予測ブロックを取得することができるが、ここで、予測ブロックは符号化されている現在のブロックと同じフレームにあるものであり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれる。特に、イントラＢＣ部４８は、一つのイントラ予測モードを決定して現在のブロックを符号化することができる。ある例では、イントラＢＣ部４８は、例えば個別のパスの符号化において、多種類のイントラ予測モードを使用して現在のブロックを符号化し、レート歪み解析によりそれらのパフォーマンスをテストすることが可能である。次に、イントラＢＣ部４８は、テストされた種々のイントラ予測モードから、一つの適切なイントラ予測を選択し使用して、対応するイントラモードインジケータを生成する。例えば、イントラＢＣ部４８は、テストされた種々のイントラ予測モードのレート歪み値をレート歪み解析により算出し、テストされたモードからレート歪み特性が最適なイントラ予測モードを適切なイントラ予測モードとして選択し使用してもよい。レート歪み解析では、通常、符号化されたブロックと符号化されてこの符号化されたブロックを生成した符号化が実施されていない元のブロックとの間の歪み（又は、エラー）の量、およびこの符号化されたブロックを生成するために使用されるビットレート（すなわち、複数のビット）が決定される。イントラＢＣ部４８は、種々の符号化されたブロックについて歪み及びレートから比率を算出して、どのイントラ予測モードがこのブロックに対して最適なレート歪み値を示しているかを決定してもよい。
【００３２】
別の例では、イントラＢＣ部４８は、動き推定部４２および動き補償部４４を全体的または一部的に使用して、本明細書に記載の実施形態に基づくイントラＢＣ予測用いられる係る機能を実行してもよい。いずれの場合も、イントラ・ブロック・コピーについては、予測ブロックは、絶対差の合計（ＳＡＤ）、二乗差の合計（ＳＳＤ）または他の差メトリックによって決定できる画素差で、符号化対象のブロックと厳密にマッチングすると考えるものであり、予測ブロックの識別には、サブ整数画素位置の値の算出が含まれる場合がある。
【００３３】
ビデオエンコーダ２０は、予測ブロックがイントラ予測に基づく同じフレームからのものであるか、インター予測に基づく異なるフレームからのものであるかに関わらず、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を差し引いて画素差値を形成することで、残差ビデオブロックを生成することができる。残差ビデオブロックを形成している画素差値には、輝度成分差及び彩度成分差の両方を含むことが可能である。
【００３４】
イントラ予測処理部４６は、上述した動き推定部４２および動き補償部４４によって実行されるインター予測、またはイントラＢＣ部４８によって実行されるイントラ・ブロック・コピー予測の代わりに、現在のビデオブロックに対してイントラ予測することができる。特に、イントラ予測処理部４６は、１つのイントラ予測モードを決定して現在のブロックを符号化することができる。それを実現するために、イントラ予測処理部４６は、例えば、個別のパスの符号化処理において、種々のイントラ予測モードを使用して現在のブロックを符号化し、イントラ予測処理部４６（またはある例では、モード選択部）は、テストされたイントラ予測モードから１つの適切なイントラ予測モードを選択し使用してもよい。イントラ予測処理部４６は、このブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化部５６に提供してもよい。エントロピー符号化部５６は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【００３５】
予測処理部４１がインター予測またはイントラ予測により現在のビデオブロックの予測ブロックを決定した後、加算器５０は、現在のビデオブロックからこの予測ブロックを差し引くことで残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、１つまたは複数の変換ユニット（ＴＵ）に含まれて変換処理部５２に提供される。変換処理部５２は、離散コサイン変換（ＤＣＴ）または概念的に類似する変換などにより、残差ビデオデータを残差変換係数に変換することができる。
【００３６】
変換処理部５２は、得られた変換係数を定量化部５４に送信する。定量化部５４は、これらの変換係数を定量化して、ビットレートをさらに低減する。定量化プロセスは、これらの係数の一部または全部に関連するビット深度を減らすこともできる。定量化の度合いは、定量化パラメータを調整することによって変更されることができる。そして、ある例では、定量化部５４は、定量化された変換係数を含む行列の走査を実行することができる。この走査は、エントロピー符号化部５６によって実行されることが可能である。
【００３７】
定量化に続いて、エントロピー符号化部５６は、例えば、コンテキスト適応可変長符号化（ＣＡＶＬＣ）、コンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ）、構文ベースのコンテキスト適応バイナリ算術符号化（ＳＢＡＣ）、確率間隔分割エントロピー（ＰＩＰＥ）符号化または別のエントロピー符号化方法または技術により、定量化された変換係数を、ビデオ・ビットストリームにエントロピー符号化する。そして、符号化されたビットストリームは、ビデオデコーダ３０に送信されてもよいし、またはその後にビデオデコーダ３０へ送信するか、またはビデオデコーダ３０による検索のためにストレージ装置３２にアーカイブされてもよい。また、エントロピー符号化部５６は、符号化されている現在のビデオフレームのための動きベクトルおよび他の構文要素をエントロピー符号化してもよい。
【００３８】
逆定量化部５８および逆変換処理部６０は、それぞれ、逆定量化および逆変換により、他のビデオブロックの予測に使用される参照ブロックを生成するための画素領域内の残差ビデオブロックを再構成する。上記のように、動き補償部４４は、ＤＰＢ６４に格納されたフレームの１つまたは複数の参照ブロックから動き補償予測ブロックを生成することができる。また、動き補償部４４は、この予測ブロックに１つまたは複数の補間フィルタを適用して、動き推定に使用されるサブ整数画素値を算出することもできる。
【００３９】
加算器６２は、再構成された残差ブロックを動き補償部４４によって生成された動き補償予測ブロックに加算して、ＤＰＢ６４に格納する参照ブロックを生成する。そして、この参照ブロックは、予測ブロックとして、イントラＢＣ部４８、動き推定部４２および動き補償部４４に使用されて後続のビデオフレーム内の別のビデオブロックをインター予測することが可能である。
【００４０】
図３は、本願のある実施形態に係るビデオデコーダ３０を例示するブロック図である。ビデオデコーダ３０は、ビデオデータメモリ７９、エントロピー復号化部８０、予測処理部８１、逆定量化部８６、逆変換処理部８８、加算器９０およびＤＰＢ９２を備える。予測処理部８１は、動き補償部８２、イントラ予測処理部８４及びイントラＢＣ部８５をさらに備える。ビデオデコーダ３０は、図２に参照してビデオエンコーダ２０に関して上述した符号化プロセスとおおよそ逆の復号化プロセスを実行することができる。例えば、動き補償部８２は、エントロピー復号部８０から受信した動きベクトルに基づいて予測データを生成し、イントラ予測部８４は、エントロピー復号化部８０から受信したイントラ予測モードインジケータに基づいて予測データを生成することができる。
【００４１】
ある例では、ビデオデコーダ３０における一つの構成要素が本願の実施を実行する任務を負ってもよい。また、ある例では、本開示の実施は、ビデオデコーダ３０における１つまたは複数の構成要素に分割されてもよい。例えば、イントラＢＣ部８５は、本願の実施を単独で実現してもよく、または動き補償部８２、イントラ予測処理部８４およびエントロピー復号化部８０などのビデオデコーダ３０における他の構成要素と組み合わせて実現してもよい。ある例では、ビデオデコーダ３０は、イントラＢＣ部８５を含まなく、イントラＢＣ部８５の機能が動き補償部８２などの予測処理部８１における他の構成要素によって実現されてもよい。
【００４２】
ビデオデータメモリ７９は、ビデオデコーダ３０における他の構成要素によって復号化される符号化ビデオビットストリームなどのビデオデータを格納することができる。ビデオデータメモリ７９に格納されたビデオデータは、例えば、ストレージ装置３２から取得したり、ビデオデータの有線または無線ネットワーク通信や物理データ記憶媒体（例えば、フラッシュドライブやハードディスク）へのアクセスによりカメラなどのローカルビデオソースから取得し得る。ビデオデータメモリ７９は、符号化されたビデオビットストリームから符号化されたビデオデータを格納する符号化画像バッファ（ＣＰＢ）を含んでもよい。ビデオデコーダ３０における復号化画像バッファ（ＤＰＢ）９２は、ビデオデコーダ３０（例えば、イントラ予測またはインター予測符号化モード）によるビデオデータの復号化に使用される参照ビデオデータを格納する。ビデオデータメモリ７９およびＤＰＢ９２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗変化型ＲＡＭ（ＲＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または他のタイプのメモリデバイスなどの種々のメモリデバイスのいずれかによって形成されることができる。説明の便利上、ビデオデータメモリ７９およびＤＰＢ９２は、図３ではビデオデコーダ３０における２つの異なる構成要素として示されている。しかし、当業者にとっては、ビデオデータメモリ７９およびＤＰＢ９２が同じメモリデバイス又は異なるメモリデバイスによって提供されることは明らかである。ある例では、ビデオデータメモリ７９は、ビデオデコーダ３０における他の構成要素とともにオンチップであってもよく、それらの構成要素に対するオフチップであってもよい。
【００４３】
復号化プロセスにおいて、ビデオデコーダ３０は符号化されたビデオフレームのビデオブロックおよび関連構文要素を示す符号化されたビデオビットストリームを受信する。ビデオデコーダ３０は、ビデオフレームレベルおよび／またはビデオブロックレベルで構文要素を受信することができる。ビデオデコーダ３０のエントロピー復号化部８０は、このビットストリームをエントロピー復号化して、定量化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他の構文要素を生成する。そして、エントロピー復号化部８０は、動きベクトルおよび他の構文要素を予測処理部８１に転送する。
【００４４】
ビデオフレームがイントラ予測符号化（Ｉ）フレームに符号化された場合、または他のタイプのフレームのイントラ符号化予測ブロックに用いられる場合には、予測処理部８１におけるイントラ予測処理部８４は、通知されたイントラ予測モードと、現在のフレームからの以前復号化されたブロックからの参照データとに基づいて、現在のビデオフレームのビデオブロックの予測データを生成することができる。
【００４５】
ビデオフレームがインター予測符号化（すなわち、ＢまたはＰ）フレームに符号化された場合、予測処理部８１における動き補償部８２は、エントロピー復号化部８０から受信した動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックの１つまたは複数の予測ブロックを生成することができる。各予測ブロックは、参照フレームリストのうちの１つの参照フレーム内から生成される。ビデオデコーダ３０は、ＤＰＢ９２に格納された参照フレームに基いて、デフォルトの構成技術によりこの参照フレームリスト、Ｌｉｓｔ０およびＬｉｓｔ１を構成することができる。
【００４６】
ある例では、ビデオブロックがここで述べたイントラＢＣモードに従って符号化された場合には、予測処理部８１におけるイントラＢＣ部８５は、エントロピー復号化部８０から受信したブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックの予測ブロックを生成する。この予測ブロックは、ビデオエンコーダ２０によって定義された現在のビデオブロックと同一の画像の再構成領域内にあり得る。
【００４７】
動き補償部８２および／またはイントラＢＣ部８５は、動きベクトルおよび他の構文要素を解析することによって現在のビデオフレームのビデオブロックの予測情報を決定し、そして、この予測情報を使用して復号化されている現在のビデオブロックの予測ブロックを生成する。例えば、動き補償部８２は、受信した構文要素の一部を使用して、このビデオフレームのビデオブロックを符号化するための予測モード（例えば、イントラ予測またはインター予測）、インター予測フレームタイプ（例えば、ＢまたはＰ）、このフレームに関する１つまたは複数の参照フレームリストのための構造情報、このフレームの各インター予測符号化ビデオブロックに関する動きベクトル、このフレームの各インター予測符号化ビデオブロックに関するインター予測状態、および現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定する。
【００４８】
同様に、イントラＢＣ部８５は、受信した構文要素の一部を使用することができる。例えば、現在のビデオブロックがイントラＢＣモード予測であることを決定するためのフラグ、このフレームのどんなビデオブロックが再構成領域内にあり且つＤＰＢ９２に格納されるべきかに関する構造情報、このフレームにおける各イントラＢＣ予測ビデオブロックに関するブロックベクトル、このフレームにおける各イントラＢＣ予測ビデオブロックに関するイントラＢＣ予測状態、及び現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を使用することができる。
【００４９】
また、動き補償部８２は、ビデオエンコーダ２０がビデオブロックの符号化において使用した補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素に対する補間値を算出することもできる。この場合、動き補償部８２は、受信した構文要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【００５０】
逆定量化部８６は、ビデオエンコーダ２０によって定量化の度合いを決定するためにこのビデオフレーム内の各ビデオブロックに対して算出された定量化パラメータと同じものを使用して、ビットストリームで提供され且つエントロピー復号化部８０によってエントロピー復号化された定量化の変換係数を逆定量化する。逆変換処理部８８は、画素領域における残差ブロックを再構成するために、逆変換、例えば逆ＤＣＴ、逆整数変換、または概念的に類似の逆変換処理を変換係数に適用する。
【００５１】
動き補償部８２またはイントラＢＣ部８５がこのベクトルおよび他の構文要素に基づいて現在のビデオブロックの予測ブロックを生成した後、加算器９０は、逆変換処理部８８からの残差ブロックと動き補償部８２またはイントラＢＣ部８５によって生成された対応する予測ブロックとを加算することで、現在のビデオブロックに対して復号化されたビデオブロックを再構成する。インループフィルタ（図示せず）は加算器９０とＤＰＢ９２との間に配置されて、この復号化されたビデオブロックをさらに処理することが可能である。そして、所定のフレーム内の復号化されたビデオブロックは、次のビデオブロックのその後の動き補償に使用される参照フレームを格納するＤＰＢ９２に格納される。また、ＤＰＢ９２、またはＤＰＢ９２とは別のメモリデバイスには、その後に図１の表示装置３４などのような表示装置に表示するために、復号化されたビデオも格納されることが可能である。
【００５２】
典型的なビデオ符号化プロセスでは、１つのビデオシーケンスは通常順序付けられたフレームまたは画像のセットを含む。各フレームには、ＳＬ、ＳＣｂおよびＳＣｒの３つのサンプル行列を含める。ＳＬは、輝度サンプルの２次元行列である。ＳＣｂは、Ｃｂ彩度サンプルの２次元行列である。ＳＣｒは、Ｃｒ彩度サンプルの２次元行列である。他の例では、フレームはモノクロである可能性があり、この場合、１つの輝度サンプルの２次元行列のみが含まれる。
【００５３】
図４Ａに示すように、ビデオエンコーダ２０（または、より具体的には分割部４５）は、最初にフレームを1組の符号化ツリーユニットに分割することにより、このフレームの符号化表現を生成する。ビデオフレームには、ラスター走査順で左から右、および上から下に連続的に順序付けられた整数個のＣＴＵが含まれる。各ＣＴＵは、最大の論理符号化ユニットであり、幅および高さが、ビデオシーケンス内のすべてのＣＴＵが１２８×１２８、６４×６４、３２×３２及び１６×１６のうちの１つと同じサイズを有するように、ビデオエンコーダ２０によってシーケンスパラメータセットで転送される。なお、本願は必ずしも特定のサイズに限定されない。図４Ｂに示すように、各ＣＴＵは、輝度サンプルの１つの符号化ツリーブロック（ＣＴＢ）、彩度サンプルの２つの符号化ツリーブロック、および符号化ツリーブロックのサンプルを符号化するために使用される構文要素を含み得る。構文要素は、画素の符号化ブロックの異なるタイプのユニットの属性と、どのようにビデオデコーダ３０においてビデオシーケンスを再構成するかを記述する。例えば、インター予測またはイントラ予測、イントラ予測モード、動きベクトルおよび他のパラメータを含む。モノクロ画像または３つの個別の色平面を有する画像では、ＣＴＵが、単一の符号化ツリーブロックと、この符号化ツリーブロックのサンプルを符号化するために使用される構文要素とを含み得る。符号化ツリーブロックは、Ｎ×Ｎブロックのサンプルであることが可能である。
【００５４】
より良いパフォーマンスを達成するために、ビデオエンコーダ２０は、ＣＴＵの符号化ツリーブロックに対してバイナリツリー分割、クアッドツリー分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行して、このＣＴＵをより小さな符号化ユニット（ＣＵ）に分割することができる。より良いパフォーマンスを達成するために、ビデオエンコーダ２０は、ＣＴＵの符号化ツリーブロックに対してバイナリツリー分割、クアッドツリー分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行して、このＣＴＵをより小さな符号化ユニット（ＣＵ）に分割することができる。図４Ｃに示すように、６４×６４のＣＴＵ４００は、まず、４つの小さな３２×３２ブロックサイズに分割される。これらの４つの小さいＣＵのうち、ＣＵ４１０及びＣＵ４２０は、それぞれ４つの１６×１６ブロックサイズのＣＵに分割される。２つの１６×１６ブロックサイズのＣＵ４３０および４４０は、それぞれ４つの８×８ブロックサイズのＣＵにさらに分割される。図４Ｄは、図４Ｃに示されたＣＴＵ４００の分割プロセスの最終的な結果を表すクワッドツリーデータ構造を示し、クワッドツリーにおける各リーフノードは、３２×３２から８×８までの各サイズ範囲における１つのＣＵに対応する。図４Ｂに示されたＣＴＵのように、各ＣＵは、同じサイズのフレームにおける１つの輝度サンプルの符号化ブロック（ＣＢ）と、彩度サンプルの２つの対応する符号化ブロックと、これらの符号化ブロックのサンプルを符号化するために使用される構文要素とを含み得る。モノクロ画像または３つの個別の色平面を有する画像において、１つのＣＵは、単一の符号化ブロックと、この符号化ブロックのサンプルを符号化するために使用される構文構造とを含み得る。
【００５５】
ある実施形態では、ビデオエンコーダ２０は、さらにＣＵの符号化ブロックを１つまたは複数のＭ×Ｎ予測ブロック（ＰＢ）に分割するこができる。予測ブロックは、同じ予測（インター予測またはイントラ予測）が適用される長方形（正方形または非正方形）のサンプルブロックである。ＣＵの予測ユニット（ＰＵ）は、１つの輝度サンプルの予測ブロック、彩度サンプルの２つの対応する予測ブロック、およびこれらの予測ブロックを予測するために使用される構文要素を含み得る。モノクロ画像または３つの個別の色平面を有する画像では、ＰＵは単一の予測ブロックと、予測ブロックを予測するために使用される構文構造とを含み得る。ビデオエンコーダ２０は、ＣＵの各ＰＵの輝度予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックに対する予測的な輝度ブロック、予測的なＣｂブロック、および予測的なＣｒブロックを生成することができる。
【００５６】
ビデオエンコーダ２０は、イントラ予測またはインター予測により、ＰＵのこれらの予測ブロックを生成することができる。ビデオエンコーダ２０は、イントラ予測によりＰＵの予測ブロックを生成する場合、このＰＵに関連するフレームの復号化されたサンプルに基づいて、このＰＵの予測的なブロックを生成することができる。ビデオエンコーダ２０は、インター予測によりＰＵの予測ブロックを生成する場合、このＰＵに関連するフレーム以外の１つまたは複数のフレームの復号化されたサンプルに基づいて、このＰＵの予測的なブロックを生成することができる。
【００５７】
ビデオエンコーダ２０は、ＣＵの１つまたは複数のＰＵの予測的な輝度ブロック、予測的なＣｂブロック、および予測的なＣｒブロックを生成した後、ＣＵの元の輝度符号化ブロックからＣＵの予測的な輝度ブロックを差し引くことによって、ＣＵの輝度残差ブロックにおける各サンプルが、ＣＵの１つの予測的な輝度ブロックにおける輝度サンプルとＣＵの元の輝度符号化ブロックにおける対応するサンプルとの差を示すように、ＣＵの輝度残差ブロックを生成することができる。同様に、ビデオエンコーダ２０は、ＣＵのＣｂ残差ブロックにおける各サンプルが、ＣＵの１つの予測的なＣｂブロックにおけるＣｂサンプルとＣＵの元のＣｂ符号化ブロックにおける対応するサンプルとの差を示し、ＣＵのＣｒ残差ブロックにおける各サンプルがＣＵの１つの予測的なＣｒブロックにおけるＣｒサンプルとＣＵの元のＣｒ符号化ブロックにおける対応するサンプルとの差を示すように、ＣＵのＣｂ残差ブロックおよびＣｒ残差ブロックをそれぞれ生成することができる。
【００５８】
さらに、図４Ｃに示すように、ビデオエンコーダ２０は、クワッドツリー分割により、ＣＵの輝度残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロックを１つまたは複数の輝度変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに分解することができる。変換ブロックは、同じ変換が適用される長方形（正方形または非正方形）のサンプルブロックである。ＣＵの変換ユニット（ＴＵ）は、輝度サンプルの変換ブロック、彩度サンプルの２つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用される構文要素を含み得る。したがって、ＣＵの各ＴＵは、１つの輝度変換ブロック、１つのＣｂ変換ブロック、および１つのＣｒ変換ブロックに関連付けられる。ある例では、ＴＵに関連付けられた輝度変換ブロックは、ＣＵの輝度残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロ画像または３つの個別の色平面を有する画像では、ＴＵが、単一の変換ブロックと、この変換ブロックのサンプルを変換するために使用される構文構造とを含み得る。
【００５９】
ビデオエンコーダ２０は、１つまたは複数の変換をＴＵの輝度変換ブロックに適用して、ＴＵの輝度係数ブロックを生成することができる。係数ブロックは、変換係数の２次元行列であり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのＣｂ変換ブロックに適用して、ＴＵのＣｂ係数ブロックを生成することができる。ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのＣｒ変換ブロックに適用して、ＴＵのＣｒ係数ブロックを生成することができる。
【００６０】
ビデオエンコーダ２０は、係数ブロック（例えば、輝度係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後、係数ブロックを定量化することができる。定量化とは、一般的に、変換係数を定量化してこの変換係数を示すデータの量をなるべく低減し、更なる圧縮を提供することを意味する。ビデオエンコーダ２０は、係数ブロックを定量化した後、定量化された変換係数を示す構文要素をエントロピー符号化することが可能できる。例えば、ビデオエンコーダ２０は、定量化された変換係数を示す構文要素にコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）を実行してもよい。最終的に、ビデオエンコーダ２０は、符号化されたフレームおよび関連データの表現を形成するビットシーケンスを含むビットストリームを出力し、ビットストリームはストレージ装置３２に保存されか、または目標装置１４に送信される。
【００６１】
ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信した後、このビットストリームを解析して、ビットストリームから構文要素を取得する。ビデオデコーダ３０は、ビットストリームから取得された構文要素の少なくとも一部に基づいて、ビデオデータのフレームを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ２０によって実行された符号化プロセスと逆である。例えば、ビデオデコーダ３０は、現在のＣＵのＴＵに関連する係数ブロックに対して逆変換を実行して、現在のＣＵのＴＵに関連する残差ブロックを再構成することが可能である。また、ビデオデコーダ３０は、現在のＣＵのＰＵに対する予測ブロックのサンプルと現在のＣＵのＴＵの変換ブロックの対応するサンプルとを加算することによって、現在のＣＵの符号化ブロックを再構成する。フレームの各ＣＵの符号化ブロックが再構成された後、ビデオデコーダ３０はこのフレームを再構成することが可能である。
【００６２】
上述したように、ビデオ符号化では、主に２つのモード、即ちイントラフレーム予測（またはイントラ予測）及びインターフレーム予測（またはインター予測）を使用してビデオ圧縮を実現する。なお、ＩＢＣは、イントラフレーム予測または３第三モードと見なすことができる。この２つのモードを比べると、インターフレーム予測は動きベクトルを使用して参照ビデオブロックから現在のビデオブロックを予測するため、イントラフレーム予測より符号化効率に大きく貢献する。
【００６３】
しかし、ビデオデータ・キャプチャ技術の向上及びビデオデータの詳細を保持するためのより精細化的なビデオブロックサイズにつれて、現在のフレームの動きベクトルを表すために必要なデータの量も大幅に増加している。この課題を解決するための１つの手段は、空間ドメインと時間ドメインにおける１組の隣り合うＣＵが、予測目的のための同じビデオデータを含むだけでなく、これらの隣り合うＣＵ間で動きベクトルも同様であるという事実から利益を得ることになる。したがって、空間的に隣り合うＣＵおよび／または時間的に並ぶＣＵの動き情報と現在のＣＵの動き情報（例えば、動きベクトル）との空間的および時間的相関性を探索することにより、空間的に隣り合うＣＵおよび／または時間的に並ぶＣＵの動き情報を、現在のＣＵの「動きベクトル予測子」（ＭＶＰ）もという動き情報の近似として使用することが可能である。
【００６４】
図２に示された上述の動き推定部４２によって決定された現在のＣＵの実際の動きベクトルをビデオビットストリームに符号化する代わりに、現在のＣＵの実際の動きベクトルから現在のＣＵの動きベクトル予測子を差し引くにより、現在のＣＵの動きベクトル差（ＭＶＤ）を生成する。このようにすることで、動き推定部４２がフレームの各ＣＵに対して決定した動きベクトルをビデオビットストリームに符号化する必要がなく、ビデオビットストリームにおける動き情報を表すためのデータの量を大幅に減らすことができる。
【００６５】
符号化ブロックのインターフレーム予測中に参照フレーム内から予測ブロックを選択するプロセスと同様に、ビデオエンコーダ２０及びビデオデコーダ３０は、１組のルールに従って、現在のＣＵの空間的に隣り合うＣＵおよび／または時間的に並ぶＣＵに関連する潜在的な候補動きベクトルを使用して、動きベクトル候補リスト（「マージリスト」とも呼ばれる）を構成し、そしてこの動きベクトル候補リストから１つを選択して現在のＣＵの動きベクトル予測子とする必要がある。このように、ビデオエンコーダ２０とビデオデコーダ３０との間で動きベクトル候補リスト自身を送信する必要がなく、動きベクトル候補リスト内の選択された動きベクトル予測子の索引は、ビデオエンコーダ２０およびビデオデコーダ３０が動きベクトル候補リスト内で同じ動きベクトル予測子を使用して現在のＣＵを符号化および復号化することに十分である。
【００６６】
ある実施形態では、各インター予測ＣＵは、動きベクトル候補リストを構成するためのインター（「高度な動きベクトル予測」（ＡＭＶＰとも呼ばれる））、スキップ、およびマージを含む３つの動きベクトル予測モードを有する。各モードでは、以下に説明するアルゴリズムに従って、１つまたは複数の動きベクトル候補を動きベクトル候補リストに追加することができる。最終的に、候補リスト内のそれらの動きベクトル候補のうちの１つは、ビデオエンコーダ２０によってビデオビットストリームに符号化されるか、またはビデオデコーダ３０によってビデオビットストリームから復号化されるインター予測ＣＵの最適な動きベクトル予測子として使用される。候補リストから最適な動きベクトル予測子を見つけるために、動きベクトル競合（ＭＶＣ）スキームが導入されて、空間的および時間的動きベクトル候補を含む所定の動きベクトルの候補セット、すなわち動きベクトル候補リストから１つの動きベクトルが選択されるようにする。
【００６７】
動きベクトル予測子候補は、空間的に隣り合い、または時間的に並ぶＣＵから導出されることに加えて、いわゆる「履歴ベースの動きベクトル予測」（ＨＭＶＰ）テーブルからも導出されることが可能である。ＨＭＶＰテーブルには、それぞれが同じ行のＣＴＵ（または同じＣＴＵであることがある）の特定のＣＵを符号化/復号化するために使用された予め定められた数の動きベクトル予測子が収納されている。これらのＣＵの空間的/時間的の近接性によって、ＨＭＶＰテーブルにおける動きベクトル予測子の１つが、同じ行のＣＴＵ内の異なるＣＵを符号化/復号化するように再利用される可能は非常に高い。したがって、動きベクトル候補リストを構成する過程にＨＭＶＰテーブルを使用することにより、より高い符号化効率を達成することが可能である。
【００６８】
ある実施形態では、ＨＭＶＰテーブルは固定の長さ（例えば５）を有し、先入れ先出し（ＦＩＦＯ）の方式で管理される。例えば、ＣＵの１つのインター符号化ブロックを復号化する際に、ＣＵの動きベクトルを再構成する。再構成された動きベクトルが後続のＣＵの動きベクトル予測子になる可能性があるので、ＨＭＶＰテーブルは、この動きベクトルでオンザフライに更新される。ＨＭＶＰテーブルの更新では、以下の２つのシナリオがある。（ｉ）再構成された動きベクトルがＨＭＶＰテーブル内の他の既存の動きベクトルと異なる、または（ｉｉ）再構成された動きベクトルがＨＭＶＰテーブル内の既存の動きベクトルの１つと同じである。第１のシナリオでは、ＨＭＶＰテーブルが未満の場合、再構成された動きベクトルが最新のものとしてＨＭＶＰテーブルに追加される。ＨＭＶＰテーブルがすでにいっぱいになっている場合は、再構成された動きベクトルが最新のものとして追加される前に、ＨＭＶＰテーブル内の最も古い動きベクトルがＨＭＶＰテーブルから削除される必要がある。言い換えると、この場合には、ＨＭＶＰテーブルでは、ＦＩＦＯバッファと同様のように、ＦＩＦＯバッファの先頭にあり且つ以前にインター符号化された別のブロックに関連する動き情報が、このバッファから取り除かれて、再構成された動きベクトルが、ＨＭＶＰテーブルにおける最新のものとしてＦＩＦＯバッファの末尾に追加される。２番目のシナリオでは、再構成された動きベクトルが最新のものとしてＦＩＦＯバッファに追加される前に、ＨＭＶＰテーブル内の、再構成された動きベクトルと実質的に同じである既存の動きベクトルがＦＩＦＯバッファから削除される。ＨＭＶＰテーブルもＦＩＦＯバッファの形態で維持されている場合、ＨＭＶＰテーブル内の同じ動きベクトルの後の動きベクトル予測子が１つの要素だけ前方に移動されて、削除された動きベクトルによって残された空間を占有し、そして、再構成された動きベクトルが、ＨＭＶＰテーブル内の最新のものとしてＦＩＦＯバッファの末尾に追加される。
【００６９】
ＨＭＶＰテーブルにおける動きベクトルは、ＡＭＶＰ、マージ、スキップなどの異なる予測モードで動きベクトル候補リストに追加されることできる。ＨＭＶＰテーブルに保存されている以前にインター符号化されたブロックの動き情報は、現在のブロックに隣り合っていなくても、より効率的な動きベクトル予測に利用されることが可能であることが分かった。
【００７０】
現在のＣＵに対する所定の動きベクトルの候補セット内で１つのＭＶＰ候補が選択された後、ビデオエンコーダ２０は、対応するＭＶＰ候補に対する１つまたは複数の構文要素を生成し、ビデオビットストリームに符号化し、ビデオデコーダ３０がこの構文要素を使用してこのデオビットストリームからこのＭＶＰ候補を取り出すことができるようにする。動きベクトル候補セットを構成するための特定のモードによっては、異なるモード（例えば、ＡＭＶＰ、マージ、スキップなど）は異なる構文要素のセットを有する。ＡＭＶＰモードの場合、構文要素にはインター予測インジケーター（Ｌｉｓｔ０、Ｌｉｓｔ１、または双方向予測）、参照索引、動きベクトル候補索引、動きベクトル予測残差信号などを含む。スキップモード及びマージモードの場合、現在のＣＵは、符号化されたマージ索引によって参照される隣り合うＣＵから、インター予測インジケータ、参照索引、動きベクトルなどの他の構文要素を継承するので、マージ索引のみがビットストリーム中に符号化される。スキップ符号化されたＣＵの場合、動きベクトル予測残差信号も省略される。
【００７１】
図５Ａは、本開示のある実施形態に係る、符号化／復号化される現在のＣＵの空間的に隣り合いかつ時間的に並ぶブロック位置を示すブロック図である。所定のモードでは、まず空間的に左側隣接ブロック位置および上方隣接ブロック位置に関連する動きベクトルの利用可能性、時間的に並ぶブロック位置に関連する動きベクトルの利用可能性を検査し、次にＨＭＶＰテーブル内の動きベクトルの利用可能性を検査することによって、動きベクトル予測（ＭＶＰ）候補リストを構成する。ＭＶＰ候補リストを構成するプロセスには、いくつかの冗長なＭＶＰ候補が候補リストから削除され、必要に応じて候補リストが固定の長さを有するようにゼロ値の動きベクトルが追加される（なお、モードによって異なる固定長を有することがある）。ＭＶＰ候補リストの構成後、ビデオエンコーダ２０は、この候補リストから最適な動きベクトル予測子を選択し、選択された候補を指示する対応する索引をビデオビットストリーム中に符号化することができる。
【００７２】
例として図５Ａを使用し、かつ候補リストが２の固定長さを有すると仮定すると、現在のＣＵに関する動きベクトル予測子（ＭＶＰ）候補リストは、ＡＭＶＰモードで以下のステップを順に実行することによって構成されることができる。
１）空間的に隣り合うＣＵからのＭＶＰ候補の選択
ａ）Ａ０で始まりＡ１で終わる左側の空間的隣り合う２つのＣＵのうちの１つから、１つの非スケールＭＶＰ候補を導出する；
ｂ）前のステップで左に利用可能非スケールＭＶＰ候補がない場合には、Ａ０で始まりＡ１で終わる左側の空間的隣り合う２つのＣＵのうちの１つから、１つのスケールＭＶＰ候補を導出する；
ｃ）Ｂ０で始まりB1を通じてＢ２で終わる上側の空間的隣り合う３つのＣＵのうちの１つから、１つの非スケールＭＶＰ候補を導出する；
ｄ）Ａ０とＡ１の両方とも利用できない場合、またはそれらがイントラモードで符号化されている場合には、Ｂ０で始まりＢ１を通じてＢ２で終わる上側の３つの空間的隣り合うＣＵのうちの１つから、１つのスケールＭＶＰ候補を導出する；
２）前のステップで２つのＭＶＰ候補が見つかり、且つそれらが同一である場合は、このＭＶＰ候補リストからこれらの２つの候補のうち１つを削除する；
３）時間的に並ぶＣＵからのＭＶＰ候補の選択
ａ）前のステップの後、ＭＶＰ候補リストに２つのＭＶＰ候補が含まれていない場合には、時間的に並ぶＣＵ（例えばＴ０）から１つのＭＶＰ候補を導出する；
４）ＨＭＶＰテーブルからのＭＶＰ候補の選択
ａ）前のステップの後、ＭＶＰ候補リストに２つのＭＶＰ候補が含まれていない場合には、ＨＭＶＰテーブルから２つの履歴ベースのＭＶＰを導出する；
５）前のステップの後、ＭＶＰ候補リストに２つのＭＶＰ候補が含まれていない場合はに、２つのゼロ値ＭＶＰをＭＶＰ候補リストに追加する。
【００７３】
以上の構成されたＡＭＶＰモードＭＶＰ候補リストには２つの候補しかないので、候補リスト内の２つのＭＶＰ候補のどちらが現在のＣＵの復号化に使用されるかを示すように、バイナリフラグのような関連構文要素をビットストリーム中に符号化する。
【００７４】
ある実施形態では、スキップモードまたはマージモードでは、上述した一連のステップと同様のものを順に実行することによって、現在のＣＵに関するＭＶＰ候補リストを構成し得る。なお、「ペアでのマージ候補」と呼ばれる１つの特別な種類のマージ候補も、スキップモードまたはマージモードのためのＭＶＰ候補リストに含まれる。ペアでのマージ候補は、以前に導出された２つのマージモード動きベクトル候補のＭＶを平均化することによって生成されることができる。マージＭＶＰ候補リストのサイズ（たとえば、１から６）は、現在のＣＵのスライスヘッダーで通知される。マージモードでの各ＣＵについて、最適なマージ候補の索引は、ｔｒｕｎｃａｔｅｄ  ｕｎａｒｙ二値化（ＴＵ）を使用されて復号化される。マージ索引の最初のビンはコンテキストで符号化され、バイパス符号化が他のビンに使用される。
【００７５】
上述たように、履歴ベースのＭＶＰは、空間ＭＶＰ及び時間ＭＶＰの後ＡＭＶＰモードＭＶＰ候補リスト又はマージＭＶＰ候補リストに追加されることができる。以前にインター符号化されたＣＵの動き情報は、ＨＭＶＰテーブルに保存され、現在のＣＵのＭＶＰ候補として使用される。ＨＭＶＰテーブルは、符号化/復号化プロセス中に維持されている。非サブブロックインター符号化したＣＵがあるときはいつでも、関連動きベクトル情報が新しい候補としてＨＭＶＰテーブルの最後のエントリに追加され、一方、（ＨＭＶＰテーブルがすでにいっぱいで、テーブル内に関連動きベクトル情報の同じ複本がない場合）ＨＭＶＰテーブルの最初のエントリに格納されている動きベクトル情報がそこから削除される）。これの代わりに、関連動きベクトル情報がＨＭＶＰテーブルの最後のエントリに追加される前に、関連動きベクトル情報の同じ複本をこのテーブルから削除してもよい。
【００７６】
上  述したように、イントラブロックコピー（ＩＢＣ）は、スクリーンコンテンツ素材の符号化効率を著しく改善することができる。ＩＢＣモードはブロックレベルの符号化モードとして実現されるので、ビデオエンコーダ２０でブロックマッチング（ＢＭ）を実行して、各ＣＵに対する最適なブロックベクトルを見つける。ここでは、ブロックベクトルは、現在の画像内で現在のブロックからすでに再構成された参照ブロックへの変位を示すためのものである。ＩＢＣで符号化されたＣＵは、イントラ予測モードまたはインター予測モードではなく、第三の予測モードとして扱われる。
【００７７】
ＣＵレベルでは、ＩＢＣモードは、以下のように、ＩＢＣＡＭＶＰモードまたはＩＢＣスキップ／マージモードとして通知されることができる。
-ＩＢＣ ＡＭＶＰモード：ＣＵの実際のブロックベクトルとＣＵのブロックベクトル候補から選択されたＣＵのブロックベクトル予測子との間のブロックベクトル差（ＢＶＤ）は、上述したＡＭＶＰモードで動きベクトル差に対する符号化と同じ方法で符合化される。ブロックベクトル予測方法では、２つのブロックベクトル候補が予測子として使用され、（ＩＢＣ符合化される場合）この２つのブロックベクトル候補のうち１つが左側の隣から、もう１つが上方の隣からである。いずれの隣も利用できない場合、デフォルトのブロックベクトルがブロックベクトル予測子として使用される。バイナリフラグは、ブロックベクトル予測索引を示すように通知される。ＩＢＣ  ＡＭＶＰ候補リストには、空間的候補およびＨＭＶＰ候補を含む。
-ＩＢＣスキップ/マージモード：マージ候補索引は、隣り合うＩＢＣ符号化ブロックからのマージ候補リスト（「マージリスト」とも呼ばれる）の中のどのブロックベクトル候補が現在のブロックのブロックベクトルの予測に使用されるかを示す。ＩＢＣマージ候補リストには、空間的候補、ＨＭＶＰ候補、およびペアでの候補を含む。
【００７８】
符号化規格によって採用される符号化効率を改善するための別のアプローチでは、ビデオ符号化／復号化プロセスに、例えばマルチコアプロセッサを使用して並列処理を導入する。例えば、波面並列処理（ＷＰＰ）は、複数のスレッドによって複数行のＣＴＵを並列に符号化または復号化する特徴として、すでにＨＥＶＣに導入された。
【００７９】
図５Ｂは、本開示のある実施形態に係る、波面並列処理（ＷＰＰ）を使用して画像の複数行のＣＴＵに対してマルチスレッド符号化を行うことを示すブロック図である。ＷＰＰを有効にすると、２つの隣り合い波面の先頭の間に２つのＣＴＵ分の遅延が発生する可能性がある波面の方式で複数行のＣＴＵを並列に処理できる。例えば、ＷＰＰを使用して画像５００を符号化するために、ビデオエンコーダ２０およびビデオデコーダ３０などのビデオコーダは、画像５００の符号化ツリーユニット（ＣＴＵ）を複数の波面に分割し、各波面はそれぞれ画像の各行ＣＴＵに対応する。このビデオコーダーは、例えば、第１のコーダーコアまたはスレッドを使用して、トップ波面の符号化を開始することができる。ビデオコーダーは、最初波面の２つ以上のＣＴＵを符号化した後、例えば第２の並列コーダーコアまたはスレッドを使用して、トップ波面の符号化と並行してトップ波面からの第２つの波面の符号化を開始することができる。ビデオコーダーは、トップ波面からの第２の波面の２つ以上のＣＴＵを符号化した後、例えば、第３の並列コーダーコアまたはスレッドを使用して、上方の波面の符号化と並行してトップ波面からの第３の波面の符号化を開始することができる。このパターンは、画像５００において波面に沿って続くことが可能である。本開示では、ビデオコーダがＷＰＰを使用して同時に符号化されているＣＴＵのセットは、「ＣＴＵ組」と呼ばれる。このように、ビデオコーダーがＷＰＰを使用して画像を符号化する場合、ＣＴＵ組の各ＣＴＵは、この画像の唯一な波面に属し、これらのＣＴＵは上方の各波面におけるＣＴＵからこの画像の少なくとも２列のＣＴＵだけオフセットする。
【００８０】
ビデオコーダーは、現在の波面の最初の２つのブロックのデータ及び現在の波面の最初の符号化ブロックを含むスライスのスライスヘッダーの１つまたは複数の要素に基づいて現在の波面のコンテキストを初期化して、現在の波面のコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）を実行することができる。ビデオコーダーは、後続波面（またはＣＴＵ行）の上方にある１つのＣＴＵ行における２つのＣＴＵを符号化した後、コンテキスト状態を使用してこの後続波面のＣＡＢＡＣ初期化を実行することが可能である。言い換えれば、ビデオコーダー（より具体的には、ビデオコーダーの１つのスレッド）は、現在の波面の符号化を開始する前に、現在の波面が画像の最初行のＣＴＵではないと仮定する場合、現在の波面の上方の波面の少なくとも２つのブロックをコーディングしたことが可能である。そして、ビデオコーダーは、現在の波面より上方の波面の少なくとも２つのブロックを符号化した後、現在の波面のＣＡＢＡＣコンテキストを初期化することが可能である。この例では、画像５００の複数のＣＴＵ行を並列に符号化できるように、画像５００の各ＣＴＵ行は個別の一部であり、関連付けられたスレッド（ＷＰＰスレッド１、ＷＰＰスレッド２、…）を有する。
【００８１】
ＨＭＶＰテーブルの現在の実施形態は、グローバル動きベクトル（ＭＶ）バッファを使用して以前に再構成された動きベクトルを格納するため、このＨＭＶＰテーブルは、図５に示された上述したＷＰＰイネーブル並列符号化スキームで実施できない。特に、グローバルＭＶバッファがビデオコーダーの符号化/復号化プロセスのすべてのスレッドに共有されている事実により、最初のＷＰＰスレッド（即ち、ＷＰＰスレッド１）の後のＷＰＰスレッドの開始が妨げられる。これは、これらＷＰＰスレッドは必ずＨＭＶＰテーブルが最初のＷＰＰスレッド（即ち、最初のＣＴＵ行）の最後のＣＴＵ（即ち、最右端のＣＴＵ）による更新完了を待たなければならないからである。
【００８２】
この課題を解決するために、複数のＣＴＵ行専用バッファでＷＰＰスレッドによって共有されるグローバルＭＶバッファを置き換えることで、ビデオコーダーでＷＰＰが有効にされている場合、ＣＴＵ行の各波面が、１つの対応するＷＰＰスレッドによって処理されているＣＴＵ行に対応するＨＭＶＰテーブルを格納するための自分のバッファを有するようにすることが提案された。なお、各ＣＴＵ行が自分のＨＭＶＰテーブルを有するとのことは、ＣＴＵ行の最初のＣＵを符号化する前にＨＭＶＰテーブルをリセットすることと同等である。ＨＭＶＰテーブルのリセットは、ＨＭＶＰテーブルにおける別のＣＴＵ行の符号化から生じたすべての動きベクトルを除去することである。一つの実施形態では、リセット操作は、ＨＭＶＰテーブルにおける利用可能な動きベクトル予測子のサイズをゼロに設定することである。さらに別の実施形態では、リセット操作は、ＨＭＶＰテーブルにおけるすべてのエントリの参照索引を−１などのような無効な値に設定することであってもよい。このように、ＡＭＶＰ、マージ及びスキップの３つのモードのいずれかに関わらず、特定の波面内の現在のＣＴＵに対するＭＶＰ候補リストの構造は、この特定の波面を処理しているＷＰＰスレッドに関連するＨＭＶＰテーブルに依存する。異なる波面の間では、上述した２つのＣＴＵの遅延以外、相互の依存性がなく、異なる波面に関連する動きベクトル候補リストの構造は、図５Ｂに示すＷＰＰプロセスのように並行して進めることができる。言い換えると、ＨＭＶＰテーブルは、特定の波面の処理の開始時に、別のＷＰＰスレッドによる別のＣＴＵ波面の符号化に影響を与えることなく、空にリセットされる。ある場合には、個別の各ＣＴＵを符号化する前に、ＨＭＶＰテーブルが空にリセットされることでもよい。この場合、ＨＭＶＰテーブル内の動きベクトルは特定のＣＴＵに限定されており、ＨＭＶＰテーブル内の動きベクトルが特定のＣＴＵ内の現在のＣＵの動きベクトルとして選択される可能性がさらに高くなる。
【００８３】
図６Ａおよび６Ｂは、本開示のある実施形態に係る、再構成された輝度ブロック６０２および関連彩度ブロック６２０をそれぞれ例示するブロック図である。この例では、再構成された輝度ブロック６０２の輝度サンプル（例えば、輝度サンプル６０４）、上部隣接輝度組６０６の輝度サンプル（例えば、輝度サンプル６０８）、および左側隣接輝度組６１０の輝度サンプル（例えば、輝度サンプル６１３）は、ビデオ符号化プロセス中に予測されている。上部隣接彩度組６２４の彩度サンプル（例えば、彩度サンプル６２６）および左側隣接彩度組６２８の彩度サンプル（例えば、彩度サンプル６３０）は、ビデオ符号化プロセス中にすでに予測されたが、彩度ブロック６２０の彩度サンプルは予測対象となっている。ある実施形態では、彩度ブロック６２０の彩度サンプルは、再構成された輝度ブロック６０２の対応するダウンサンプルされた輝度サンプルに対してクロスコンポーネント線形モデル（ＣＣＬＭ）を適用することによって、予測されることができる。以下、ＣＣＬＭの導出および適用は、図７Ａ−図７Ｅを参照して提供される。
【００８４】
ある実施形態では、再構成された輝度ブロック６０２および彩度ブロック６２０はそれぞれ、再構成されたビデオフレームの一部の異なる成分を表す。例えば、ＹＣｂＣｒ色空間では、画像は輝度成分（Ｙ）、青の色差成分（Cｂ）および赤の色差成分（Ｃｒ）によって表される。再構成された輝度ブロック６０２は、ビデオフレームの一部の輝度成分（すなわち、明るさ）を表し、彩度ブロック６２０は、このビデオフレームの同じ部分の彩度成分（すなわち、色）を表す。再構成された輝度ブロック６０２の輝度サンプル（例えば、輝度サンプル６０４）は、ビデオフレームの特定のピクセルでの明るさを表す輝度値を有し、彩度サンプル（例えば、彩度サンプル６２２）は、このビデオフレームの特定のピクセルでの色を表す彩度値を有する。
【００８５】
ある実施形態では、再構成された輝度ブロック６０２は、２Ｍ×２Ｎブロックであり、ブロック幅に亘って２Ｍつの輝度サンプルを有し、ブロック高さに亘って２Ｎつの輝度サンプルを有する。ＭおよびＮは、同じ値（例えば、再構成された輝度ブロック６０２が１つの正方形のものである）または異なる値（例えば、再構成された輝度ブロック６０２が１つの非正方形のものである）であり得る。
【００８６】
人間の視覚系は明るさの違いよりも色の違いに敏感ではないため、彩度サブサンプリングは通用の圧縮技術である。結果として、再構成された輝度ブロック６０２および彩度ブロック６２０は、ビデオフレームの同じ部分を表すことが可能であるが、異なる解像度で符号化されている。例えば、ビデオフレームは、彩度サブサンプリングスキーム（例えば、４：２：０または４：２：２）によって、輝度情報よりも低い解像度で彩度情報に関して符号化されたことが可能である。図６Ａおよび６Ｂに示すように、再構成された輝度ブロック６０２は、２Ｍ×２Ｎの解像度で符号化され、彩度ブロック６２０は、より小さなＭ×Ｎの解像度で符号化された。実際には、彩度ブロック６２０は、２Ｍ×２Ｎ（例えば、４：４：４フルサンプリング）、２Ｍ×Ｎ（例えば、４：４：０サブサンプリング）、Ｍ×２Ｎ（例えば、４：２：２サブサンプリング）、および1/2Ｍ×２Ｎ（例えば、４：１：１サブサンプリング）などの他の解像度を有することが可能である。
【００８７】
再構成された輝度ブロック６０２は、上方隣接輝度組６０６および左側隣接輝度組６１０に隣り合う。上方隣接輝度組および左側隣接輝度組のサイズは、明示的に通知されてもよく、または再構成された輝度ブロック６０２のサイズに依存してもよい。例えば、上方隣接輝度組６０６は、２Ｍ個のサンプル（例えば、再構成された輝度ブロック６０２の幅と同じ）または４Ｍ個のサンプル（例えば、再構成された輝度ブロック６０２の幅の２倍）の幅と、２個のサンプルの高さとを有することが可能である。左側隣接輝度組６１０は、２個のサンプルの幅と、２Ｎ個または４Ｎ個のサンプルの高さとを有することが可能である。ある実施形態では、上方隣接輝度組６０６および左側隣接輝度組６１０は、それぞれ、同じビデオフレームの１つまたは複数の別のすでに再構成された輝度ブロックの一部である。
【００８８】
彩度ブロック６２０は、上方隣接彩度組６２４および左側隣接組６２８に隣り合う。上方隣接彩度組６２４および左側隣接組６２８のサイズは、明示的に通知されてもよく、または彩度ブロック６２０のサイズに依存してもよい。例えば、上方隣接彩度組６２４は１×Ｍのサイズを有し、左側隣接彩度組６２８はＮ×１のサイズを有することが可能である。
【００８９】
ある実施形態では、彩度値（例えば、彩度サンプル６２０の彩度値）は、再構成された彩度サンプル（例えば、彩度サンプル６０４）の彩度値に基づいて予測されることができる。例えば、ビデオフレームの輝度値と対応する彩度値との間に線形または準線形の関係があると仮定すると、ビデオコーデックはＣＣＬＭにより対応する再構成された輝度値に基づいて彩度値を予測することができる。このように、ビデオコーデックは、彩度値の符号化、符号化された彩度値の送信、および符号化された彩度値の復号化のための時間および帯域幅の量を大幅に節約することができる。ビデオコーデックは、ＣＣＬＭを使用して輝度サンプルから彩度サンプルを予測するために、（１）彩度サンプルと輝度サンプルとの間で線形モデルを導出し、（２）この線形モデルを予測対象の彩度サンプルに対応する再構成された輝度サンプルに適用する。
【００９０】
ある実施形態では、輝度ブロックおよび彩度ブロックが異なる解像度（例えば、彩度ブロックがサブサンプリングされたものである）であるため、ビデオコーデックは、まず輝度サンプルに対してダウンサンプリングを実行して、各彩度サンプルに唯一に対応するダウンサンプリング輝度サンプルを生成する（例えば、ダウンサンプリング輝度サンプル６０５、６０９および６１２）。ある実施形態では、ビデオフレームの高さ方向および幅方向の両方に亘って６つの再構成された隣接輝度サンプルが、ダウンサンプリング彩度サンプルを生成するために使用される（例えば、６タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキーム）。例えば、上方隣接輝度組における領域６１１内の６つの再構成された輝度サンプル（それぞれが図面における小さなボックスで表される）は、それらの対応する輝度値の平均化によってダウンサンプリング彩度サンプル６０９を生成するために使用され、再構成された輝度ブロック６０２における領域６０７内の６つの再構成された輝度サンプル（それぞれが図面における小さなボックスで表される）は、ダウンサンプリング彩度サンプル６０５を生成するために使用される。あるいは、ダウンサンプリング彩度サンプルは、注目の領域で再構成された彩度サンプルを識別することによって、または異なる形状の領域内の異なる数の再構成された彩度サンプルを使用することによって生成される。
【００９１】
ある実施形態では、ビデオコーデックは、この線形モデルを導出するために、ダウンサンプリング輝度サンプルの最大値および最小値（例えば、それぞれ最大及び最小の輝度値を有するダウンサンプリング輝度サンプル）及び対応する再構成された彩度サンプルを識別し、最大および最小のデータ点（例えば、最大のデータ点は、最大の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成された彩度サンプルを含み、最小のデータ点は、最小の輝度値を有するダウンサンプリング輝度サンプルおよび対応する再構成された彩度サンプルを含む）を通る線形モデル(例えば、Ｙ＝ αＸ＋β) をフィットすることによるＭａｘ−Ｍｉｎ法を使用する。線形モデルが導出された後、ビデオコーデックは、線形モデルを再構成された輝度ブロック６０２におけるダウンサンプリング輝度サンプルに適用して、彩度ブロック６２０の対応する彩度サンプルを生成する。ビデオコーデックは、以下の方法で最大および最小のデータ点を取得することができる。
【００９２】
１．ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０から選択された一組のダウンサンプリング輝度サンプル）を検索して、最大のダウンサンプリング輝度サンプル及び最小のダウンサンプリング輝度サンプルを識別する。そして、ビデオコーデックは、図７Ａに参照して以下に説明するように、最大および最小のダウンサンプリング輝度サンプルに対応する以前再構成された彩度サンプル（例えば、上方隣接彩度組６２４および左側隣接彩度組６２８における再構成された彩度サンプル）を識別する。
【００９３】
２．ある実施形態では、ビデオコーデックは、選択された再構成の輝度サンプルの組に対してダウンサンプリングを実行して最大および最小の再構成された輝度サンプルを識別することの代わりに、再構成された輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０から選択された再構成の輝度サンプルの一組）を検索して、この選択された再構成の輝度サンプルの組において（ｉ）最大の輝度値を有する再構成された輝度サンプル、および（ｉｉ）最小の輝度値を有する再構成された輝度サンプルを識別する。そして、ビデオコーデックは、この最大および最小の再構成された輝度サンプルに関連する領域（例えば、６タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキームを使用する６つのサンプルを有する領域）でダウンサンプリングを実行して、最大の再構成された輝度サンプルとしてのダウンサンプリング輝度サンプル（正確に最大のダウンサンプリング輝度サンプルである場合もそうでない場合もある）および最小の再構成された輝度サンプルとしてのダウンサンプリング輝度サンプル（正確に最小のダウンサンプリング輝度サンプルである場合もそうでない場合もある）を生成する。そして、ビデオコーデックは、図７Ｂに参照して以下に説明されるように、（例えば、上方隣接彩度組６２４および左側隣接彩度組６２８において）最大の再構成された輝度サンプルとして識別されたダウンサンプリング輝度サンプルに対応する再構成された彩度サンプル、および最小の再構成された輝度サンプルとして識別されたダウンサンプリング輝度サンプルに対応する再構成された彩度サンプルを識別する。
【００９４】
３．ある実施形態では、ビデオコーデックは、１組の再構成された彩度サンプル（例えば、上方隣接彩度組６２４および左側隣接彩度組６２８から選択された彩度サンプル）を検索して、最大および最小の再構成された彩度サンプル（例えば、それぞれ最大及び最小の彩度値を有する彩度サンプル）を識別する。そして、ビデオコーデックは、図７Ｃを参照して以下に説明するように、最大および最小の再構成された彩度サンプルに対応するダウンサンプリング輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０におけるダウンサンプリング輝度サンプル）を識別する。
【００９５】
４．ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０から選択されたダウンサンプリング輝度サンプルの組）を検索して、最大の輝度値を有する予め定められた数（例えば、２つ）のダウンサンプリング輝度サンプル、および最小の輝度値を有する予め定められた数（例えば、２つ）のダウンサンプリング輝度サンプルを識別する。そして、ビデオコーデックは、上方隣接彩度組６２４および左側隣接彩度組６２８の中の再構成された彩度サンプルを識別する。なお、上方隣接彩度組６２４および左側隣接彩度組６２８の中のそれぞれは、最大のダウンサンプリング輝度サンプルの組および最小のダウンサンプリング輝度サンプルの組の中の一つに対応する。そして、ビデオコーデックは、図７Ｄおよび図７Ｅを参照して以下に説明するように、識別された再構成の彩度サンプルの組および輝度サンプルの組のそれぞれの中の値（例えば、彩度または輝度の値）に対して加重平均化を実行して最大平均化彩度値、最小平均化彩度値、最大平均化ダウンサンプリング輝度値（例えば、最大のダウンサンプリング輝度サンプルの組から生成）、および最小の平均化ダウンサンプリング輝度値（例えば、最小のダウンサンプリング輝度サンプルの組から生成）を生成する。
【００９６】
図７Ａ〜７Ｅは、本開示のある実施形態に係る、ＣＣＭＬを使用して輝度値と彩度値との間で線形モデルを導出する各種のアプローチを示している。特に、プロット上の各円データ点（例えば、点７０２ａ）は、横軸上の再構成された彩度サンプルと、縦軸上の対応する再構成された輝度サンプルとのペアを表す。例えば、再構成された輝度サンプルを部分的に使用して（例えば、当技術分野で知られている６タップダウンサンプリングなどを含む加重平均化スキームを使用して）生成されたダウンサンプリング輝度サンプルが再構成の彩度サンプルに対応されば、再構成の彩度サンプルは再構成の輝度サンプルに対応する。プロット上の各正方形のデータ点（たとえば、点７０２ｂ）は、横軸上の再構成の彩度サンプルと、縦軸上の対応するダウンサンプリング輝度サンプルとのペアを表す。ある実施形態では、ダウンサンプリング輝度サンプルが複数の再構成の輝度サンプルを使用して（例えば、当技術分野で知られている６タップダウンサンプリングなどを含む加重平均化スキームを使用して）生成されるので、正方形のデータ点が複数の円のデータ点に関連している。点線の長方形（例えば、点線の長方形７０３）は、囲まれた正方形のデータ点と円データ点が関連している（例えば、正方形のデータ点に対応するダウンサンプリング輝度サンプルは、円のデータ点に対応している再構成の輝度サンプルから生成された）ことを示す。説明の便利上、点線の長方形の内に１つの正方形のデータ点及び１つの円のデータ点のみを示しているが、実際には、各点線の長方形に複数の円のデータ点及び１つの正方形のデータ点を含み得ることができる。
【００９７】
ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル（例えば、図６Ａのダウンサンプリング輝度サンプル６０９および６１２）を検索して、最大および最小の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成の彩度サンプルを識別して、線形モデルを導出する。例えば、図７Ａでは、正方形のデータ点７０２ｂは、選択されたダウンサンプリング輝度サンプルの組における最小の輝度値を有するダウンサンプリング輝度サンプルおよび対応する再構成の彩度サンプルを表し、正方形のデータ点７０４ｂは、最大の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成の彩度サンプルを表している。結果として、点７０２ｂ及び点７０４ｂを通った線フィッティングは、ダウンサンプリング輝度サンプル（例えば、図６Ａにおける輝度ブロック６０２のダウンサンプリング輝度サンプル６０５）から彩度サンプル（例えば、図６Ｂにおける彩度ブロック６２０の彩度サンプル６２２）を予測するための線形モデルを表す。
【００９８】
Ｍａｘ−Ｍｉｎ法ではダウンサンプリング輝度サンプルのほとんどがよく使われないため、ダウンサンプリング輝度サンプルの生成の算出量は非常に大きい。ある実施形態では、ビデオコーデックは、すべての輝度サンプルに対してダウンサンプリングを実行する代わりに、再構成された輝度サンプル（例えば、図６Ａの再構成された輝度サンプル６０８および６１３）を直接検索して、最大および最小の輝度値を有する再構成の輝度サンプルを識別する。図７Ｂに示すように、円のデータ点７０２ａは、最小の輝度値を有する再構成された輝度サンプルおよび対応する再構成された彩度サンプルを表し、円のデータ点７０６ａは、最大の輝度値を有する再構成された輝度サンプルおよび対応する再構成の彩度サンプルを表す。ビデオコーデックは、最小および最大の再構成された輝度サンプル（円のデータ点７０２ａおよび７０６ａ）を識別した後、（例えば、６タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキームを使用して）最小および最大の再構成された輝度サンプルを含む領域でダウンサンプリングを実行して、対応する準最小および準最大のダウンサンプリング輝度サンプル（図７Ｂにおける正方形の点７０２ｂおよび７０６ｂによって表され、図７Ａにおいて正方形の点７０２ｂおよび７０６ｂと同じである場合もそうでない場合もある）を生成する。図７Ｂにおける正方形の点７０２ｂおよび７０６ｂを通った線フィッティングは、再構成された輝度サンプルから彩度サンプルを予測する線形モデルを表す。図７Ａで使用された方法と比較すると、２つのダウンサンプリング操作のみが実行された。識別された最小のダウンサンプリング輝度サンプルは、図７Ａで使用されたものと同じ、一方、最大のダウンサンプリング輝度サンプルは、図７Ａで使用されたものとは異なる。
【００９９】
ある実施形態では、ビデオコーデックは、最大及び最小の輝度値を有する再構成された輝度サンプルを使用して線形モデルを生成し、ダウンサンプリングの実行を放棄する。図７Ｃにおいて、線形モデルは、再構成された輝度サンプルに対してダウンサンプリングを実行せず、円のデータ点７０２ａおよび７０６ａを通る線を直接フィッティングすることによって生成される。
【０１００】
ある実施形態では、ビデオコーデックは、最大および最小の輝度値を有するダウンサンプリング輝度サンプル（または再構成された輝度サンプル）を検索する代わりに、まず、最大および最小の彩度値を有する再構成された彩度値を検索する。最大および最小の再構成された彩度サンプルが識別された後、ビデオコーデックは、対応するダウンサンプリング輝度サンプルを算出して、線形モデルを生成する。図７Ｄでは、円のデータ点７０８ａは、最小の彩度値を有する再構成された彩度サンプルを表し、円のデータ点７０４ａは、最大の彩度値を有する再構成された彩度サンプルを表す。そして、ビデオコーデックは、正方形のデータ点７０８ｂ（円のデータ点７０８ａから再構成された輝度サンプルを部分的に使用して生成されたダウンサンプリング輝度サンプルを表す）および正方形のデータ点７０４ｂ（円のデータ点７０４ａから再構成された輝度サンプルを部分的に使用して生成されたダウンサンプリング輝度サンプルを表す）を通ってフィッティングする線形モデルを生成する。
【０１０１】
ある実施形態では、ビデオコーデックは、最大の輝度値を有する複数（例えば、２つ）のダウンサンプリング輝度サンプル、および最小の輝度値を有する複数（例えば、２つ）のダウンサンプリング輝度サンプルを選択する。そして、ビデオコーデックは、対応する最大の再構成された彩度サンプルの組及び最小の再構成された彩度サンプルの組を検索する。ビデオコーデックは、各組内で平均化演算を実行し、平均化された輝度値及び彩度値を使用して線形モデルを生成する。図７Ｅでは、最大の２つのダウンサンプリング輝度サンプル（正方形のデータ点７１０ｂおよび７０４ｂ）および最小の２つのダウンサンプリング輝度サンプル（正方形のデータ点７０８ｂおよび正方形のデータ点７０２ｂ）を使用して線形モデルを生成する。
【０１０２】
図８は、ビデオコーデックが、クロスコンポーネント線形モデルを使用して、輝度ブロックから再構成された輝度サンプルに基づいて彩度ブロックの彩度サンプルを再構成する技術を実現するプロセス７００を例示するフローチャートである。プロセス７００は、復号化プロセスにも符号化プロセスにも実施されることができる。
【０１０３】
第１のステップとして、ビデオコーデックは、彩度ブロックに対応する輝度ブロックを再構成する（８１０）。彩度ブロック（例えば、図６Ｂの彩度ブロック６２０）は、その後、再構成された輝度ブロックから再構成され、この再構成された輝度ブロック（例えば、図６Ａの再構成された輝度ブロック６０２）の解像度とは異なる解像度が有することが可能である。この輝度ブロックと彩度ブロックビとは、デオフレームの同じ部分の異なる成分（例えば、それぞれ明るさ成分及び色成分）を表すため、対応するものである。ある実施形態では、輝度ブロックは、複数の、以前に再構成された隣接輝度サンプル（例えば、図６Ａの上方隣接輝度組６０６および左側隣接輝度組６１０における再構成された輝度サンプル）に隣り合い、彩度ブロックは、複数の、以前に再構成された隣接彩度サンプル（例えば、図６Ａの上方隣接彩度組６２４および左側隣接彩度組６２８における再構成された彩度サンプル）に隣り合う。なお、本願における「「隣り合う」という用語は、隣接に限定されず、符号化ブロックが輝度／彩度サンプルに隣接しない状況もカバーする。ある実施形態では、ビデオコーデックは、クロスコンポーネント線形モデルを導出してこのモデルを再構成された輝度サンプル（または輝度ブロック内のダウンサンプリング再構成された輝度サンプル）に適用することによって、彩度ブロック内の彩度サンプルを予測する。
【０１０４】
次に、ビデオコーデックは、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、少なくとも１つの最大または準最大の輝度サンプルおよび少なくとも１つの最小または準最大の輝度サンプルを識別する（８２０）。ある実施形態では、この複数の再構成された隣接輝度サンプルのサブ組は、複数の再構成された隣接輝度サンプルのすべてをカバーする。例えば、ビデオコーデックは、隣接輝度サンプルのうちのすべての輝度サンプル、または最大予め定められた数の隣接輝度サンプルを検索してもよい。ある実施形態では、ビデオコーデックは、ラスター走査順に従って、左から右へ、上から下へ、またはこれらの順序の任意の組み合わせで、隣接輝度サンプルを検索する。ある実施形態では、隣接輝度サンプルには、空間的に輝度ブロックの上方にあるそれらのサンプル（例えば、上方隣接彩度組６２４）および輝度ブロックの左側にあるそれらのサンプル（例えば、左側隣接彩度組６１０）を含む。ビデオコーデックは、上方隣接彩度サンプルまたは左側隣接彩度サンプルのみを検索してもよい。
【０１０５】
最大および最小の輝度サンプルが識別された後、ビデオコーデックは、識別された最大および最小の輝度サンプルにそれぞれ対応する少なくとも１つのダウンサンプリング最大輝度サンプルおよび少なくとも１つのダウンサンプリング最小輝度サンプルを算出する（８３０および８４０）。例えば、ビデオコーデックは、６タップダウンサンプリング技術を使用して、６つの隣り合う再構成された輝度サンプル（例えば、３×２形態または２×３形態で配置する）からダウンサンプリング輝度サンプル（例えば、加重平均化により）を生成することが可能である。このダウンサンプリング最大輝度サンプルおよびダウンサンプリング最小輝度サンプルは、それぞれ、各再構成された彩度サンプルに対応する（例えば、第１の再構成された隣接彩度サンプルおよび第２の再構成された隣接彩度サンプル）。例えば、この第１の再構成された隣接彩度サンプルおよび第２の再構成された隣接彩度サンプルは、この複数の再構成された隣接彩度サンプルのものであり得る。
【０１０６】
ある実装形態では、上述した操作８２０、８３０、および８４０は、異なる順で再配置される。例えば、ビデオコーデックは、まず、複数の再構成された隣接輝度サンプルから１つまたは複数のダウンサンプリング輝度サンプルを算出し、次に、この１つまたは複数の算出されたダウンサンプリング輝度サンプルのサブ組で検索して、少なくとも１つのダウンサンプリング最大輝度サンプル及び少なくとも１つのダウンサンプリング最小輝度サンプルをそれぞれ識別する。このダウンサンプリング最大輝度サンプルは、第１の再構成された彩度サンプルに対応するように選択され、ダウンサンプリング最小輝度サンプルは、第２の再構成された彩度サンプルに対応するように選択された。
【０１０７】
次に、ビデオコーデックは、ダウンサンプリング最大輝度サンプルと第１の再構成された隣接彩度サンプルとの第１のペア、及びダウンサンプリング最小輝度サンプルと第２の再構成された隣接彩度サンプルとの第２のペアを使用して線形モデルを生成する（８５０）。ある実施形態では、ビデオコーデックは、２つのデータ点（例えば、（第１の再構成された隣接彩度サンプル、ダウンサンプリング最大輝度サンプル）および（第２の再構成された隣接彩度サンプル、ダウンサンプリング最小輝度サンプル））を識別し、この２つのデータ点を通った線形方程式をフィットすることによって、最大-最小法により線形モデルを生成する。
【０１０８】
ビデオコーデックは、線形モデルを取得した後、再構成された輝度ブロックの輝度サンプルからダウンサンプリング輝度サンプルを算出する（８６０）。各ダウンサンプリング輝度サンプルは、彩度ブロックの彩度サンプルに対応する。例えば、ビデオコーデックは、ダウンサンプリング最大輝度サンプルおよびダウンサンプリング最小輝度サンプルの算出に使用されるダウンサンプリング技術と同じものを使用して、ダウンサンプリング輝度サンプルを算出することが可能である。
【０１０９】
最後に、ビデオコーデックは、この線形モデルを対応するダウンサンプリング輝度サンプルに適用することによって、彩度ブロック内の彩度サンプルを予測する（８７０）。
【０１１０】
１つまたは複数の例では、上述した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現される。ソフトウェアで実現される場合、それらの機能は、１つまたは複数の命令またはコードとして、コンピュータ読取可能な媒体に格納されまたはこれを介して送信され、ハードウェアベースの処理ユニットによって実行される。コンピュータ読取可能な媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ読取可能な記憶媒体、または、例えば、通信プロトコルに従って、ある箇所から別の箇所へのコンピュータプログラムの転送を役立つ任意の媒体を含む通信媒体を含み得る。これにより、コンピュータ読取可能な媒体は、一般的に、（１）非一時的な有形のコンピュータ読取可能な記憶媒体、または（２）信号または搬送波などの通信媒体、に対応し得る。データ記憶媒体は、本願で説明された実施形態の実現のための命令、コード、および／またはデータ構造を検索するために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読取可能な媒体を含み得る。
【０１１１】
ここでの実施形態の説明で使用される用語は、特定の実施形態を説明することのみを目的としており、特許請求の範囲を限定することを意図するものではない。実施形態の説明および添付の特許請求の範囲で使用されるように、単数形「一」、「１つの」、および「この」は、文脈が明確に別段の指示をしない限り、複数形も含むことを意図している。ここで使用される「および／または」という用語は、１つまたは複数の関する、リストされた項目の任意な及びすべての可能な組み合わせを指しかつ含むことも理解されべきである。本明細書で使用された「含む」という用語は、記載された特徴、要素、および／または成分の存在を指定するが、１つまたは複数の他の機能、要素、成分、および/またはそれらの組の存在または追加を排除するものではないことがさらに理解されべきである。
【０１１２】
ここでは、第１、第２などの用語を使用して各種の要素を説明したことが、これらの要素はこれらの用語によって限定されべきではないことも理解されべきである。これらの用語は、ある要素を別の要素と区別するためにのみ使用された。例えば、実施形態の範囲から逸脱することなく、第１の電極は、第２の電極と呼ばれ得、同様に、第２の電極は、第１の電極と呼ばれ得る。第１の電極と第２の電極は両方とも電極であるが、それらは同じ電極ではない。
【０１１３】
本願の説明は、例示および説明の便利のためで提示されており、網羅的なまたは開示された形態の発明に限定することを意図するものではない。各種の変更、変形、および置換した実現は、前述の説明および関連する図面に提示された教示を得った当業者にとっては明らかである。実施形態は、本発明の原理、実際の適用を最もよく説明し、当業者が各種の実施のために本発明を理解し、特定の用途に適するために各種の変更で基礎となる原理および各種の実施を最もよく利用できるようにするために選択されおよび説明されたものである。したがって、特許請求の範囲は、開示された実現の特定の例に限定されなく、変更および他の実現も、添付の特許請求の範囲に含まれることを理解されるべきである。
【図１】
2022500967.tif 000003
【図２】
2022500967.tif 000004
【図３】
2022500967.tif 000005
【図４Ａ】
2022500967.tif 000006
【図４Ｂ】
2022500967.tif 000007
【図４Ｃ】
2022500967.tif 000008
【図４Ｄ】
2022500967.tif 000009
【図５Ａ】
2022500967.tif 000010
【図５Ｂ】
2022500967.tif 000011
【図６】
2022500967.tif 000012
【図７Ａ】
2022500967.tif 000013
【図７Ｂ】
2022500967.tif 000014
【図７Ｃ】
2022500967.tif 000015
【図７Ｄ】
2022500967.tif 000016
【図７Ｅ】
2022500967.tif 000017
【図８】
2022500967.tif 000018
【手続補正書】
【提出日】令和3年4月8日(2021.4.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルから、少なくとも１つのダウンサンプリング輝度サンプルを算出することと、
算出された前記少なくとも１つのダウンサンプリング輝度サンプルのサブ組から、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプルを識別することと、
算出された前記少なくとも１つのダウンサンプリング輝度サンプルのサブ組から、前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別することと、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとに基いて、線形モデルを生成することと、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、
を含むビデオ信号を復号化する方法。
【請求項２】
前記彩度ブロックおよび前記輝度ブロックは、４：２：０または４：２：２の彩度サブサンプリングスキームによって符号化され、異なる解像度を有し、または、
前記彩度ブロックおよび前記輝度ブロックは、４：４：４の彩度フルサンプリングスキームによって符号化され、同じ解像度を有する、請求項１に記載の方法。
【請求項３】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび／または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項１に記載の方法。
【請求項４】
前記再構成された輝度ブロックの輝度サンプルから、ダウンサンプリング輝度サンプルを算出することは、前記輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含む、請求項１に記載の方法。
【請求項５】
前記線形モデルを生成することは、前記少なくとも１つのダウンサンプリング最大輝度サンプル及び前記第１の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、前記少なくとも１つのダウンサンプリング最小輝度サンプル及び前記第２の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項１に記載の方法。
【請求項６】
コンピューティング装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、少なくとも１つのダウンサンプリング輝度サンプルを算出し、
算出された前記少なくとも１つのダウンサンプリング輝度サンプルのサブ組から、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプルを識別し、
算出された前記少なくとも１つのダウンサンプリング輝度サンプルのサブ組から、前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとに基いて、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項７】
前記彩度ブロックおよび前記輝度ブロックは、４：２：０または４：２：２の彩度サブサンプリングスキームによって符号化され、異なる解像度を有し、または、
前記彩度ブロックおよび前記輝度ブロックは、４：４：４の彩度フルサンプリングスキームによって符号化され、同じ解像度を有する、請求項６に記載のコンピューティング装置。
【請求項８】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび／または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項６に記載のコンピューティング装置。
【請求項９】
前記再構成された輝度ブロックの輝度サンプルから、ダウンサンプリング輝度サンプルを算出することは、前記輝度サンプルに６つの隣接輝度サンプルの加重平均化を実行することを含む、請求項６に記載のコンピューティング装置。
【請求項１０】
前記線形モデルを生成することは、前記少なくとも１つのダウンサンプリング最大輝度サンプル及び前記第１の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、 前記少なくとも１つのダウンサンプリング最小輝度サンプル及び前記第２の再構成された彩度サンプルに関連する少なくとも１つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項６に記載のコンピューティング装置。
【請求項１１】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、請求項１から５のいずれか一項に記載のビデオ信号を復号化する方法を実行させる
、非一時的なコンピュータ読取可能な記憶媒体。
【請求項１２】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体を含むコンピュータプログラム製品であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、請求項１から５のいずれか一項に記載のビデオ信号を復号化する方法を実行させる、コンピュータプログラム製品。
【請求項１３】
ビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出することと、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルをそれぞれ識別することと、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成することと、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、、
を含むビデオ信号を復号化する方法。
【請求項１４】
コンピューティング装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出し、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項１５】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出し、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、非一時的なコンピュータ読取可能な記憶媒体。
【請求項１６】
１つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体を含むコンピュータプログラム製品であって、
前記複数のプログラムは、前記１つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、１つ又は複数のダウンサンプリング輝度サンプルを算出し、
前記１つ又は複数のダウンサンプリング輝度サンプルのサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第１の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第２の再構成された彩度サンプルに対応する少なくとも１つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも１つのダウンサンプリング最大輝度サンプルと、前記少なくとも１つのダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピュータプログラム製品。
【手続補正書】
【提出日】令和3年10月25日(2021.10.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にビデオデータの符号化および復号化に関し、特に、ビデオデータの符号化および復号化においてクロスコンポーネント線形モデルを用いて彩度ブロックを再構成する方法およびシステムに関する。
【背景技術】
【０００２】
デジタル・テレビ、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、デジタル・カメラ、デジタル記録装置、デジタル・メディア・プレーヤー、ビデオ・ゲーム機、スマートフォン、ビデオ会議装置やビデオ・ストリーミング装置などの各種電子装置は全てデジタル・ビデオを支持する。電子装置は、ＭＰＥＧ-４、ＩＴＵ-Ｔ  Ｈ.２６３、ＩＴＵ-Ｔ  Ｈ.２６４／ＭＰＥＧ-４、Ｐａｒｔ  １０、Ａｄｖａｎｃｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）及びＶｅｒｓａｔｉｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＶＶＣ）の規格で定義されたビデオ圧縮/展開の標準を実行することで、デジタル・ビデオ・データを受送信し、符号化し、復号化や格納する。ビデオ圧縮は、通常、空間（フレーム内）予測および／または時間（フレーム間）予測を実行して、ビデオデータに固有の冗長性を低減または削除することを含む。ブロックに基づくビデオ符号化において、ビデオフレームは、符号化ツリーユニット（ＣＴＵ：Ｃｏｄｉｎｇ  Ｔｒｅｅ  ＵＮＩＴ)と呼ばれる複数のビデオブロックを含む1つ又は複数のスライスに分割される。各ＣＴＵは、1つの符号化ユニット（ＣＵ）を含み、または予め定められた最小のＣＵサイズに達するまでより小さなＣＵに再帰的に分割されることがある。各ＣＵ（リーフＣＵとも呼ばれる）には、１つまたは複数の変換ユニット（ＴＵ：ｔｒａｎｓｆｏｒｍ  ｕｎｉｔ）と、1つまたは複数の予測ユニット（ＰＵ：ｐｒｅｄｉｃｔｉｏｎ  ｕｎｉｔ）とが含まれる。各ＣＵは、イントラ、インター、またはＩＢＣモードのいずれかで符号化されることが可能である。１つのビデオフレームにおけるイントラ符号化された（I）スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測で符号化される。１つのビデオフレームにおけるインター符号化された（ＰまたはＢ）スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測、または他の以前および／または将来の参照ビデオフレームにおける参照サンプルに関する時間予測を使用する。
【０００３】
以前符号化された参照ブロック、例えば隣接ブロックの空間予測又は時間予測に基いて、符号化対象である現在のビデオブロックの予測ブロックが得られる。参照ブロックを見つける処理は、ブロックマッチングアルゴリズムによって実現することが可能である。符号化対象である現在のブロックと予測ブロックとの間の画素差を示す残差データは、残差ブロック又は予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを生成した参照フレームにおける参照ブロックにポイントする動きベクトルと、残差ブロックとに応じて符号化される。動きベクトルを確定する処理は、通常動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードと残差ブロックによって符号化されるものである。更なる圧縮のために、残差ブロックは画素領域から変換領域、例えば周波数領域に変換され、結果として将来に定量化される残差変換係数が得られる。そして、最初に二次元行列で配置されて定量化された変換係数は、走査されて一次元の変換係数ベクトルを生成し、その後、更なる圧縮を達成するようにビデオ・ビットストリームにエントロピー符号化される。
【０００４】
そして、符号化されたビデオ・ビットストリームは、コンピュータ読取可能な記憶媒体（例えば、フラッシュメモリ）に保存されて、デジタル・ビデオ能力を持つ電子装置によってアクセスされ、或いは有線または無線でこの電子装置に直接送信される。そして、この電子装置は、例えば、符号化されたビデオ・ビットストリームを解析してこのビットストリームから構文要素を取得し、このビットストリームから取得された構文要素の少なくとも一部に基づいてデジタル・ビデオデータをこの符号化されたビデオストリームから元のフォーマットに再構成することで、ビデオ展開（上述したビデオ圧縮とは反対のプロセス）を実行しており、この再構成されたデジタル・ビデオデータを電子装置のディスプレイに再現する。
【０００５】
デジタル・ビデオの品質が高解像度から４Ｋ×２Ｋ、さらに８Ｋ×４Ｋに進んでいるにつれて、符号化／復号化対象となるビデオデータの量は指数関数的に増加する。復号化されたビデオデータの画像品質を維持しながらビデオデータを効率的に符号化／復号化することは、常に課題である。
【発明の概要】
【０００６】
本願は、ビデオデータの符号化および復号化、より具体的には、ビデオデータの符号化および復号化においてクロスコンポーネント線形モデルを用いて彩度ブロックを再構成する方法およびシステムに関する実現を説明する。
【０００７】
本願の第１の方面に従い、ビデオデータを復号化する方法は、１つまたは複数のプロセッサとこの１つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリとを備えるコンピューティング装置で実行される。コンピューティング装置は、彩度ブロックに対応する輝度ブロックを再構成することと、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して最大の輝度サンプルおよび最小の輝度サンプルを識別することと、前記最大の輝度サンプルに対応するダウンサンプリング最大輝度サンプルを算出することと、前記最小の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出することと、前記ダウンサンプリング最大輝度サンプルと、前記ダウンサンプリング最小輝度サンプルと、前記第１の再構成された彩度サンプルと、前記第２の再構成された彩度サンプルとにより線形モデルを生成することと、前記再構成された輝度ブロックの輝度サンプルから前記彩度ブロックの各彩度サンプルにそれぞれ対応するダウンサンプリング輝度サンプルを算出することと、対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することを含む方法を実行する。
【０００８】
本願の第２の方面に従い、コンピューティング装置は、１つまたは複数のプロセッサと、メモリとメモリに格納されている複数のプログラムとを備える。プログラムは、１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に上述のような操作を実行させる。
【０００９】
本願の第３の方面に従い、非一時的なコンピュータ読取可能な記憶媒体は、１つまたは複数のプロセッサを備えるコンピューティング装置によって実行される複数のプログラムを格納している。プログラムは、１つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に上述のような操作を実行させる。
【図面の簡単な説明】
【００１０】
本発明の実現のさらなる理解を提供する、本明細書に引き入れて本明細書の一部を構成する添付図面は、上述した実現を示し、その説明と共に基礎原理を説明するためものである。なお、同一符号は同一または相当な部分を示す。
【００１１】
【図１】図１は、本開示のある実施形態に係るビデオ符号化および復号化システムを例示するブロック図である。
【図２】図２は、本開示のある実施形態に係るビデオエンコーダを例示するブロック図である。
【図３】図３は、本開示のある実施形態に係るビデオデコーダを例示するブロック図である。
【図４】図４Ａ〜４Ｄは、本開示のある実施形態に係る、フレームがどのように再帰的に異なるサイズの複数のビデオブロックにクワッドツリー分割で分割されるかを示すブロック図である。
【図５Ａ】図５Ａは、本開示のある実施形態に係る、符号化対象である現在ＣＵの空間的に隣り合いかつ時間的に並べられたブロック位置を示すブロック図である。
【図５Ｂ】図５Ｂは、本開示のある実施形態に係る、波面並列処理を使用して画像における複数のＣＴＵの複数の行分にマルチスレッド符号化を行うことを示すブロック図である。
【図６】図６Ａおよび６Ｂは、本開示のある実施形態に係る、再構成された輝度ブロックおよび関連彩度ブロックをそれぞれ例示するブロック図である。
【図７】図７Ａ〜７Ｅは、本開示のある実施形態に係る、クロスコンポーネント線形モデルを使用して輝度値と彩度値との間で線形モデルを導出する種々の方法を示している。
【図８】図８は、本開示のある実施形態に係る、ビデオコーデックが、クロスコンポーネント線形モデルを使用して、輝度ブロックから再構成された輝度サンプルに基づいて彩度ブロックの彩度サンプルを再構成する技術を実現するためのプロセスを例示するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を詳細に説明する。以下の詳細な説明において、本明細書に述べる趣旨を容易に理解するために、複数の非限定的な具体的な詳細を述べる。ただし、本発明は、特許請求の範囲及びその趣旨から逸脱することではなく種々の変形により実施することができることは当業者には明らかである。例えば、本明細書に述べる趣旨がデジタルビデオ機能を有する多くの種類の電子装置で実施され得る。
【００１３】
図１は、本開示のある実施形態に係る、ビデオブロックを並列に符号化および復号化するためのシステム１０を例示するブロック図である。図１に示すように、システム１０は、将来目標装置１４によって復号化されるビデオデータを生成し符号化するソース装置１２を含む。ソース装置１２および目標装置１４には、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セットトップボックス、デジタル・テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオ・ゲーム機、ビデオ・ストリーミング装置などを含む多種の電子装置のいずれかを含んでもよい。ある実施形態では、ソース装置１２および目標装置１４は、無線通信機能を備えている。
【００１４】
ある実施形態では、目標装置１４は、リンク１６を介して復号化対象の符号化後のビデオデータを受信する。リンク１６には、符号化されたビデオデータをソース装置１２から目標装置１４に移動させる任意のタイプの通信媒体または装置を含むことが可能である。一つの例では、リンク１６には、ソース装置１２から、符号化されたビデオデータを目標装置１４にリアルタイムで直接送信できる通信媒体を含んでもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信規格に従って変調され、目標装置１４に送信される。通信媒体には、無線周波数（ＲＦ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）スペクトルまたは１つか複数の物理的な伝送路などの任意の無線または有線通信媒体を含むことが可能である。通信媒体は、ローカルエリアネットワークのようなパケットベースのネットワーク、ワイドエリアネットワークまたはインターネット等のようなグローバルネットワークの一部として構成してもよい。通信媒体には、ルーター、交換機、基地局や、ソース装置１２から目標装置１４への通信に役立つ他の任意の装置を含んでもよい。
【００１５】
他のある実施形態では、符号化されたビデオデータは、出力インターフェース２２からストレージ装置３２に送信される。その後、ストレージ装置３２にある符号化されたビデオデータは、入力インターフェース２８を介して目標装置１４によってアクセスされる。ストレージ装置３２には、ハードドライブ、Ｂｌｕ-ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、や符号化されたビデオデータを格納するための他の適切なデジタル記憶媒体などのような多種の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含むことが可能である。他の例では、ストレージ装置３２は、ファイルサーバ、またはソース装置１２によって生成された符号化ビデオデータを保持することができる別の中間ストレージ装置に対応してもよい。目標装置１４は、ストリーミングまたはダウンロードを介してストレージ装置３２から格納されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、符号化されたビデオデータを目標装置１４に送信することができる任意のタイプのコンピュータであることが可能である。例示的なファイルサーバは、ウェブサーバ（例えば、ウェブサイト用）、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）装置、またはローカルディスクドライブを含む。目標装置１４は、ファイルサーバーに保存されている符号化ビデオデータへのアクセスに適する無線チャネル（例えば、Ｗｉ―Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、またはそれらの組み合わせを含む任意の規格データ接続を介して、符号化されたビデオデータをアクセスすることができる。ストレージ装置３２からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであってもよい。
【００１６】
図１に示すように、ソース装置１２は、ビデオソース１８、ビデオエンコーダ２０、および出力インターフェース２２を含む。ビデオソース１８には、ビデオ・キャプチャ装置（例えばビデオカメラ）、前に捕らえられたビデオを含むビデオアーカイブ、ビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェイス、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそれらの組み合わせ等のようなソースを含むことが可能である。一つの例として、ビデオソース１８がセキュリティ監視システムのビデオカメラである場合、ソース装置１２および目標装置１４は、カメラ付き携帯電話またはビデオ電話を構成できる。しかしながら、本願で説明する実施形態は、一般にビデオ符号化に適用可能であり、そして無線および／または有線アプリケーションに適用可能である。
【００１７】
ビデオエンコーダ２０は、捕れるビデオ、予め捕らえられたビデオ、またはコンピュータによって生成されたビデオを符号化することができる。符号化されたビデオデータは、ソース装置１２の出力インターフェース２２を介して目標装置１４に直接送信されることが可能である。加えて（または選択的に）、符号化されたビデオデータは、その後、目標装置１４または他の装置によってアクセスされて復号化および／または再生できるように、ストレージ装置３２に格納されてもよい。出力インターフェース２２は、モデムおよび／または送信機をさらに含んでもよい。
【００１８】
目標装置１４は、入力インターフェース２８、ビデオデコーダ３０、および表示装置３４を含む。入力インターフェース２８は受信機および／またはモデムを含み、リンク１６を介して符号化されたビデオデータを受信する。リンク１６を介して通信された、またはストレージ装置３２に提供された符号化ビデオデータには、ビデオエンコーダ２０によって生成され、ビデオデコーダ３０によるビデオデータの復号化に使用される多くの構文要素を含んでもよい。これらの符号化されたビデオデータは、通信媒体で送信されるか、記憶媒体に記憶されているか、ファイルサーバーに記憶されているかに関わらず、そのような構文要素を含んでもよい。
【００１９】
ある実施形態では、目標装置１４は、集積された表示装置や、目標装置１４と通信できるように構成された外部表示装置である表示装置３４を含んでもよい。表示装置３４は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプの表示装置などの各種の表示装置のいずれかを含んでもよい。
【００２０】
ビデオエンコーダ２０およびビデオデコーダ３０は、ＶＶＣ、ＨＥＶＣ、ＭＰＥＧ-４、Ｐａｒｔ１０、高度なビデオ符号化（ＡＶＣ：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、またはそのような規格の拡張などの専門または業界標準に従って動作する。なお、本願は、特定のビデオ符号化／復号化の標準に限定されず、他のビデオ符号化／復号化規格にも適用可能であることが理解されるべきである。ソース装置１２のビデオエンコーダ２０は、これらの現在または将来の規格のいずれかに従ってビデオデータを符号化するように構成される。同様に、目標装置１４のビデオデコーダ３０は、これらの現在または将来の規格のいずれかに従ってビデオデータを復号化するように構成される。
【００２１】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、離散な論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせなどのような、種々の適切なエンコーダ回路のいずれかによって実現されることが可能である。ソフトウェアによって一部実現される場合、電子装置は、ソフトウェアの命令を適切な非一時的なコンピュータ読取可能な媒体に格納し、１つまたは複数のプロセッサによってハードウェアにおける命令を実行することで本開示に述べたビデオ符号化／復号化操作を実行してもよい。ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれの装置において結合式エンコーダ/デコーダ（ＣＯＤＥＣ）の一部として集積された一つまたは複数のエンコーダまたはデコーダに含まれてもよい。
【００２２】
図２は、本願で説明されるある実施形態に係るビデオエンコーダ２０を例示するブロック図である。ビデオエンコーダ２０は、ビデオフレーム内のビデオブロックに対してイントラ予測符号化およびインター予測符号化を実行することができる。イントラ予測符号化は空間予測に依存し、特定のビデオフレームまたは画像内のビデオデータの空間的冗長性を低減または削除する。インター予測符号化は、時間予測に依存し、ビデオシーケンスの隣接するビデオフレームまたは画像内のビデオデータの時間的冗長性を低減または削除する。
【００２３】
図２に示すように、ビデオエンコーダ２０は、ビデオデータメモリ４０、予測処理部４１、復号化画像バッファ（ＤＰＢ）６４、加算器５０、変換処理部５２、定量化部５４、エントロピー符号化部５６を備えている。予測処理部４１は、動き推定部４２、動き補償部４４、分割部４５、イントラ予測処理部４６、イントラブロックコピー（ＢＣ）部４８をさらに備えている。ある実施形態では、ビデオエンコーダ２０はまた、ビデオブロック再構成のための逆定量化部５８、逆変換処理部６０、および加算器６２をさらに備えている。加算器６２とＤＰＢ６４との間には、再構成されたビデオからブロック同士の境界をフィルタリングしてブロック性アーチファクトを除去するデブロッキング・フィルタ（図示せず）を配置することが可能である。また、加算器６２の出力をフィルタリングするために、デブロッキング・フィルタに加えて、環内フィルタ（図示せず）を用いてもよい。ビデオエンコーダ２０は、固定的、またはプログラマブル・ハードウェアユニットの形態で形成してもよいし、または図示された固定的またはプログラマブル・ハードウェアユニットの1つ又は複数内で分割されてもよい。
【００２４】
ビデオデータメモリ４０は、ビデオエンコーダ２０における部品によって符号化対象のビデオデータを格納する。ビデオデータメモリ４０におけるビデオデータは、例えばビデオソース１８から得られる。ＤＰＢ６４は、ビデオエンコーダ２０によってビデオデータを（例えば、イントラ予測またはインター予測符号化モードで）符号化する際に使用される参照ビデオデータを格納するバッファである。ビデオデータメモリ４０およびＤＰＢ６４は、種々のメモリデバイスのいずれかで形成されることが可能である。種々の例では、ビデオデータメモリ４０は、ビデオエンコーダ２０における他の部品とともにオンチップであってもよく、またはそれらの部品に対するオフチップであってもよい。
【００２５】
図２に示すように、ビデオデータを受信した後、予測処理部４１における分割部４５は、このビデオデータをビデオブロックに分割する。この分割には、このビデオデータに関するｑｕａｄ−ｔｒｅｅ構造のような予め定められた分割構造に従って、ビデオフレームをスライス、タイルまたは他のより大きい符号化ユニット（ＣＵ）に分割することを含んでもよい。ビデオフレームは、複数のビデオブロック（または、タイルと称されるビデオブロックトセット）に分割されることができる。予測処理部４１は、現在のビデオブロックに対して、エラー結果（例えば、符号化率および歪みレベル）に基づいて、複数のイントラ予測符号化モードのうちの１つまたは複数のインター予測符号化モードのうちの１つを選択するように、複数の可能な予測符号化モードのうちの１つを選択する。そして、予測処理部４１は、得られたイントラ又はインター予測符号化ブロックを加算器５０に提供して残差ブロックを生成し、その後の参照フレームの一部として使用するように符号化ブロックを再構成する。また、予測処理部４１は、さらに動きベクトル、イントラモードインジケータ、分割情報及び他の構文情報のような構文要素をエントロピー符号化部５６に提供する。
【００２６】
予測処理部４１におけるイントラ予測処理部４６は、現在のビデオブロックに適したイントラ予測符号化モードを選択するために、符号化対象である現在のブロックと同一のフレーム内の１つまたは複数の隣接ブロックと関連して、現在のビデオブロックのイントラ予測符号化を実行して空間予測を行うことができる。予測処理部４１における動き推定部４２および動き補償部４４は、一つ又は複数の参照フレーム内の一つ又は複数の予測ブロックに関連して、現在のビデオブロックのインター予測符号化を実行して時間予測を行う。ビデオエンコーダ２０は、複数のパスの符号化処理を実行して、例えばビデオデータにおける各ブロックに対して適切な符号化モードを選択してもよい。
【００２７】
ある実施形態では、動き推定部４２は、ビデオフレームのシーケンスの予め定められたパターンに従って、参照ビデオフレーム内における予測ブロックに対する現在のビデオフレーム内におけるビデオブロックの予測ユニット（ＰＵ）の変位を示す動きベクトルを生成することで、現在のビデオフレームに対してインター予測モードを決定する。動き推定部４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、現在のビデオ・フレームまたは画像内における符号化されている現在のビデオブブロック（または他の符号化ユニット）に対する基準フレーム（または他の符号化ユニット）内における予測ブロックに対して、現在のビデオ・フレーム内におけるビデオブロックのＰＵの変位を示すことができる。予め定められたパターンは、シーケンスにおけるビデオ・フレームをＰフレームまたはＢフレームとして指定できる。イントラＢＣ部４８は、動き推定部４２によるインター予測のための動きベクトルの決定と同様な方法により、イントラＢＣ符号化のためのベクトル、例えばブロックベクトルを決定してもよいし、または動き推定部４２を利用してブロックベクトルを決定してもよい。
【００２８】
絶対差の合計（ＳＡＤ）、二乗差の合計（ＳＳＤ）又はその他の差メトリックによって決定できる画素差では、予測ブロックは、符号化対象のビデオブロックのＰＵと厳密にマッチングされる参照フレームにおけるブロックである。ある実施形態では、ビデオエンコーダ２０は、ＤＰＢ６４に格納されている参照フレームのサブ整数画素位置の値を算出することが可能である。例えば、ビデオエンコーダ２０は、参照フレームの１／４画素位置、1／８の画素位置、または他の分数の画素位置の値を補間してもよい。したがって、動き推定装置４２は、すべての画素位置および分数画素位置に対して動き探索処理を実行して、分数画素精度を有する動きベクトルを出力ことができる。
【００２９】
動き推定部４２は、インター予測符号化フレーム内におけるビデオブロックのＰＵの位置と、それぞれＤＰＢ６４に格納されている１つまたは複数の参照フレームを識別する第１の参照フレームリスト（Ｌｉｓｔ０）または第２の参照フレームリスト（Ｌｉｓｔ１）から選択された参照フレームの予測ブロックの位置と比較することで、ビデオブロックのＰＵの動きベクトルを算出する。動き推定部４２は、算出された動きベクトルを動き補償部４４に送信し、そしてエントロピー符号化部５６に送信する。
【００３０】
動き補償部４４によって実行される動き補償には、動き推定部４２によって決定された動きベクトルに基づいて予測ブロックを取得または生成することを含み得る。動き補償部４４は、現在のビデオブロックのＰＵの動きベクトルを受信すると、参照フレームリストの1つにおいてこの動きベクトルが指している予測ブロックを位置決めし、ＤＰＢ６からこの予測ブロックを探し、この予測ブロックを加算器５０に転送する。そして、加算器５０は、符号化されている現在のビデオブロックの画素値から動き補償部４４によって提供された予測ブロックの画素値を差し引くことで、画素差値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差値は、輝度差成分または彩度差成分、あるいはその両方を含み得る。また、動き補償部４４は、ビデオフレームのビデオブロックに関する構文要素をさらに生成して、ビデオデコーダ３０によってビデオフレームのビデオブロックを復号化する際に使用する。構文要素には、例えば、この予測ブロックを識別するための動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書で説明される任意の他の構文情報を含み得る。なお、動き推定部４２および動き補償部４４は、概念的な目的のために個別に示されているが、高度に集積されてもよい。
【００３１】
ある実施形態では、イントラＢＣ部４８は、動き推定部４２および動き補償部４４に関して上述した方法と同様の方法によりベクトルを生成し、予測ブロックを取得することができるが、ここで、予測ブロックは符号化されている現在のブロックと同じフレームにあるものであり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれる。特に、イントラＢＣ部４８は、一つのイントラ予測モードを決定して現在のブロックを符号化することができる。ある例では、イントラＢＣ部４８は、例えば個別のパスの符号化において、多種類のイントラ予測モードを使用して現在のブロックを符号化し、レート歪み解析によりそれらのパフォーマンスをテストすることが可能である。次に、イントラＢＣ部４８は、テストされた種々のイントラ予測モードから、一つの適切なイントラ予測を選択し使用して、対応するイントラモードインジケータを生成する。例えば、イントラＢＣ部４８は、テストされた種々のイントラ予測モードのレート歪み値をレート歪み解析により算出し、テストされたモードからレート歪み特性が最適なイントラ予測モードを適切なイントラ予測モードとして選択し使用してもよい。レート歪み解析では、通常、符号化されたブロックと符号化されてこの符号化されたブロックを生成した符号化が実施されていない元のブロックとの間の歪み（又は、エラー）の量、およびこの符号化されたブロックを生成するために使用されるビットレート（すなわち、複数のビット）が決定される。イントラＢＣ部４８は、種々の符号化されたブロックについて歪み及びレートから比率を算出して、どのイントラ予測モードがこのブロックに対して最適なレート歪み値を示しているかを決定してもよい。
【００３２】
別の例では、イントラＢＣ部４８は、動き推定部４２および動き補償部４４を全体的または一部的に使用して、本明細書に記載の実施形態に基づくイントラＢＣ予測用いられる係る機能を実行してもよい。いずれの場合も、イントラ・ブロック・コピーについては、予測ブロックは、絶対差の合計（ＳＡＤ）、二乗差の合計（ＳＳＤ）または他の差メトリックによって決定できる画素差で、符号化対象のブロックと厳密にマッチングすると考えるものであり、予測ブロックの識別には、サブ整数画素位置の値の算出が含まれる場合がある。
【００３３】
ビデオエンコーダ２０は、予測ブロックがイントラ予測に基づく同じフレームからのものであるか、インター予測に基づく異なるフレームからのものであるかに関わらず、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を差し引いて画素差値を形成することで、残差ビデオブロックを生成することができる。残差ビデオブロックを形成している画素差値には、輝度成分差及び彩度成分差の両方を含むことが可能である。
【００３４】
イントラ予測処理部４６は、上述した動き推定部４２および動き補償部４４によって実行されるインター予測、またはイントラＢＣ部４８によって実行されるイントラ・ブロック・コピー予測の代わりに、現在のビデオブロックに対してイントラ予測することができる。特に、イントラ予測処理部４６は、１つのイントラ予測モードを決定して現在のブロックを符号化することができる。それを実現するために、イントラ予測処理部４６は、例えば、個別のパスの符号化処理において、種々のイントラ予測モードを使用して現在のブロックを符号化し、イントラ予測処理部４６（またはある例では、モード選択部）は、テストされたイントラ予測モードから１つの適切なイントラ予測モードを選択し使用してもよい。イントラ予測処理部４６は、このブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化部５６に提供してもよい。エントロピー符号化部５６は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【００３５】
予測処理部４１がインター予測またはイントラ予測により現在のビデオブロックの予測ブロックを決定した後、加算器５０は、現在のビデオブロックからこの予測ブロックを差し引くことで残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、１つまたは複数の変換ユニット（ＴＵ）に含まれて変換処理部５２に提供される。変換処理部５２は、離散コサイン変換（ＤＣＴ）または概念的に類似する変換などにより、残差ビデオデータを残差変換係数に変換することができる。
【００３６】
変換処理部５２は、得られた変換係数を定量化部５４に送信する。定量化部５４は、これらの変換係数を定量化して、ビットレートをさらに低減する。定量化プロセスは、これらの係数の一部または全部に関連するビット深度を減らすこともできる。定量化の度合いは、定量化パラメータを調整することによって変更されることができる。そして、ある例では、定量化部５４は、定量化された変換係数を含む行列の走査を実行することができる。この走査は、エントロピー符号化部５６によって実行されることが可能である。
【００３７】
定量化に続いて、エントロピー符号化部５６は、例えば、コンテキスト適応可変長符号化（ＣＡＶＬＣ）、コンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ）、構文ベースのコンテキスト適応バイナリ算術符号化（ＳＢＡＣ）、確率間隔分割エントロピー（ＰＩＰＥ）符号化または別のエントロピー符号化方法または技術により、定量化された変換係数を、ビデオ・ビットストリームにエントロピー符号化する。そして、符号化されたビットストリームは、ビデオデコーダ３０に送信されてもよいし、またはその後にビデオデコーダ３０へ送信するか、またはビデオデコーダ３０による検索のためにストレージ装置３２にアーカイブされてもよい。また、エントロピー符号化部５６は、符号化されている現在のビデオフレームのための動きベクトルおよび他の構文要素をエントロピー符号化してもよい。
【００３８】
逆定量化部５８および逆変換処理部６０は、それぞれ、逆定量化および逆変換により、他のビデオブロックの予測に使用される参照ブロックを生成するための画素領域内の残差ビデオブロックを再構成する。上記のように、動き補償部４４は、ＤＰＢ６４に格納されたフレームの１つまたは複数の参照ブロックから動き補償予測ブロックを生成することができる。また、動き補償部４４は、この予測ブロックに１つまたは複数の補間フィルタを適用して、動き推定に使用されるサブ整数画素値を算出することもできる。
【００３９】
加算器６２は、再構成された残差ブロックを動き補償部４４によって生成された動き補償予測ブロックに加算して、ＤＰＢ６４に格納する参照ブロックを生成する。そして、この参照ブロックは、予測ブロックとして、イントラＢＣ部４８、動き推定部４２および動き補償部４４に使用されて後続のビデオフレーム内の別のビデオブロックをインター予測することが可能である。
【００４０】
図３は、本願のある実施形態に係るビデオデコーダ３０を例示するブロック図である。ビデオデコーダ３０は、ビデオデータメモリ７９、エントロピー復号化部８０、予測処理部８１、逆定量化部８６、逆変換処理部８８、加算器９０およびＤＰＢ９２を備える。予測処理部８１は、動き補償部８２、イントラ予測部８４及びイントラＢＣ部８５をさらに備える。ビデオデコーダ３０は、図２に参照してビデオエンコーダ２０に関して上述した符号化プロセスとおおよそ逆の復号化プロセスを実行することができる。例えば、動き補償部８２は、エントロピー復号部８０から受信した動きベクトルに基づいて予測データを生成し、イントラ予測部８４は、エントロピー復号化部８０から受信したイントラ予測モードインジケータに基づいて予測データを生成することができる。
【００４１】
ある例では、ビデオデコーダ３０における一つの構成要素が本願の実施を実行する任務を負ってもよい。また、ある例では、本開示の実施は、ビデオデコーダ３０における１つまたは複数の構成要素に分割されてもよい。例えば、イントラＢＣ部８５は、本願の実施を単独で実現してもよく、または動き補償部８２、イントラ予測部８４およびエントロピー復号化部８０などのビデオデコーダ３０における他の構成要素と組み合わせて実現してもよい。ある例では、ビデオデコーダ３０は、イントラＢＣ部８５を含まなく、イントラＢＣ部８５の機能が動き補償部８２などの予測処理部８１における他の構成要素によって実現されてもよい。
【００４２】
ビデオデータメモリ７９は、ビデオデコーダ３０における他の構成要素によって復号化される符号化ビデオビットストリームなどのビデオデータを格納することができる。ビデオデータメモリ７９に格納されたビデオデータは、例えば、ストレージ装置３２から取得したり、ビデオデータの有線または無線ネットワーク通信や物理データ記憶媒体（例えば、フラッシュドライブやハードディスク）へのアクセスによりカメラなどのローカルビデオソースから取得し得る。ビデオデータメモリ７９は、符号化されたビデオビットストリームから符号化されたビデオデータを格納する符号化画像バッファ（ＣＰＢ）を含んでもよい。ビデオデコーダ３０における復号化画像バッファ（ＤＰＢ）９２は、ビデオデコーダ３０（例えば、イントラ予測またはインター予測符号化モード）によるビデオデータの復号化に使用される参照ビデオデータを格納する。ビデオデータメモリ７９およびＤＰＢ９２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗変化型ＲＡＭ（ＲＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または他のタイプのメモリデバイスなどの種々のメモリデバイスのいずれかによって形成されることができる。説明の便利上、ビデオデータメモリ７９およびＤＰＢ９２は、図３ではビデオデコーダ３０における２つの異なる構成要素として示されている。しかし、当業者にとっては、ビデオデータメモリ７９およびＤＰＢ９２が同じメモリデバイス又は異なるメモリデバイスによって提供されることは明らかである。ある例では、ビデオデータメモリ７９は、ビデオデコーダ３０における他の構成要素とともにオンチップであってもよく、それらの構成要素に対するオフチップであってもよい。
【００４３】
復号化プロセスにおいて、ビデオデコーダ３０は符号化されたビデオフレームのビデオブロックおよび関連構文要素を示す符号化されたビデオビットストリームを受信する。ビデオデコーダ３０は、ビデオフレームレベルおよび／またはビデオブロックレベルで構文要素を受信することができる。ビデオデコーダ３０のエントロピー復号化部８０は、このビットストリームをエントロピー復号化して、定量化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他の構文要素を生成する。そして、エントロピー復号化部８０は、動きベクトルおよび他の構文要素を予測処理部８１に転送する。
【００４４】
ビデオフレームがイントラ予測符号化（Ｉ）フレームに符号化された場合、または他のタイプのフレームのイントラ符号化予測ブロックに用いられる場合には、予測処理部８１におけるイントラ予測部８４は、通知されたイントラ予測モードと、現在のフレームからの以前復号化されたブロックからの参照データとに基づいて、現在のビデオフレームのビデオブロックの予測データを生成することができる。
【００４５】
ビデオフレームがインター予測符号化（すなわち、ＢまたはＰ）フレームに符号化された場合、予測処理部８１における動き補償部８２は、エントロピー復号化部８０から受信した動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックの１つまたは複数の予測ブロックを生成することができる。各予測ブロックは、参照フレームリストのうちの１つの参照フレーム内から生成される。ビデオデコーダ３０は、ＤＰＢ９２に格納された参照フレームに基いて、デフォルトの構成技術によりこの参照フレームリスト、Ｌｉｓｔ０およびＬｉｓｔ１を構成することができる。
【００４６】
ある例では、ビデオブロックがここで述べたイントラＢＣモードに従って符号化された場合には、予測処理部８１におけるイントラＢＣ部８５は、エントロピー復号化部８０から受信したブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックの予測ブロックを生成する。この予測ブロックは、ビデオエンコーダ２０によって定義された現在のビデオブロックと同一の画像の再構成領域内にあり得る。
【００４７】
動き補償部８２および／またはイントラＢＣ部８５は、動きベクトルおよび他の構文要素を解析することによって現在のビデオフレームのビデオブロックの予測情報を決定し、そして、この予測情報を使用して復号化されている現在のビデオブロックの予測ブロックを生成する。例えば、動き補償部８２は、受信した構文要素の一部を使用して、このビデオフレームのビデオブロックを符号化するための予測モード（例えば、イントラ予測またはインター予測）、インター予測フレームタイプ（例えば、ＢまたはＰ）、このフレームに関する１つまたは複数の参照フレームリストのための構造情報、このフレームの各インター予測符号化ビデオブロックに関する動きベクトル、このフレームの各インター予測符号化ビデオブロックに関するインター予測状態、および現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定する。
【００４８】
同様に、イントラＢＣ部８５は、受信した構文要素の一部を使用することができる。例えば、現在のビデオブロックがイントラＢＣモード予測であることを決定するためのフラグ、このフレームのどんなビデオブロックが再構成領域内にあり且つＤＰＢ９２に格納されるべきかに関する構造情報、このフレームにおける各イントラＢＣ予測ビデオブロックに関するブロックベクトル、このフレームにおける各イントラＢＣ予測ビデオブロックに関するイントラＢＣ予測状態、及び現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を使用することができる。
【００４９】
また、動き補償部８２は、ビデオエンコーダ２０がビデオブロックの符号化において使用した補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素に対する補間値を算出することもできる。この場合、動き補償部８２は、受信した構文要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【００５０】
逆定量化部８６は、ビデオエンコーダ２０によって定量化の度合いを決定するためにこのビデオフレーム内の各ビデオブロックに対して算出された定量化パラメータと同じものを使用して、ビットストリームで提供され且つエントロピー復号化部８０によってエントロピー復号化された定量化の変換係数を逆定量化する。逆変換処理部８８は、画素領域における残差ブロックを再構成するために、逆変換、例えば逆ＤＣＴ、逆整数変換、または概念的に類似の逆変換処理を変換係数に適用する。
【００５１】
動き補償部８２またはイントラＢＣ部８５がこのベクトルおよび他の構文要素に基づいて現在のビデオブロックの予測ブロックを生成した後、加算器９０は、逆変換処理部８８からの残差ブロックと動き補償部８２またはイントラＢＣ部８５によって生成された対応する予測ブロックとを加算することで、現在のビデオブロックに対して復号化されたビデオブロックを再構成する。インループフィルタ（図示せず）は加算器９０とＤＰＢ９２との間に配置されて、この復号化されたビデオブロックをさらに処理することが可能である。そして、所定のフレーム内の復号化されたビデオブロックは、次のビデオブロックのその後の動き補償に使用される参照フレームを格納するＤＰＢ９２に格納される。また、ＤＰＢ９２、またはＤＰＢ９２とは別のメモリデバイスには、その後に図１の表示装置３４などのような表示装置に表示するために、復号化されたビデオも格納されることが可能である。
【００５２】
典型的なビデオ符号化プロセスでは、１つのビデオシーケンスは通常順序付けられたフレームまたは画像のセットを含む。各フレームには、ＳＬ、ＳＣｂおよびＳＣｒの３つのサンプル行列を含める。ＳＬは、輝度サンプルの２次元行列である。ＳＣｂは、Ｃｂ彩度サンプルの２次元行列である。ＳＣｒは、Ｃｒ彩度サンプルの２次元行列である。他の例では、フレームはモノクロである可能性があり、この場合、１つの輝度サンプルの２次元行列のみが含まれる。
【００５３】
図４Ａに示すように、ビデオエンコーダ２０（または、より具体的には分割部４５）は、最初にフレームを1組の符号化ツリーユニットに分割することにより、このフレームの符号化表現を生成する。ビデオフレームには、ラスター走査順で左から右、および上から下に連続的に順序付けられた整数個のＣＴＵが含まれる。各ＣＴＵは、最大の論理符号化ユニットであり、幅および高さが、ビデオシーケンス内のすべてのＣＴＵが１２８×１２８、６４×６４、３２×３２及び１６×１６のうちの１つと同じサイズを有するように、ビデオエンコーダ２０によってシーケンスパラメータセットで転送される。なお、本願は必ずしも特定のサイズに限定されない。図４Ｂに示すように、各ＣＴＵは、輝度サンプルの１つの符号化ツリーブロック（ＣＴＢ）、彩度サンプルの２つの符号化ツリーブロック、および符号化ツリーブロックのサンプルを符号化するために使用される構文要素を含み得る。構文要素は、画素の符号化ブロックの異なるタイプのユニットの属性と、どのようにビデオデコーダ３０においてビデオシーケンスを再構成するかを記述する。例えば、インター予測またはイントラ予測、イントラ予測モード、動きベクトルおよび他のパラメータを含む。モノクロ画像または３つの個別の色平面を有する画像では、ＣＴＵが、単一の符号化ツリーブロックと、この符号化ツリーブロックのサンプルを符号化するために使用される構文要素とを含み得る。符号化ツリーブロックは、Ｎ×Ｎブロックのサンプルであることが可能である。
【００５４】
より良いパフォーマンスを達成するために、ビデオエンコーダ２０は、ＣＴＵの符号化ツリーブロックに対してバイナリツリー分割、クアッドツリー分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行して、このＣＴＵをより小さな符号化ユニット（ＣＵ）に分割することができる。より良いパフォーマンスを達成するために、ビデオエンコーダ２０は、ＣＴＵの符号化ツリーブロックに対してバイナリツリー分割、クアッドツリー分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行して、このＣＴＵをより小さな符号化ユニット（ＣＵ）に分割することができる。図４Ｃに示すように、６４×６４のＣＴＵ４００は、まず、４つの小さな３２×３２ブロックサイズに分割される。これらの４つの小さいＣＵのうち、ＣＵ４１０及びＣＵ４２０は、それぞれ４つの１６×１６ブロックサイズのＣＵに分割される。２つの１６×１６ブロックサイズのＣＵ４３０および４４０は、それぞれ４つの８×８ブロックサイズのＣＵにさらに分割される。図４Ｄは、図４Ｃに示されたＣＴＵ４００の分割プロセスの最終的な結果を表すクワッドツリーデータ構造を示し、クワッドツリーにおける各リーフノードは、３２×３２から８×８までの各サイズ範囲における１つのＣＵに対応する。図４Ｂに示されたＣＴＵのように、各ＣＵは、同じサイズのフレームにおける１つの輝度サンプルの符号化ブロック（ＣＢ）と、彩度サンプルの２つの対応する符号化ブロックと、これらの符号化ブロックのサンプルを符号化するために使用される構文要素とを含み得る。モノクロ画像または３つの個別の色平面を有する画像において、１つのＣＵは、単一の符号化ブロックと、この符号化ブロックのサンプルを符号化するために使用される構文構造とを含み得る。
【００５５】
ある実施形態では、ビデオエンコーダ２０は、さらにＣＵの符号化ブロックを１つまたは複数のＭ×Ｎ予測ブロック（ＰＢ）に分割するこができる。予測ブロックは、同じ予測（インター予測またはイントラ予測）が適用される長方形（正方形または非正方形）のサンプルブロックである。ＣＵの予測ユニット（ＰＵ）は、１つの輝度サンプルの予測ブロック、彩度サンプルの２つの対応する予測ブロック、およびこれらの予測ブロックを予測するために使用される構文要素を含み得る。モノクロ画像または３つの個別の色平面を有する画像では、ＰＵは単一の予測ブロックと、予測ブロックを予測するために使用される構文構造とを含み得る。ビデオエンコーダ２０は、ＣＵの各ＰＵの輝度予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックに対する予測的な輝度ブロック、予測的なＣｂブロック、および予測的なＣｒブロックを生成することができる。
【００５６】
ビデオエンコーダ２０は、イントラ予測またはインター予測により、ＰＵのこれらの予測ブロックを生成することができる。ビデオエンコーダ２０は、イントラ予測によりＰＵの予測ブロックを生成する場合、このＰＵに関連するフレームの復号化されたサンプルに基づいて、このＰＵの予測的なブロックを生成することができる。ビデオエンコーダ２０は、インター予測によりＰＵの予測ブロックを生成する場合、このＰＵに関連するフレーム以外の１つまたは複数のフレームの復号化されたサンプルに基づいて、このＰＵの予測的なブロックを生成することができる。
【００５７】
ビデオエンコーダ２０は、ＣＵの１つまたは複数のＰＵの予測的な輝度ブロック、予測的なＣｂブロック、および予測的なＣｒブロックを生成した後、ＣＵの元の輝度符号化ブロックからＣＵの予測的な輝度ブロックを差し引くことによって、ＣＵの輝度残差ブロックにおける各サンプルが、ＣＵの１つの予測的な輝度ブロックにおける輝度サンプルとＣＵの元の輝度符号化ブロックにおける対応するサンプルとの差を示すように、ＣＵの輝度残差ブロックを生成することができる。同様に、ビデオエンコーダ２０は、ＣＵのＣｂ残差ブロックにおける各サンプルが、ＣＵの１つの予測的なＣｂブロックにおけるＣｂサンプルとＣＵの元のＣｂ符号化ブロックにおける対応するサンプルとの差を示し、ＣＵのＣｒ残差ブロックにおける各サンプルがＣＵの１つの予測的なＣｒブロックにおけるＣｒサンプルとＣＵの元のＣｒ符号化ブロックにおける対応するサンプルとの差を示すように、ＣＵのＣｂ残差ブロックおよびＣｒ残差ブロックをそれぞれ生成することができる。
【００５８】
さらに、図４Ｃに示すように、ビデオエンコーダ２０は、クワッドツリー分割により、ＣＵの輝度残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロックを１つまたは複数の輝度変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに分解することができる。変換ブロックは、同じ変換が適用される長方形（正方形または非正方形）のサンプルブロックである。ＣＵの変換ユニット（ＴＵ）は、輝度サンプルの変換ブロック、彩度サンプルの２つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用される構文要素を含み得る。したがって、ＣＵの各ＴＵは、１つの輝度変換ブロック、１つのＣｂ変換ブロック、および１つのＣｒ変換ブロックに関連付けられる。ある例では、ＴＵに関連付けられた輝度変換ブロックは、ＣＵの輝度残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロ画像または３つの個別の色平面を有する画像では、ＴＵが、単一の変換ブロックと、この変換ブロックのサンプルを変換するために使用される構文構造とを含み得る。
【００５９】
ビデオエンコーダ２０は、１つまたは複数の変換をＴＵの輝度変換ブロックに適用して、ＴＵの輝度係数ブロックを生成することができる。係数ブロックは、変換係数の２次元行列であり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのＣｂ変換ブロックに適用して、ＴＵのＣｂ係数ブロックを生成することができる。ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのＣｒ変換ブロックに適用して、ＴＵのＣｒ係数ブロックを生成することができる。
【００６０】
ビデオエンコーダ２０は、係数ブロック（例えば、輝度係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後、係数ブロックを定量化することができる。定量化とは、一般的に、変換係数を定量化してこの変換係数を示すデータの量をなるべく低減し、更なる圧縮を提供することを意味する。ビデオエンコーダ２０は、係数ブロックを定量化した後、定量化された変換係数を示す構文要素をエントロピー符号化することが可能できる。例えば、ビデオエンコーダ２０は、定量化された変換係数を示す構文要素にコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）を実行してもよい。最終的に、ビデオエンコーダ２０は、符号化されたフレームおよび関連データの表現を形成するビットシーケンスを含むビットストリームを出力し、ビットストリームはストレージ装置３２に保存されか、または目標装置１４に送信される。
【００６１】
ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信した後、このビットストリームを解析して、ビットストリームから構文要素を取得する。ビデオデコーダ３０は、ビットストリームから取得された構文要素の少なくとも一部に基づいて、ビデオデータのフレームを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ２０によって実行された符号化プロセスと逆である。例えば、ビデオデコーダ３０は、現在のＣＵのＴＵに関連する係数ブロックに対して逆変換を実行して、現在のＣＵのＴＵに関連する残差ブロックを再構成することが可能である。また、ビデオデコーダ３０は、現在のＣＵのＰＵに対する予測ブロックのサンプルと現在のＣＵのＴＵの変換ブロックの対応するサンプルとを加算することによって、現在のＣＵの符号化ブロックを再構成する。フレームの各ＣＵの符号化ブロックが再構成された後、ビデオデコーダ３０はこのフレームを再構成することが可能である。
【００６２】
上述したように、ビデオ符号化では、主に２つのモード、即ちイントラフレーム予測（またはイントラ予測）及びインターフレーム予測（またはインター予測）を使用してビデオ圧縮を実現する。なお、ＩＢＣは、イントラフレーム予測または３第三モードと見なすことができる。この２つのモードを比べると、インターフレーム予測は動きベクトルを使用して参照ビデオブロックから現在のビデオブロックを予測するため、イントラフレーム予測より符号化効率に大きく貢献する。
【００６３】
しかし、ビデオデータ・キャプチャ技術の向上及びビデオデータの詳細を保持するためのより精細化的なビデオブロックサイズにつれて、現在のフレームの動きベクトルを表すために必要なデータの量も大幅に増加している。この課題を解決するための１つの手段は、空間ドメインと時間ドメインにおける１組の隣り合うＣＵが、予測目的のための同じビデオデータを含むだけでなく、これらの隣り合うＣＵ間で動きベクトルも同様であるという事実から利益を得ることになる。したがって、空間的に隣り合うＣＵおよび／または時間的に並ぶＣＵの動き情報と現在のＣＵの動き情報（例えば、動きベクトル）との空間的および時間的相関性を探索することにより、空間的に隣り合うＣＵおよび／または時間的に並ぶＣＵの動き情報を、現在のＣＵの「動きベクトル予測子」（ＭＶＰ）もという動き情報の近似として使用することが可能である。
【００６４】
図２に示された上述の動き推定部４２によって決定された現在のＣＵの実際の動きベクトルをビデオビットストリームに符号化する代わりに、現在のＣＵの実際の動きベクトルから現在のＣＵの動きベクトル予測子を差し引くにより、現在のＣＵの動きベクトル差（ＭＶＤ）を生成する。このようにすることで、動き推定部４２がフレームの各ＣＵに対して決定した動きベクトルをビデオビットストリームに符号化する必要がなく、ビデオビットストリームにおける動き情報を表すためのデータの量を大幅に減らすことができる。
【００６５】
符号化ブロックのインターフレーム予測中に参照フレーム内から予測ブロックを選択するプロセスと同様に、ビデオエンコーダ２０及びビデオデコーダ３０は、１組のルールに従って、現在のＣＵの空間的に隣り合うＣＵおよび／または時間的に並ぶＣＵに関連する潜在的な候補動きベクトルを使用して、動きベクトル候補リスト（「マージリスト」とも呼ばれる）を構成し、そしてこの動きベクトル候補リストから１つを選択して現在のＣＵの動きベクトル予測子とする必要がある。このように、ビデオエンコーダ２０とビデオデコーダ３０との間で動きベクトル候補リスト自身を送信する必要がなく、動きベクトル候補リスト内の選択された動きベクトル予測子の索引は、ビデオエンコーダ２０およびビデオデコーダ３０が動きベクトル候補リスト内で同じ動きベクトル予測子を使用して現在のＣＵを符号化および復号化することに十分である。
【００６６】
ある実施形態では、各インター予測ＣＵは、動きベクトル候補リストを構成するためのインター（「高度な動きベクトル予測」（ＡＭＶＰとも呼ばれる））、スキップ、およびマージを含む３つの動きベクトル予測モードを有する。各モードでは、以下に説明するアルゴリズムに従って、１つまたは複数の動きベクトル候補を動きベクトル候補リストに追加することができる。最終的に、候補リスト内のそれらの動きベクトル候補のうちの１つは、ビデオエンコーダ２０によってビデオビットストリームに符号化されるか、またはビデオデコーダ３０によってビデオビットストリームから復号化されるインター予測ＣＵの最適な動きベクトル予測子として使用される。候補リストから最適な動きベクトル予測子を見つけるために、動きベクトル競合（ＭＶＣ）スキームが導入されて、空間的および時間的動きベクトル候補を含む所定の動きベクトルの候補セット、すなわち動きベクトル候補リストから１つの動きベクトルが選択されるようにする。
【００６７】
動きベクトル予測子候補は、空間的に隣り合い、または時間的に並ぶＣＵから導出されることに加えて、いわゆる「履歴ベースの動きベクトル予測」（ＨＭＶＰ）テーブルからも導出されることが可能である。ＨＭＶＰテーブルには、それぞれが同じ行のＣＴＵ（または同じＣＴＵであることがある）の特定のＣＵを符号化/復号化するために使用された予め定められた数の動きベクトル予測子が収納されている。これらのＣＵの空間的/時間的の近接性によって、ＨＭＶＰテーブルにおける動きベクトル予測子の１つが、同じ行のＣＴＵ内の異なるＣＵを符号化/復号化するように再利用される可能は非常に高い。したがって、動きベクトル候補リストを構成する過程にＨＭＶＰテーブルを使用することにより、より高い符号化効率を達成することが可能である。
【００６８】
ある実施形態では、ＨＭＶＰテーブルは固定の長さ（例えば５）を有し、先入れ先出し（ＦＩＦＯ）の方式で管理される。例えば、ＣＵの１つのインター符号化ブロックを復号化する際に、ＣＵの動きベクトルを再構成する。再構成された動きベクトルが後続のＣＵの動きベクトル予測子になる可能性があるので、ＨＭＶＰテーブルは、この動きベクトルでオンザフライに更新される。ＨＭＶＰテーブルの更新では、以下の２つのシナリオがある。（ｉ）再構成された動きベクトルがＨＭＶＰテーブル内の他の既存の動きベクトルと異なる、または（ｉｉ）再構成された動きベクトルがＨＭＶＰテーブル内の既存の動きベクトルの１つと同じである。第１のシナリオでは、ＨＭＶＰテーブルが未満の場合、再構成された動きベクトルが最新のものとしてＨＭＶＰテーブルに追加される。ＨＭＶＰテーブルがすでにいっぱいになっている場合は、再構成された動きベクトルが最新のものとして追加される前に、ＨＭＶＰテーブル内の最も古い動きベクトルがＨＭＶＰテーブルから削除される必要がある。言い換えると、この場合には、ＨＭＶＰテーブルでは、ＦＩＦＯバッファと同様のように、ＦＩＦＯバッファの先頭にあり且つ以前にインター符号化された別のブロックに関連する動き情報が、このバッファから取り除かれて、再構成された動きベクトルが、ＨＭＶＰテーブルにおける最新のものとしてＦＩＦＯバッファの末尾に追加される。２番目のシナリオでは、再構成された動きベクトルが最新のものとしてＦＩＦＯバッファに追加される前に、ＨＭＶＰテーブル内の、再構成された動きベクトルと実質的に同じである既存の動きベクトルがＦＩＦＯバッファから削除される。ＨＭＶＰテーブルもＦＩＦＯバッファの形態で維持されている場合、ＨＭＶＰテーブル内の同じ動きベクトルの後の動きベクトル予測子が１つの要素だけ前方に移動されて、削除された動きベクトルによって残された空間を占有し、そして、再構成された動きベクトルが、ＨＭＶＰテーブル内の最新のものとしてＦＩＦＯバッファの末尾に追加される。
【００６９】
ＨＭＶＰテーブルにおける動きベクトルは、ＡＭＶＰ、マージ、スキップなどの異なる予測モードで動きベクトル候補リストに追加されることできる。ＨＭＶＰテーブルに保存されている以前にインター符号化されたブロックの動き情報は、現在のブロックに隣り合っていなくても、より効率的な動きベクトル予測に利用されることが可能であることが分かった。
【００７０】
現在のＣＵに対する所定の動きベクトルの候補セット内で１つのＭＶＰ候補が選択された後、ビデオエンコーダ２０は、対応するＭＶＰ候補に対する１つまたは複数の構文要素を生成し、ビデオビットストリームに符号化し、ビデオデコーダ３０がこの構文要素を使用してこのデオビットストリームからこのＭＶＰ候補を取り出すことができるようにする。動きベクトル候補セットを構成するための特定のモードによっては、異なるモード（例えば、ＡＭＶＰ、マージ、スキップなど）は異なる構文要素のセットを有する。ＡＭＶＰモードの場合、構文要素にはインター予測インジケーター（Ｌｉｓｔ０、Ｌｉｓｔ１、または双方向予測）、参照索引、動きベクトル候補索引、動きベクトル予測残差信号などを含む。スキップモード及びマージモードの場合、現在のＣＵは、符号化されたマージ索引によって参照される隣り合うＣＵから、インター予測インジケータ、参照索引、動きベクトルなどの他の構文要素を継承するので、マージ索引のみがビットストリーム中に符号化される。スキップ符号化されたＣＵの場合、動きベクトル予測残差信号も省略される。
【００７１】
図５Ａは、本開示のある実施形態に係る、符号化／復号化される現在のＣＵの空間的に隣り合いかつ時間的に並ぶブロック位置を示すブロック図である。所定のモードでは、まず空間的に左側隣接ブロック位置および上方隣接ブロック位置に関連する動きベクトルの利用可能性、時間的に並ぶブロック位置に関連する動きベクトルの利用可能性を検査し、次にＨＭＶＰテーブル内の動きベクトルの利用可能性を検査することによって、動きベクトル予測（ＭＶＰ）候補リストを構成する。ＭＶＰ候補リストを構成するプロセスには、いくつかの冗長なＭＶＰ候補が候補リストから削除され、必要に応じて候補リストが固定の長さを有するようにゼロ値の動きベクトルが追加される（なお、モードによって異なる固定長を有することがある）。ＭＶＰ候補リストの構成後、ビデオエンコーダ２０は、この候補リストから最適な動きベクトル予測子を選択し、選択された候補を指示する対応する索引をビデオビットストリーム中に符号化することができる。
【００７２】
例として図５Ａを使用し、かつ候補リストが２の固定長さを有すると仮定すると、現在のＣＵに関する動きベクトル予測子（ＭＶＰ）候補リストは、ＡＭＶＰモードで以下のステップを順に実行することによって構成されることができる。
１）空間的に隣り合うＣＵからのＭＶＰ候補の選択
ａ）Ａ０で始まりＡ１で終わる左側の空間的隣り合う２つのＣＵのうちの１つから、１つの非スケールＭＶＰ候補を導出する；
ｂ）前のステップで左に利用可能非スケールＭＶＰ候補がない場合には、Ａ０で始まりＡ１で終わる左側の空間的隣り合う２つのＣＵのうちの１つから、１つのスケールＭＶＰ候補を導出する；
ｃ）Ｂ０で始まりB1を通じてＢ２で終わる上側の空間的隣り合う３つのＣＵのうちの１つから、１つの非スケールＭＶＰ候補を導出する；
ｄ）Ａ０とＡ１の両方とも利用できない場合、またはそれらがイントラモードで符号化されている場合には、Ｂ０で始まりＢ１を通じてＢ２で終わる上側の３つの空間的隣り合うＣＵのうちの１つから、１つのスケールＭＶＰ候補を導出する；
２）前のステップで２つのＭＶＰ候補が見つかり、且つそれらが同一である場合は、このＭＶＰ候補リストからこれらの２つの候補のうち１つを削除する；
３）時間的に並ぶＣＵからのＭＶＰ候補の選択
ａ）前のステップの後、ＭＶＰ候補リストに２つのＭＶＰ候補が含まれていない場合には、時間的に並ぶＣＵ（例えばＴ０）から１つのＭＶＰ候補を導出する；
４）ＨＭＶＰテーブルからのＭＶＰ候補の選択
ａ）前のステップの後、ＭＶＰ候補リストに２つのＭＶＰ候補が含まれていない場合には、ＨＭＶＰテーブルから２つの履歴ベースのＭＶＰを導出する；
５）前のステップの後、ＭＶＰ候補リストに２つのＭＶＰ候補が含まれていない場合はに、２つのゼロ値ＭＶＰをＭＶＰ候補リストに追加する。
【００７３】
以上の構成されたＡＭＶＰモードＭＶＰ候補リストには２つの候補しかないので、候補リスト内の２つのＭＶＰ候補のどちらが現在のＣＵの復号化に使用されるかを示すように、バイナリフラグのような関連構文要素をビットストリーム中に符号化する。
【００７４】
ある実施形態では、スキップモードまたはマージモードでは、上述した一連のステップと同様のものを順に実行することによって、現在のＣＵに関するＭＶＰ候補リストを構成し得る。なお、「ペアでのマージ候補」と呼ばれる１つの特別な種類のマージ候補も、スキップモードまたはマージモードのためのＭＶＰ候補リストに含まれる。ペアでのマージ候補は、以前に導出された２つのマージモード動きベクトル候補のＭＶを平均化することによって生成されることができる。マージＭＶＰ候補リストのサイズ（たとえば、１から６）は、現在のＣＵのスライスヘッダーで通知される。マージモードでの各ＣＵについて、最適なマージ候補の索引は、ｔｒｕｎｃａｔｅｄ  ｕｎａｒｙ二値化（ＴＵ）を使用されて復号化される。マージ索引の最初のビンはコンテキストで符号化され、バイパス符号化が他のビンに使用される。
【００７５】
上述たように、履歴ベースのＭＶＰは、空間ＭＶＰ及び時間ＭＶＰの後ＡＭＶＰモードＭＶＰ候補リスト又はマージＭＶＰ候補リストに追加されることができる。以前にインター符号化されたＣＵの動き情報は、ＨＭＶＰテーブルに保存され、現在のＣＵのＭＶＰ候補として使用される。ＨＭＶＰテーブルは、符号化/復号化プロセス中に維持されている。非サブブロックインター符号化したＣＵがあるときはいつでも、関連動きベクトル情報が新しい候補としてＨＭＶＰテーブルの最後のエントリに追加され、一方、（ＨＭＶＰテーブルがすでにいっぱいで、テーブル内に関連動きベクトル情報の同じ複本がない場合）ＨＭＶＰテーブルの最初のエントリに格納されている動きベクトル情報がそこから削除される）。これの代わりに、関連動きベクトル情報がＨＭＶＰテーブルの最後のエントリに追加される前に、関連動きベクトル情報の同じ複本をこのテーブルから削除してもよい。
【００７６】
上述したように、イントラブロックコピー（ＩＢＣ）は、スクリーンコンテンツ素材の符号化効率を著しく改善することができる。ＩＢＣモードはブロックレベルの符号化モードとして実現されるので、ビデオエンコーダ２０でブロックマッチング（ＢＭ）を実行して、各ＣＵに対する最適なブロックベクトルを見つける。ここでは、ブロックベクトルは、現在の画像内で現在のブロックからすでに再構成された参照ブロックへの変位を示すためのものである。ＩＢＣモードは、イントラ予測モードまたはインター予測モードではなく、第三の予測モードとして扱われる。
【００７７】
ＣＵレベルでは、ＩＢＣモードは、以下のように、ＩＢＣＡＭＶＰモードまたはＩＢＣスキップ／マージモードとして通知されることができる。
-ＩＢＣ ＡＭＶＰモード：ＣＵの実際のブロックベクトルとＣＵのブロックベクトル候補から選択されたＣＵのブロックベクトル予測子との間のブロックベクトル差（ＢＶＤ）は、上述したＡＭＶＰモードで動きベクトル差に対する符号化と同じ方法で符合化される。ブロックベクトル予測方法では、２つのブロックベクトル候補が予測子として使用され、（ＩＢＣ符合化される場合）この２つのブロックベクトル候補のうち１つが左側の隣から、もう１つが上方の隣からである。いずれの隣も利用できない場合、デフォルトのブロックベクトルがブロックベクトル予測子として使用される。バイナリフラグは、ブロックベクトル予測索引を示すように通知される。ＩＢＣ  ＡＭＶＰ候補リストには、空間的候補およびＨＭＶＰ候補を含む。
-ＩＢＣスキップ/マージモード：マージ候補索引は、隣り合うＩＢＣ符号化ブロックからのマージ候補リスト（「マージリスト」とも呼ばれる）の中のどのブロックベクトル候補が現在のブロックのブロックベクトルの予測に使用されるかを示す。ＩＢＣマージ候補リストには、空間的候補、ＨＭＶＰ候補、およびペアでの候補を含む。
【００７８】
符号化規格によって採用される符号化効率を改善するための別のアプローチでは、ビデオ符号化／復号化プロセスに、例えばマルチコアプロセッサを使用して並列処理を導入する。例えば、波面並列処理（ＷＰＰ）は、複数のスレッドによって複数行のＣＴＵを並列に符号化または復号化する特徴として、すでにＨＥＶＣに導入された。
【００７９】
図５Ｂは、本開示のある実施形態に係る、波面並列処理（ＷＰＰ）を使用して画像の複数行のＣＴＵに対してマルチスレッド符号化を行うことを示すブロック図である。ＷＰＰを有効にすると、２つの隣り合い波面の先頭の間に２つのＣＴＵ分の遅延が発生する可能性がある波面の方式で複数行のＣＴＵを並列に処理できる。例えば、ＷＰＰを使用して画像５００を符号化するために、ビデオエンコーダ２０およびビデオデコーダ３０などのビデオコーダは、画像５００の符号化ツリーユニット（ＣＴＵ）を複数の波面に分割し、各波面はそれぞれ画像の各行ＣＴＵに対応する。このビデオコーダーは、例えば、第１のコーダーコアまたはスレッドを使用して、トップ波面の符号化を開始することができる。ビデオコーダーは、最初波面の２つ以上のＣＴＵを符号化した後、例えば第２の並列コーダーコアまたはスレッドを使用して、トップ波面の符号化と並行してトップ波面からの第２つの波面の符号化を開始することができる。ビデオコーダーは、トップ波面からの第２の波面の２つ以上のＣＴＵを符号化した後、例えば、第３の並列コーダーコアまたはスレッドを使用して、上方の波面の符号化と並行してトップ波面からの第３の波面の符号化を開始することができる。このパターンは、画像５００において波面に沿って続くことが可能である。本開示では、ビデオコーダがＷＰＰを使用して同時に符号化されているＣＴＵのセットは、「ＣＴＵ組」と呼ばれる。このように、ビデオコーダーがＷＰＰを使用して画像を符号化する場合、ＣＴＵ組の各ＣＴＵは、この画像の唯一な波面に属し、これらのＣＴＵは上方の各波面におけるＣＴＵからこの画像の少なくとも２列のＣＴＵだけオフセットする。
【００８０】
ビデオコーダーは、現在の波面の最初の２つのブロックのデータ及び現在の波面の最初の符号化ブロックを含むスライスのスライスヘッダーの１つまたは複数の要素に基づいて現在の波面のコンテキストを初期化して、現在の波面のコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）を実行することができる。ビデオコーダーは、後続波面（またはＣＴＵ行）の上方にある１つのＣＴＵ行における２つのＣＴＵを符号化した後、コンテキスト状態を使用してこの後続波面のＣＡＢＡＣ初期化を実行することが可能である。言い換えれば、ビデオコーダー（より具体的には、ビデオコーダーの１つのスレッド）は、現在の波面の符号化を開始する前に、現在の波面が画像の最初行のＣＴＵではないと仮定する場合、現在の波面の上方の波面の少なくとも２つのブロックをコーディングしたことが可能である。そして、ビデオコーダーは、現在の波面より上方の波面の少なくとも２つのブロックを符号化した後、現在の波面のＣＡＢＡＣコンテキストを初期化することが可能である。この例では、画像５００の複数のＣＴＵ行を並列に符号化できるように、画像５００の各ＣＴＵ行は個別の一部であり、関連付けられたスレッド（ＷＰＰスレッド１、ＷＰＰスレッド２、…）を有する。
【００８１】
ＨＭＶＰテーブルの現在の実施形態は、グローバル動きベクトル（ＭＶ）バッファを使用して以前に再構成された動きベクトルを格納するため、このＨＭＶＰテーブルは、図５に示された上述したＷＰＰイネーブル並列符号化スキームで実施できない。特に、グローバルＭＶバッファがビデオコーダーの符号化/復号化プロセスのすべてのスレッドに共有されている事実により、最初のＷＰＰスレッド（即ち、ＷＰＰスレッド１）の後のＷＰＰスレッドの開始が妨げられる。これは、これらＷＰＰスレッドは必ずＨＭＶＰテーブルが最初のＷＰＰスレッド（即ち、最初のＣＴＵ行）の最後のＣＴＵ（即ち、最右端のＣＴＵ）による更新完了を待たなければならないからである。
【００８２】
この課題を解決するために、複数のＣＴＵ行専用バッファでＷＰＰスレッドによって共有されるグローバルＭＶバッファを置き換えることで、ビデオコーダーでＷＰＰが有効にされている場合、ＣＴＵ行の各波面が、１つの対応するＷＰＰスレッドによって処理されているＣＴＵ行に対応するＨＭＶＰテーブルを格納するための自分のバッファを有するようにすることが提案された。なお、各ＣＴＵ行が自分のＨＭＶＰテーブルを有するとのことは、ＣＴＵ行の最初のＣＵを符号化する前にＨＭＶＰテーブルをリセットすることと同等である。ＨＭＶＰテーブルのリセットは、ＨＭＶＰテーブルにおける別のＣＴＵ行の符号化から生じたすべての動きベクトルを除去することである。一つの実施形態では、リセット操作は、ＨＭＶＰテーブルにおける利用可能な動きベクトル予測子のサイズをゼロに設定することである。さらに別の実施形態では、リセット操作は、ＨＭＶＰテーブルにおけるすべてのエントリの参照索引を−１などのような無効な値に設定することであってもよい。このように、ＡＭＶＰ、マージ及びスキップの３つのモードのいずれかに関わらず、特定の波面内の現在のＣＴＵに対するＭＶＰ候補リストの構造は、この特定の波面を処理しているＷＰＰスレッドに関連するＨＭＶＰテーブルに依存する。異なる波面の間では、上述した２つのＣＴＵの遅延以外、相互の依存性がなく、異なる波面に関連する動きベクトル候補リストの構造は、図５Ｂに示すＷＰＰプロセスのように並行して進めることができる。言い換えると、ＨＭＶＰテーブルは、特定の波面の処理の開始時に、別のＷＰＰスレッドによる別のＣＴＵ波面の符号化に影響を与えることなく、空にリセットされる。ある場合には、個別の各ＣＴＵを符号化する前に、ＨＭＶＰテーブルが空にリセットされることでもよい。この場合、ＨＭＶＰテーブル内の動きベクトルは特定のＣＴＵに限定されており、ＨＭＶＰテーブル内の動きベクトルが特定のＣＴＵ内の現在のＣＵの動きベクトルとして選択される可能性がさらに高くなる。
【００８３】
図６Ａおよび６Ｂは、本開示のある実施形態に係る、再構成された輝度ブロック６０２および関連彩度ブロック６２０をそれぞれ例示するブロック図である。この例では、再構成された輝度ブロック６０２の輝度サンプル（例えば、輝度サンプル６０４）、上部隣接輝度組６０６の輝度サンプル（例えば、輝度サンプル６０８）、および左側隣接輝度組６１０の輝度サンプル（例えば、輝度サンプル６１３）は、ビデオ符号化プロセス中に予測されている。上部隣接彩度組６２４の彩度サンプル（例えば、彩度サンプル６２６）および左側隣接彩度組６２８の彩度サンプル（例えば、彩度サンプル６３０）は、ビデオ符号化プロセス中にすでに予測されたが、彩度ブロック６２０の彩度サンプルは予測対象となっている。ある実施形態では、彩度ブロック６２０の彩度サンプルは、再構成された輝度ブロック６０２の対応するダウンサンプルされた輝度サンプルに対してクロスコンポーネント線形モデル（ＣＣＬＭ）を適用することによって、予測されることができる。以下、ＣＣＬＭの導出および適用は、図７Ａ−図７Ｅを参照して提供される。
【００８４】
ある実施形態では、再構成された輝度ブロック６０２および彩度ブロック６２０はそれぞれ、再構成されたビデオフレームの一部の異なる成分を表す。例えば、ＹＣｂＣｒ色空間では、画像は輝度成分（Ｙ）、青の色差成分（Cｂ）および赤の色差成分（Ｃｒ）によって表される。再構成された輝度ブロック６０２は、ビデオフレームの一部の輝度成分（すなわち、明るさ）を表し、彩度ブロック６２０は、このビデオフレームの同じ部分の彩度成分（すなわち、色）を表す。再構成された輝度ブロック６０２の輝度サンプル（例えば、輝度サンプル６０４）は、ビデオフレームの特定のピクセルでの明るさを表す輝度値を有し、彩度サンプル（例えば、彩度サンプル６２２）は、このビデオフレームの特定のピクセルでの色を表す彩度値を有する。
【００８５】
ある実施形態では、再構成された輝度ブロック６０２は、２Ｍ×２Ｎブロックであり、ブロック幅に亘って２Ｍつの輝度サンプルを有し、ブロック高さに亘って２Ｎつの輝度サンプルを有する。ＭおよびＮは、同じ値（例えば、再構成された輝度ブロック６０２が１つの正方形のものである）または異なる値（例えば、再構成された輝度ブロック６０２が１つの非正方形のものである）であり得る。
【００８６】
人間の視覚系は明るさの違いよりも色の違いに敏感ではないため、彩度サブサンプリングは通用の圧縮技術である。結果として、再構成された輝度ブロック６０２および彩度ブロック６２０は、ビデオフレームの同じ部分を表すことが可能であるが、異なる解像度で符号化されている。例えば、ビデオフレームは、彩度サブサンプリングスキーム（例えば、４：２：０または４：２：２）によって、輝度情報よりも低い解像度で彩度情報に関して符号化されたことが可能である。図６Ａおよび６Ｂに示すように、再構成された輝度ブロック６０２は、２Ｍ×２Ｎの解像度で符号化され、彩度ブロック６２０は、より小さなＭ×Ｎの解像度で符号化された。実際には、彩度ブロック６２０は、２Ｍ×２Ｎ（例えば、４：４：４フルサンプリング）、２Ｍ×Ｎ（例えば、４：４：０サブサンプリング）、Ｍ×２Ｎ（例えば、４：２：２サブサンプリング）、および1/2Ｍ×２Ｎ（例えば、４：１：１サブサンプリング）などの他の解像度を有することが可能である。
【００８７】
再構成された輝度ブロック６０２は、上方隣接輝度組６０６および左側隣接輝度組６１０に隣り合う。上方隣接輝度組および左側隣接輝度組のサイズは、明示的に通知されてもよく、または再構成された輝度ブロック６０２のサイズに依存してもよい。例えば、上方隣接輝度組６０６は、２Ｍ個のサンプル（例えば、再構成された輝度ブロック６０２の幅と同じ）または４Ｍ個のサンプル（例えば、再構成された輝度ブロック６０２の幅の２倍）の幅と、２個のサンプルの高さとを有することが可能である。左側隣接輝度組６１０は、２個のサンプルの幅と、２Ｎ個または４Ｎ個のサンプルの高さとを有することが可能である。ある実施形態では、上方隣接輝度組６０６および左側隣接輝度組６１０は、それぞれ、同じビデオフレームの１つまたは複数の別のすでに再構成された輝度ブロックの一部である。
【００８８】
彩度ブロック６２０は、上方隣接彩度組６２４および左側隣接組６２８に隣り合う。上方隣接彩度組６２４および左側隣接組６２８のサイズは、明示的に通知されてもよく、または彩度ブロック６２０のサイズに依存してもよい。例えば、上方隣接彩度組６２４は１×Ｍのサイズを有し、左側隣接彩度組６２８はＮ×１のサイズを有することが可能である。
【００８９】
ある実施形態では、彩度値（例えば、彩度ブロック６２０の彩度値）は、再構成された彩度サンプル（例えば、彩度サンプル６０４）の彩度値に基づいて予測されることができる。例えば、ビデオフレームの輝度値と対応する彩度値との間に線形または準線形の関係があると仮定すると、ビデオコーデックはＣＣＬＭにより対応する再構成された輝度値に基づいて彩度値を予測することができる。このように、ビデオコーデックは、彩度値の符号化、符号化された彩度値の送信、および符号化された彩度値の復号化のための時間および帯域幅の量を大幅に節約することができる。ビデオコーデックは、ＣＣＬＭを使用して輝度サンプルから彩度サンプルを予測するために、（１）彩度サンプルと輝度サンプルとの間で線形モデルを導出し、（２）この線形モデルを予測対象の彩度サンプルに対応する再構成された輝度サンプルに適用する。
【００９０】
ある実施形態では、輝度ブロックおよび彩度ブロックが異なる解像度（例えば、彩度ブロックがサブサンプリングされたものである）であるため、ビデオコーデックは、まず輝度サンプルに対してダウンサンプリングを実行して、各彩度サンプルに唯一に対応するダウンサンプリング輝度サンプルを生成する（例えば、ダウンサンプリング輝度サンプル６０５、６０９および６１２）。ある実施形態では、ビデオフレームの高さ方向および幅方向の両方に亘って６つの再構成された隣接輝度サンプルが、ダウンサンプリング輝度サンプルを生成するために使用される（例えば、６タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキーム）。例えば、上方隣接輝度組における領域６１１内の６つの再構成された輝度サンプル（それぞれが図面における小さなボックスで表される）は、それらの対応する輝度値の平均化によってダウンサンプリング輝度サンプル６０９を生成するために使用され、再構成された輝度ブロック６０２における領域６０７内の６つの再構成された輝度サンプル（それぞれが図面における小さなボックスで表される）は、ダウンサンプリング輝度サンプル６０５を生成するために使用される。あるいは、ダウンサンプリング輝度サンプルは、注目の領域で再構成された輝度サンプルを識別することによって、または異なる形状の領域内の異なる数の再構成された彩度サンプルを使用することによって生成される。
【００９１】
ある実施形態では、ビデオコーデックは、この線形モデルを導出するために、ダウンサンプリング輝度サンプルの最大値および最小値（例えば、それぞれ最大及び最小の輝度値を有するダウンサンプリング輝度サンプル）及び対応する再構成された彩度サンプルを識別し、最大および最小のデータ点（例えば、最大のデータ点は、最大の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成された彩度サンプルを含み、最小のデータ点は、最小の輝度値を有するダウンサンプリング輝度サンプルおよび対応する再構成された彩度サンプルを含む）を通る線形モデル(例えば、Ｙ＝ αＸ＋β) をフィットすることによるＭａｘ−Ｍｉｎ法を使用する。線形モデルが導出された後、ビデオコーデックは、線形モデルを再構成された輝度ブロック６０２におけるダウンサンプリング輝度サンプルに適用して、彩度ブロック６２０の対応する彩度サンプルを生成する。ビデオコーデックは、以下の方法で最大および最小のデータ点を取得することができる。
【００９２】
１．ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０から選択された一組のダウンサンプリング輝度サンプル）を検索して、最大のダウンサンプリング輝度サンプル及び最小のダウンサンプリング輝度サンプルを識別する。そして、ビデオコーデックは、図７Ａに参照して以下に説明するように、最大および最小のダウンサンプリング輝度サンプルに対応する以前再構成された彩度サンプル（例えば、上方隣接彩度組６２４および左側隣接彩度組６２８における再構成された彩度サンプル）を識別する。
【００９３】
２．ある実施形態では、ビデオコーデックは、選択された再構成の輝度サンプルの組に対してダウンサンプリングを実行して最大および最小の再構成された輝度サンプルを識別することの代わりに、再構成された輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０から選択された再構成の輝度サンプルの一組）を検索して、この選択された再構成の輝度サンプルの組において（ｉ）最大の輝度値を有する再構成された輝度サンプル、および（ｉｉ）最小の輝度値を有する再構成された輝度サンプルを識別する。そして、ビデオコーデックは、この最大および最小の再構成された輝度サンプルに関連する領域（例えば、６タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキームを使用する６つのサンプルを有する領域）でダウンサンプリングを実行して、最大の再構成された輝度サンプルとしてのダウンサンプリング輝度サンプル（正確に最大のダウンサンプリング輝度サンプルである場合もそうでない場合もある）および最小の再構成された輝度サンプルとしてのダウンサンプリング輝度サンプル（正確に最小のダウンサンプリング輝度サンプルである場合もそうでない場合もある）を生成する。そして、ビデオコーデックは、図７Ｂに参照して以下に説明されるように、（例えば、上方隣接彩度組６２４および左側隣接彩度組６２８において）最大の再構成された輝度サンプルとして識別されたダウンサンプリング輝度サンプルに対応する再構成された彩度サンプル、および最小の再構成された輝度サンプルとして識別されたダウンサンプリング輝度サンプルに対応する再構成された彩度サンプルを識別する。
【００９４】
３．ある実施形態では、ビデオコーデックは、１組の再構成された彩度サンプル（例えば、上方隣接彩度組６２４および左側隣接彩度組６２８から選択された彩度サンプル）を検索して、最大および最小の再構成された彩度サンプル（例えば、それぞれ最大及び最小の彩度値を有する彩度サンプル）を識別する。そして、ビデオコーデックは、図７Ｃを参照して以下に説明するように、最大および最小の再構成された彩度サンプルに対応するダウンサンプリング輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０におけるダウンサンプリング輝度サンプル）を識別する。
【００９５】
４．ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル（例えば、上方隣接輝度組６０６および左側隣接輝度組６１０から選択されたダウンサンプリング輝度サンプルの組）を検索して、最大の輝度値を有する予め定められた数（例えば、２つ）のダウンサンプリング輝度サンプル、および最小の輝度値を有する予め定められた数（例えば、２つ）のダウンサンプリング輝度サンプルを識別する。そして、ビデオコーデックは、上方隣接彩度組６２４および左側隣接彩度組６２８の中の再構成された彩度サンプルを識別する。なお、上方隣接彩度組６２４および左側隣接彩度組６２８の中のそれぞれは、最大のダウンサンプリング輝度サンプルの組および最小のダウンサンプリング輝度サンプルの組の中の一つに対応する。そして、ビデオコーデックは、図７Ｄおよび図７Ｅを参照して以下に説明するように、識別された再構成の彩度サンプルの組およびダウンサンプリング輝度サンプルの組のそれぞれの中の値（例えば、彩度または輝度の値）に対して加重平均化を実行して最大平均化彩度値、最小平均化彩度値、最大平均化ダウンサンプリング輝度値（例えば、最大のダウンサンプリング輝度サンプルの組から生成）、および最小の平均化ダウンサンプリング輝度値（例えば、最小のダウンサンプリング輝度サンプルの組から生成）を生成する。
【００９６】
図７Ａ〜７Ｅは、本開示のある実施形態に係る、ＣＣＭＬを使用して輝度値と彩度値との間で線形モデルを導出する各種のアプローチを示している。特に、プロット上の各円データ点（例えば、点７０２ａ）は、横軸上の再構成された彩度サンプルと、縦軸上の対応する再構成された輝度サンプルとのペアを表す。例えば、再構成された輝度サンプルを部分的に使用して（例えば、当技術分野で知られている６タップダウンサンプリングなどを含む加重平均化スキームを使用して）生成されたダウンサンプリング輝度サンプルが再構成の彩度サンプルに対応されば、再構成の彩度サンプルは再構成の輝度サンプルに対応する。プロット上の各正方形のデータ点（たとえば、点７０２ｂ）は、横軸上の再構成の彩度サンプルと、縦軸上の対応するダウンサンプリング輝度サンプルとのペアを表す。ある実施形態では、ダウンサンプリング輝度サンプルが複数の再構成の輝度サンプルを使用して（例えば、当技術分野で知られている６タップダウンサンプリングなどを含む加重平均化スキームを使用して）生成されるので、正方形のデータ点が複数の円のデータ点に関連している。点線の長方形（例えば、点線の長方形７０３）は、囲まれた正方形のデータ点と円データ点が関連している（例えば、正方形のデータ点に対応するダウンサンプリング輝度サンプルは、円のデータ点に対応している再構成の輝度サンプルから生成された）ことを示す。説明の便利上、点線の長方形の内に１つの正方形のデータ点及び１つの円のデータ点のみを示しているが、実際には、各点線の長方形に複数の円のデータ点及び１つの正方形のデータ点を含み得ることができる。
【００９７】
ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル（例えば、図６Ａのダウンサンプリング輝度サンプル６０９および６１２）を検索して、最大および最小の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成の彩度サンプルを識別して、線形モデルを導出する。例えば、図７Ａでは、正方形のデータ点７０２ｂは、選択されたダウンサンプリング輝度サンプルの組における最小の輝度値を有するダウンサンプリング輝度サンプルおよび対応する再構成の彩度サンプルを表し、正方形のデータ点７０４ｂは、最大の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成の彩度サンプルを表している。結果として、点７０２ｂ及び点７０４ｂを通った線フィッティングは、ダウンサンプリング輝度サンプル（例えば、図６Ａにおける輝度ブロック６０２のダウンサンプリング輝度サンプル６０５）から彩度サンプル（例えば、図６Ｂにおける彩度ブロック６２０の彩度サンプル６２２）を予測するための線形モデルを表す。
【００９８】
Ｍａｘ−Ｍｉｎ法ではダウンサンプリング輝度サンプルのほとんどがよく使われないため、ダウンサンプリング輝度サンプルの生成の算出量は非常に大きい。ある実施形態では、ビデオコーデックは、すべての輝度サンプルに対してダウンサンプリングを実行する代わりに、再構成された輝度サンプル（例えば、図６Ａの再構成された輝度サンプル６０８および６１３）を直接検索して、最大および最小の輝度値を有する再構成の輝度サンプルを識別する。図７Ｂに示すように、円のデータ点７０２ａは、最小の輝度値を有する再構成された輝度サンプルおよび対応する再構成された彩度サンプルを表し、円のデータ点７０６ａは、最大の輝度値を有する再構成された輝度サンプルおよび対応する再構成の彩度サンプルを表す。ビデオコーデックは、最小および最大の再構成された輝度サンプル（円のデータ点７０２ａおよび７０６ａ）を識別した後、（例えば、６タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキームを使用して）最小および最大の再構成された輝度サンプルを含む領域でダウンサンプリングを実行して、対応する準最小および準最大のダウンサンプリング輝度サンプル（図７Ｂにおける正方形のデータ点７０２ｂおよび７０６ｂによって表され、図７Ａにおいて正方形のデータ点７０２ｂおよび７０４ｂと同じである場合もそうでない場合もある）を生成する。図７Ｂにおける正方形のデータ点７０２ｂおよび７０６ｂを通った線フィッティングは、再構成された輝度サンプルから彩度サンプルを予測する線形モデルを表す。図７Ａで使用された方法と比較すると、２つのダウンサンプリング操作のみが実行された。識別された最小のダウンサンプリング輝度サンプルは、図７Ａで使用されたものと同じ、一方、最大のダウンサンプリング輝度サンプルは、図７Ａで使用されたものとは異なる。
【００９９】
ある実施形態では、ビデオコーデックは、最大及び最小の輝度値を有する再構成された輝度サンプルを使用して線形モデルを生成し、ダウンサンプリングの実行を放棄する。図７Ｃにおいて、線形モデルは、再構成された輝度サンプルに対してダウンサンプリングを実行せず、円のデータ点７０２ａおよび７０６ａを通る線を直接フィッティングすることによって生成される。
【０１００】
ある実施形態では、ビデオコーデックは、最大および最小の輝度値を有するダウンサンプリング輝度サンプル（または再構成された輝度サンプル）を検索する代わりに、まず、最大および最小の彩度値を有する再構成された彩度サンプルを検索する。最大および最小の再構成された彩度サンプルが識別された後、ビデオコーデックは、対応するダウンサンプリング輝度サンプルを算出して、線形モデルを生成する。図７Ｄでは、円のデータ点７０８ａは、最小の彩度値を有する再構成された彩度サンプルを表し、円のデータ点７０４ａは、最大の彩度値を有する再構成された彩度サンプルを表す。そして、ビデオコーデックは、正方形のデータ点７０８ｂ（円のデータ点７０８ａから再構成された輝度サンプルを部分的に使用して生成されたダウンサンプリング輝度サンプルを表す）および正方形のデータ点７０４ｂ（円のデータ点７０４ａから再構成された輝度サンプルを部分的に使用して生成されたダウンサンプリング輝度サンプルを表す）を通ってフィッティングする線形モデルを生成する。
【０１０１】
ある実施形態では、ビデオコーデックは、最大の輝度値を有する複数（例えば、２つ）のダウンサンプリング輝度サンプル、および最小の輝度値を有する複数（例えば、２つ）のダウンサンプリング輝度サンプルを選択する。そして、ビデオコーデックは、対応する最大の再構成された彩度サンプルの組及び最小の再構成された彩度サンプルの組を検索する。ビデオコーデックは、各組内で平均化演算を実行し、平均化された輝度値及び彩度値を使用して線形モデルを生成する。図７Ｅでは、最大の２つのダウンサンプリング輝度サンプル（正方形のデータ点７１０ｂおよび７０４ｂ）および最小の２つのダウンサンプリング輝度サンプル（正方形のデータ点７０８ｂおよび正方形のデータ点７０２ｂ）を使用して線形モデルを生成する。
【０１０２】
図８は、ビデオコーデックが、クロスコンポーネント線形モデルを使用して、輝度ブロックから再構成された輝度サンプルに基づいて彩度ブロックの彩度サンプルを再構成する技術を実現するプロセス７００を例示するフローチャートである。プロセス７００は、復号化プロセスにも符号化プロセスにも実施されることができる。
【０１０３】
第１のステップとして、ビデオコーデックは、彩度ブロックに対応する輝度ブロックを再構成する（８１０）。彩度ブロック（例えば、図６Ｂの彩度ブロック６２０）は、その後、再構成された輝度ブロックから再構成され、この再構成された輝度ブロック（例えば、図６Ａの再構成された輝度ブロック６０２）の解像度とは異なる解像度が有することが可能である。この輝度ブロックと彩度ブロックビとは、デオフレームの同じ部分の異なる成分（例えば、それぞれ明るさ成分及び色成分）を表すため、対応するものである。ある実施形態では、輝度ブロックは、複数の、以前に再構成された隣接輝度サンプル（例えば、図６Ａの上方隣接輝度組６０６および左側隣接輝度組６１０における再構成された輝度サンプル）に隣り合い、彩度ブロックは、複数の、以前に再構成された隣接彩度サンプル（例えば、図６Ａの上方隣接彩度組６２４および左側隣接彩度組６２８における再構成された彩度サンプル）に隣り合う。なお、本願における「「隣り合う」という用語は、隣接に限定されず、符号化ブロックが輝度／彩度サンプルに隣接しない状況もカバーする。ある実施形態では、ビデオコーデックは、クロスコンポーネント線形モデルを導出してこのモデルを再構成された輝度サンプル（または輝度ブロック内のダウンサンプリング再構成された輝度サンプル）に適用することによって、彩度ブロック内の彩度サンプルを予測する。
【０１０４】
次に、ビデオコーデックは、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、少なくとも１つの最大または準最大の輝度サンプルおよび少なくとも１つの最小または準最小の輝度サンプルを識別する（８２０）。ある実施形態では、この複数の再構成された隣接輝度サンプルのサブ組は、複数の再構成された隣接輝度サンプルのすべてをカバーする。例えば、ビデオコーデックは、隣接輝度サンプルのうちのすべての輝度サンプル、または最大予め定められた数の隣接輝度サンプルを検索してもよい。ある実施形態では、ビデオコーデックは、ラスター走査順に従って、左から右へ、上から下へ、またはこれらの順序の任意の組み合わせで、隣接輝度サンプルを検索する。ある実施形態では、隣接輝度サンプルには、空間的に輝度ブロックの上方にあるそれらのサンプル（例えば、上方隣接彩度組６２４）および輝度ブロックの左側にあるそれらのサンプル（例えば、左側隣接彩度組６１０）を含む。ビデオコーデックは、上方隣接彩度サンプルまたは左側隣接彩度サンプルのみを検索してもよい。
【０１０５】
最大および最小の輝度サンプルが識別された後、ビデオコーデックは、識別された最大および最小の輝度サンプルにそれぞれ対応する少なくとも１つのダウンサンプリング最大輝度サンプルおよび少なくとも１つのダウンサンプリング最小輝度サンプルを算出する（８３０および８４０）。例えば、ビデオコーデックは、６タップダウンサンプリング技術を使用して、６つの隣り合う再構成された輝度サンプル（例えば、３×２形態または２×３形態で配置する）からダウンサンプリング輝度サンプル（例えば、加重平均化により）を生成することが可能である。このダウンサンプリング最大輝度サンプルおよびダウンサンプリング最小輝度サンプルは、それぞれ、各再構成された彩度サンプルに対応する（例えば、第１の再構成された隣接彩度サンプルおよび第２の再構成された隣接彩度サンプル）。例えば、この第１の再構成された隣接彩度サンプルおよび第２の再構成された隣接彩度サンプルは、この複数の再構成された隣接彩度サンプルのものであり得る。
【０１０６】
ある実装形態では、上述した操作８２０、８３０、および８４０は、異なる順で再配置される。例えば、ビデオコーデックは、まず、複数の再構成された隣接輝度サンプルから１つまたは複数のダウンサンプリング輝度サンプルを算出し、次に、この１つまたは複数の算出されたダウンサンプリング輝度サンプルのサブ組で検索して、少なくとも１つのダウンサンプリング最大輝度サンプル及び少なくとも１つのダウンサンプリング最小輝度サンプルをそれぞれ識別する。このダウンサンプリング最大輝度サンプルは、第１の再構成された彩度サンプルに対応するように選択され、ダウンサンプリング最小輝度サンプルは、第２の再構成された彩度サンプルに対応するように選択された。
【０１０７】
次に、ビデオコーデックは、ダウンサンプリング最大輝度サンプルと第１の再構成された隣接彩度サンプルとの第１のペア、及びダウンサンプリング最小輝度サンプルと第２の再構成された隣接彩度サンプルとの第２のペアを使用して線形モデルを生成する（８５０）。ある実施形態では、ビデオコーデックは、２つのデータ点（例えば、（第１の再構成された隣接彩度サンプル、ダウンサンプリング最大輝度サンプル）および（第２の再構成された隣接彩度サンプル、ダウンサンプリング最小輝度サンプル））を識別し、この２つのデータ点を通った線形方程式をフィットすることによって、最大-最小法により線形モデルを生成する。
【０１０８】
ビデオコーデックは、線形モデルを取得した後、再構成された輝度ブロックの輝度サンプルからダウンサンプリング輝度サンプルを算出する（８６０）。各ダウンサンプリング輝度サンプルは、彩度ブロックの彩度サンプルに対応する。例えば、ビデオコーデックは、ダウンサンプリング最大輝度サンプルおよびダウンサンプリング最小輝度サンプルの算出に使用されるダウンサンプリング技術と同じものを使用して、ダウンサンプリング輝度サンプルを算出することが可能である。
【０１０９】
最後に、ビデオコーデックは、この線形モデルを対応するダウンサンプリング輝度サンプルに適用することによって、彩度ブロック内の彩度サンプルを予測する（８７０）。
【０１１０】
１つまたは複数の例では、上述した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現される。ソフトウェアで実現される場合、それらの機能は、１つまたは複数の命令またはコードとして、コンピュータ読取可能な媒体に格納されまたはこれを介して送信され、ハードウェアベースの処理ユニットによって実行される。コンピュータ読取可能な媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ読取可能な記憶媒体、または、例えば、通信プロトコルに従って、ある箇所から別の箇所へのコンピュータプログラムの転送を役立つ任意の媒体を含む通信媒体を含み得る。これにより、コンピュータ読取可能な媒体は、一般的に、（１）非一時的な有形のコンピュータ読取可能な記憶媒体、または（２）信号または搬送波などの通信媒体、に対応し得る。データ記憶媒体は、本願で説明された実施形態の実現のための命令、コード、および／またはデータ構造を検索するために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読取可能な媒体を含み得る。
【０１１１】
ここでの実施形態の説明で使用される用語は、特定の実施形態を説明することのみを目的としており、特許請求の範囲を限定することを意図するものではない。実施形態の説明および添付の特許請求の範囲で使用されるように、単数形「一」、「１つの」、および「この」は、文脈が明確に別段の指示をしない限り、複数形も含むことを意図している。ここで使用される「および／または」という用語は、１つまたは複数の関する、リストされた項目の任意な及びすべての可能な組み合わせを指しかつ含むことも理解されべきである。本明細書で使用された「含む」という用語は、記載された特徴、要素、および／または成分の存在を指定するが、１つまたは複数の他の機能、要素、成分、および/またはそれらの組の存在または追加を排除するものではないことがさらに理解されべきである。
【０１１２】
ここでは、第１、第２などの用語を使用して各種の要素を説明したことが、これらの要素はこれらの用語によって限定されべきではないことも理解されべきである。これらの用語は、ある要素を別の要素と区別するためにのみ使用された。例えば、実施形態の範囲から逸脱することなく、第１の電極は、第２の電極と呼ばれ得、同様に、第２の電極は、第１の電極と呼ばれ得る。第１の電極と第２の電極は両方とも電極であるが、それらは同じ電極ではない。
【０１１３】
本願の説明は、例示および説明の便利のためで提示されており、網羅的なまたは開示された形態の発明に限定することを意図するものではない。各種の変更、変形、および置換した実現は、前述の説明および関連する図面に提示された教示を得った当業者にとっては明らかである。実施形態は、本発明の原理、実際の適用を最もよく説明し、当業者が各種の実施のために本発明を理解し、特定の用途に適するために各種の変更で基礎となる原理および各種の実施を最もよく利用できるようにするために選択されおよび説明されたものである。したがって、特許請求の範囲は、開示された実現の特定の例に限定されなく、変更および他の実現も、添付の特許請求の範囲に含まれることを理解されるべきである。
【国際調査報告】
2022500967.tif 000019
2022500967.tif 000020