【文献】
大久保榮監修,「インプレス標準教科書シリーズ 改訂三版H.264/AVC教科書」,日本,株式会社インプレスR&D,2009年 1月 1日,第1版,第289〜291頁,ISBN: 978-4-8443-2664-9
【文献】
大久保榮監修,「インプレス標準教科書シリーズ H.265/HEVC教科書」,日本,株式会社インプレスジャパン,2013年10月21日,初版,第112〜114,248,249頁,ISBN: 978-4-8443-3468-2
(58)【調査した分野】(Int.Cl.,DB名)
前記第2の残差ブロック(21)が、サンプルの数に関して前記第1の残差ブロック(11)と比べて小さいサイズを持ち、前記第2の残差ブロック(21)が前記第1の残差ブロック(11)の前記下位部分(12)に対応し、前記各再構成済み予測誤差値を変更すること(S12)が、前記第2の残差ブロック(21)の前記各再構成済み予測誤差値によって、前記第1の残差ブロック(11)の前記下位部分(12)の前記各再構成済み予測誤差値をサンプルごとに変更すること(S12)を含む、請求項1に記載の方法。
前記各再構成済み予測誤差値を変更すること(S12)が、前記第2の残差ブロック(21)の前記各再構成済み予測誤差値を、前記第1の残差ブロック(11)の前記下位部分(12)の前記各再構成済み予測誤差値にサンプルごとに追加すること(S13)を含む、請求項2に記載の方法。
前記各再構成済み予測誤差値を変更すること(S12)が、前記第2の残差ブロック(21)の前記各再構成済み予測誤差値によって、前記第1の残差ブロック(11)の前記下位部分(12)の前記各再構成済み予測誤差値をサンプルごとに置換すること(S14)を含む、請求項2に記載の方法。
前記各再構成済み予測誤差値を変更すること(S30)が、前記第2の残差ブロック(21)の前記下位部分(22)内の前記各再構成済み予測誤差値をゼロに設定すること(S32)を含む、請求項5に記載の方法。
前記各再構成済み予測誤差値を変更すること(S30)が、前記第2の残差ブロック(21)の前記下位部分(22)内の各再構成済み予測誤差値にそれぞれの重みを掛けること(S33)を含む、請求項5に記載の方法。
前記第1の変換ブロック(10)を逆変換すること(S10)が、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの前記第1の変換ブロック(10)を逆変換して(S10)前記第1の残差ブロック(11)を取得することを含み、
前記第2の変換ブロック(20)を逆変換すること(S11)が、それぞれの高周波数変換係数を持っているサンプルの前記第2の変換ブロック(20)を逆変換して(S11)前記第2の残差ブロック(21)を取得することを含む、請求項5から7のいずれか一項に記載の方法。
それぞれの変換係数を持っているサンプルの変換ブロックを前記第1の変換ブロック(10)および前記第2の変換ブロック(20)に分割すること(S40)をさらに含み、前記分割することが、
前記変換ブロックの前記それぞれのゼロ周波数変換係数および低周波数変換係数を、前記第1の変換ブロック(10)内のゼロ周波数および低周波数のサンプル位置にコピーすること(S41)と、
前記第1の変換ブロック(10)内の残りのサンプル位置をゼロにセットすること(S42)と、
前記変換ブロックの前記各高周波数変換係数を前記第2の変換ブロック(20)内の高周波数のサンプル位置にコピーすること(S43)と、
前記第2の変換ブロック(20)内の残りのサンプル位置をゼロにセットすること(S44)とによって行われる、請求項8に記載の方法。
前記第2の残差ブロック(21)が、サンプルの数に関して前記第1の残差ブロック(11)と比べて小さいサイズを持ち、前記第2の残差ブロック(21)が前記第1の残差ブロック(11)の下位部分(12)に対応し、前記デバイス(100、110)が、前記第2の残差ブロック(21)の前記各再構成済み予測誤差値によって、前記第1の残差ブロック(11)の前記下位部分(12)の前記各再構成済み予測誤差値をサンプルごとに変更するように設定される、請求項10に記載のデバイス。
前記デバイス(100、110)が、前記第2の残差ブロック(21)の前記各再構成済み予測誤差値を、前記第1の残差ブロック(11)の前記下位部分(12)の前記各再構成済み予測誤差値にサンプルごとに追加するように設定される、請求項11に記載のデバイス。
前記デバイス(100、110)が、前記第2の残差ブロック(21)の前記各再構成済み予測誤差値によって、前記第1の残差ブロック(11)の前記下位部分(12)の前記各再構成済み予測誤差値をサンプルごとに置換するように設定される、請求項11に記載のデバイス。
前記デバイス(100、110)が、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの前記第1の変換ブロック(10)を逆変換して、前記第1の残差ブロック(11)を取得するように設定され、
前記デバイス(100、110)が、それぞれの高周波数変換係数を持っているサンプルの前記第2の変換ブロック(20)を逆変換して、前記第2の残差ブロック(21)を取得するように設定される、請求項14に記載のデバイス。
前記デバイス(100、110)が、それぞれの変換係数を持っているサンプルの変換ブロックを前記第1の変換ブロック(10)および前記第2の変換ブロック(20)に分割するように設定され、前記分割することが、
前記変換ブロックの前記それぞれのゼロ周波数変換係数および低周波数変換係数を、前記第1の変換ブロック(10)内のゼロ周波数および低周波数のサンプル位置にコピーすることと、
前記第1の変換ブロック(10)内の残りのサンプル位置をゼロにセットすることと、
前記変換ブロックの前記各高周波数変換係数を前記第2の変換ブロック(20)内の高周波数のサンプル位置にコピーすることと、
前記第2の変換ブロック(20)内の残りのサンプル位置をゼロにセットすることとによって行われる、請求項15に記載のデバイス。
【発明を実施するための形態】
【0031】
図面全体を通じて、類似する要素または対応する要素には同じ参照番号が使用されている。
【0032】
本実施形態は、概して、変換ブロックのデコーディングおよびエンコーディングに関連し、具体的には、変換ブロックの空間的改善に寄与するデコーディングおよびエンコーディングに関連する。それによって、実施形態は、再構成済み残差ブロックがイントラ予測またはインター予測に追加されて、サンプルまたはピクセルの元のブロックの再構成済み(または、デコードされた)バージョンを形成する前に、再構成済み残差ブロック(従来技術では、デコードされた残差ブロックとも示される)の空間的に局在する部分の改善を実現する。この改善は、イントラ予測またはインター予測への追加の前に、再構成済み残差ブロックの下位部分内の再構成済み(または、デコードされた)予測誤差値を変更することによって、実現される。それによって、この空間的に局在する変更は、元のブロックの符号化に関連して変換および量子化の間に導入されたアーチファクトを補償することができる。
【0033】
例えば、
図2Aは、エンコードされるビデオストリームの画像またはフレームの一部を構成する符号化ブロック1を示している。この特定の符号化ブロック1では、画像が滑らかな背景を持っており、線6が符号化ブロック1と交差している。それによって、符号化ブロック1は、滑らかな勾配(背景)と局所的な高周波部分(線)の両方を含んでいる。この場合、エンコーダは、符号化ブロック1を効果的にエンコードするために、符号化ブロック1をさらに小さい変換ブロック2、3、4に分割する必要がある。したがって、線6を含んでいる符号化ブロック1の部分には小さい変換ブロックサイズ4が必要であり、それに応じて、滑らかな背景のみを含んでいる符号化ブロック1の部分には、より大きい変換ブロックサイズ2、3が使用され得る。
図2Aの例示的な従来技術の例では、変換ブロック1を横切る線6が存在するため、符号化ブロック1が22個の変換ブロックに分割されている。
【0034】
図2Bは、一実施形態に従う例を示している。この場合、符号化ブロック1はわずか4つの変換ブロック2に分割されている。代わりに、4つの変換ブロック2を逆変換した後に取得された、再構成済み残差ブロックのうちの2つの下位部分5を変更することによって、線6の存在に起因する高周波データが対処される。つまり、各実施形態は、滑らかな勾配と局所的な高周波部分の両方を含む符号化ブロック1を、再構成済み残差ブロックの下位部分の選択的変更によって、従来技術と比べて非常に効率的な方法で処理することができる。
【0035】
一般に、ビデオ符号化では、ビデオストリームのフレームまたは画像の一部を構成するサンプルまたはピクセルの符号化ブロックは、サンプルの数に関して現在のブロックと同じサイズであるか、または現在のブロックの一部である、1つまたは複数の予測ブロックに分割される。その後、各イントラ予測モードまたはインター予測が、そのような予測ブロックごとに選択される。それぞれの予測誤差値を持っているサンプルの1つまたは複数の残差ブロックを取得するために、符号化ブロック内のサンプル値と選択された予測の間の差が計算される。次に、それぞれの変換係数を持っているサンプルの1つまたは複数の変換ブロックを取得するために、現在のブロックと同じサイズを持つ変換ブロック内の予測誤差値に対して、または予測誤差値の一部に対して、変換が適用される。その後、変換係数が量子化されて、エンコードされる。変換ブロック、もっと正確に言えば、変換ブロックの再構成済みバージョンを取得するために、デコード時に、エンコード済みデータがデコードされて逆量子化される。残差ブロックの再構成済みバージョンまたはデコード済みバージョン(再構成済み残差ブロック)を取得するために、変換ブロックが逆変換される。符号化ブロックの再構成済みバージョンを取得するために、残差ブロックの再構成済みバージョンの再構成済み予測誤差値またはデコード済み予測誤差値が予測に追加される。
【0036】
従来技術のビデオ符号化では、統計的時間依存性を利用するためにインター予測が使用され、イントラ予測が統計的空間依存性を利用し、予測残差(すなわち、予測誤差値)の変換符号化が統計的空間依存性をさらに利用する。変換符号化は、変換(好ましくは、線形空間変換)を使用した残差ブロック内の予測誤差値の変換を含む。そのような変換の好ましい例は、離散余弦変換(DCT)、離散正弦変換(DST)、カルーネン−ロェーヴ変換(KLT)などを含むが、これらに限定されない。
【0037】
本発明によれば、残差ブロックの再構成済みバージョンの全体ではない下位部分の再構成済み予測誤差値が、予測への追加の前に変更される。
【0038】
以下では、それぞれの変換係数を持っているサンプルのブロックを示すために変換ブロックが使用され、それぞれの予測誤差値を持っているサンプルの残差ブロックの変換の適用によって取得される。従来技術では、変換ブロックはしばしば変換ユニットと示される。
【0039】
図3は、実施形態に従って変換ブロックのデコーディングの方法の一般的概念を示すフローチャートである。この方法は、ステップS1で、それぞれの変換係数を持っているサンプルの変換ブロックを逆変換することによって取得されたサンプルの残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更することを含む。ステップS1において実行される変更は、残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0040】
したがって、ステップS1において実行される変更は、残差ブロックの下位部分内の再構成済み予測誤差値(従来技術では、しばしばデコードされた予測誤差値と示される)のみに影響を与える。つまり、残差ブロックの残りの部分内の再構成済み予測誤差値は、変更前と同じままである。したがって、この変更は、残差ブロックの一部に対する空間的に局在する変更である。
【0041】
それによって、ステップS1における空間的に局在する変更は、例えば、変換基底パターンの形態などで、高周波データを処理するため、または変換符号化からの視覚的アーチファクトを補償するために、使用され得る。
【0042】
図4は、実施形態に従って変換ブロックのデコーディングの方法を示すフローチャートである。この方法は、ステップS10で、それぞれの変換係数を持っているサンプルの第1の変換ブロック(第1のTB)を逆変換して、各再構成済み予測誤差を持っているサンプルの第1の残差ブロック(第1のRB)を取得することを含む。この方法は、ステップS11で、それぞれの変換係数を持っているサンプルの第2の変換ブロック(第2のTB)を逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第2の残差ブロック(第2のRB)を取得することも含む。次のステップS12は、第2の残差ブロックの各再構成済み予測誤差値によって、第1の残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更することを含む。ステップS12において実行される変更は、第1の残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0043】
図4の2つのステップS10およびS11は、任意の順序で連続的に、または少なくとも部分的に並列に実行され得る。
【0044】
したがって、第1の残差ブロックの下位部分内の再構成済み予測誤差値の空間的に局在する変更は、この実施形態では、第2の変換ブロックを逆変換することによって取得された再構成済み予測誤差値を使用することによって実現される。
【0045】
一実施形態では、ステップS10およびS11において、同じタイプの逆変換が第1および第2の変換ブロックに適用され得る。例えば、同じタイプの逆DCT変換が使用される。代替の実施形態では、第1の変換ブロックおよび第2の変換ブロックを生成するときに、ビデオ符号および変換符号化の間に、異なるタイプの変換が使用されていることがある。そのような場合、第1の変換ブロックを取得するために第1の変換が第1の残差ブロックに適用され、第2の変換ブロックを取得するために第2の変換が第2の残差ブロックに適用される。その場合、第2の変換は、第1の変換と比較して、異なる特徴および特性を持ってよい。つまり、第1の逆変換は、ステップS10において第1の変換ブロックから第1の残差ブロックを取得するために使用されることが可能であり、第2の逆変換は、ステップS11において第2の変換ブロックから第2の残差ブロックを取得するために使用されることが可能である。第1の(逆)変換は、1つまたは複数のタイプのDCT、1つまたは複数のタイプのDST、および1つまたは複数のタイプのKLTを含んでいるグループから選択された第1の(逆)変換であることができる。第2の(逆)変換は、このグループから選択された第2の異なる(逆)変換であることができる。例えば、第1の(逆)変換は(逆)DCT変換であることができ、第2の(逆)変換は(逆)DST変換またはKLT変換である。別の例では、第1の(逆)変換は第1のタイプの(逆)DCT変換であり、第2の(逆)変換は第2の異なるタイプの(逆)DCT変換である。
【0046】
第2の残差ブロックによって変更される第1の残差ブロックの下位部分は、通常は、第1の残差ブロック内の隣接するサンプル位置の連続的サンプル領域である。例えば、下位部分は、第1の残差ブロックの4分の1のうちの1つまたはサブセットに対応することができる。これは、例えば、本明細書でさらに説明される
図16A〜
図16Cにおいて、さらに詳細に示されている。下位部分は、例えばP×Pサンプルの正方形またはP×Qサンプルの長方形を含む、サンプルの数に関して異なるサイズまたは形状を持つことができ、P、Qは1以上の整数である。特定の実施形態では、正方形(P×Pサンプル)の場合、Pは2以上の整数である。別の特定の実施形態では、長方形(P×Qサンプル)の場合、PおよびQのうちの少なくとも1つが2以上の整数である。長方形の場合、下位部分は1×QサンプルまたはP×1サンプルの形態であることができる。これは、第1の残差ブロック内の行または列のうちの1つにおいて、再構成済み予測誤差値を変更することに対応する。この行または列は、好ましくは、第1の残差ブロック内の最初または最後の行または列である。これは、第1の残差ブロック内の境界のサンプル位置を変更することに対応する。
【0047】
代替の実施形態では、第1の残差ブロック内の下位部分を集合的に構成するサンプル位置は、隣接していないサンプル位置を含むように分散され得る。例えば、下位部分は、第1の残差ブロック内の1つおきのサンプルで構成され得る。
【0048】
図16Aに示されているように、
図4に示された方法の第1の実装の実施形態では、第2の残差ブロック21が、サンプルの数に関して、第1の残差ブロック11と比べて小さいサイズを持っている。さらに、第2の残差ブロック21は、第1の残差ブロック11の下位部分12に対応する。この実装の実施形態では、
図4のステップS12は、第2の残差ブロック21の各再構成済み予測誤差値によって、第1の残差ブロック11の下位部分12の各再構成済み予測誤差値をサンプルごとに変更することを含む。
【0049】
図16Aは、第1の変換ブロック10および第2の変換ブロック20も示しており、これらの変換ブロックは、第1の残差ブロック11および第2の残差ブロック21をそれぞれ取得するために、ステップS10およびS11において逆変換される。
【0050】
サンプルごとの変更とは、第1の残差ブロック11の下位部分12内の特定のサンプルの再構成済み予測誤差値が、第2の残差ブロック21内の対応するサンプルの再構成済み予測誤差値によって変更されるということを意味する。対応するサンプルは、特定のサンプルが第1の残差ブロック11の下位部分12内で占めているのと同じ位置を、第2の残差ブロック21内で占める(この位置は、第1の残差ブロック11全体内の特定のサンプルの位置とは異なることができる)。例えば、第1の残差ブロック11の下位部分12内の左上隅を占めているサンプルの再構成済み予測誤差値が、第2の残差ブロック21内の左上隅を占めている対応するサンプルの再構成済み予測誤差値によって変更される、などとなる。
【0051】
この実施形態では、最後の残差ブロック(RB)13は、第2の残差ブロック21を使用して変更された再構成済み予測誤差値、および第1の残差ブロック11の「元の」再構成済み予測誤差値に対応する変更されていない再構成済み予測誤差値を持っている。
【0052】
図5は、
図4内の変更ステップの実施形態を示すフローチャートである。この実施形態では、この方法は
図4内のステップS11から継続する。次のステップS13は、第2の残差ブロック21の各再構成済み予測誤差値を、第1の残差ブロック11の下位部分12の各再構成済み予測誤差値にサンプルごとに追加することを含む。
【0053】
そのような追加の例が、4×4サンプルの第1の残差ブロック11および2×2サンプルの第2の残差ブロック21を使用して、下で提示される。この例では、第2の残差ブロック21の各再構成済み予測誤差値が、第1の残差ブロック11の右上の2×2の下位部分に追加される。
【0054】
関連する実施形態では、第2の残差ブロック21の各再構成済み予測誤差値の重み付けされたバージョンを、第1の残差ブロック11の下位部分12の各再構成済み予測誤差値にサンプルごとに追加することによって、変更が実行され得る。
【0055】
そのような場合、同じ重みがすべての再構成済み予測誤差値に使用され得るか、または異なる重みが異なる予測誤差値に使用され得る。後者の場合、重みの値は、第2の残差ブロック12内の特定のサンプル位置に基づいて規定され得る。あるいは、重みの決定を可能にする情報が、エンコーダから提供され得る。
【0056】
さらに別の実施形態では、重みの値が、現在のブロックのイントラ予測またはインター予測のサンプル値に基づいて推定または決定され得る。
【0057】
図6は、
図4内の変更ステップの別の実施形態を示すフローチャートである。この実施形態では、ステップS14は、第2の残差ブロック21の各再構成済み予測誤差値によって、第1の残差ブロック11の下位部分12の各再構成済み予測誤差値をサンプルごとに置換することを含む。
【0058】
そのような置換の対応する例が、下で提示される。
【0059】
一実施形態では、
図4のステップS10は、各変換係数を持っている2N×2Nサンプルの変換ブロック10を逆変換して、各再構成済み予測誤差を持っている2N×2Nサンプルの残差ブロック11を取得することを含む。この実施形態では、ステップS11は、各変換係数を持っているN×Nサンプルの少なくとも1つの変換ブロック20A〜20Dを逆変換して、各再構成済み予測誤差値を持っているN×Nサンプルの少なくとも1つの残差ブロック21A〜21Dを取得することを含む(
図16Bを参照)。N×Nサンプルの少なくとも1つの残差ブロック21A〜21Dのうちの各残差ブロック21A〜21Dは、2N×2Nサンプルの残差ブロック11の各下位部分12A〜12Dに対応する。この実施形態では、ステップS12は、2N×2Nサンプルの残差ブロック11の各下位部分12A〜12Dの各再構成済み予測誤差値を、N×Nサンプルの残差ブロック21A〜21Dの各再構成済み予測誤差値によって、サンプルごとに、かつN×Nサンプルの少なくとも1つの残差ブロック21A〜21Dのうちの残差ブロック21A〜21Dごとに、変更することを含む。
【0060】
特定の実施形態では、2N×2Nサンプルの残差ブロック11は、4つの各下位部分12A〜12Dを含み、下位部分12A〜12Dはそれぞれ、2N×2Nサンプルの残差ブロック11の各4分の1を表す。次に、これらの4分の1 12A〜12Dのうちの1つまたは複数における再構成済み予測誤差値は、N×Nサンプルの1つまたは複数の残差ブロック21A〜21Dの再構成済み予測誤差値によって、
図5および6に関連して前述された追加または置換などによって、変更され得る。
【0061】
一実施形態では、
図4のステップS11およびS12は、2N×2Nサンプルの変換ブロック10に関連付けられた少なくとも1つのフラグの値に対して条件付けられる。つまり、この実施形態では、2N×2Nサンプルの変換ブロック10に関連付けられた少なくとも1つのフラグが、変換係数を2N×2N変換ブロックレベルに使用できることを示す値を持っている場合に、S11およびS12が実行される。
【0062】
第1の実施形態では、1つのフラグが使用される。フラグが第1の値(1
bin(または0
bin)など)を持っている場合、N×Nサンプルの少なくとも1つの変換ブロック20A〜20Dが、2N×2Nサンプルの変換ブロック10を逆変換することによって取得された再構成済み予測誤差値を変更するために使用可能であり、使用されるべきである。つまり、
図4内のステップS10に加えて、ステップS11およびS12が実行されるべきである。しかし、フラグが第2の値(0
bin(または1
bin)など)を持っている場合は、N×Nサンプルの変換ブロック20A〜20Dを、2N×2Nサンプルの現在の変換ブロック10に使用できない。その場合、
図4のステップS11およびS12ではなく、ステップS10のみが実行されるべきである。
【0063】
フラグが第1の値を持っている場合、好ましくは、フラグまたはその他の構文要素などの追加情報が使用可能であり、2N×2Nサンプルの再構成済みブロック11のどの4分の1 12A〜12Dが変更されるべきかをシグナリングするために使用される。これは、前述された第1のフラグが第1の値を持っている場合に、4つの追加フラグ(4分の1 12A〜12Dごとに1つ)を持つことによって実現され得る。その場合、そのような各追加フラグは、関連する4分の1 12A〜12Dの再構成済み予測誤差値が変更されるべきであるかどうかをシグナリングすることができる。それによって、このアプローチは、2N×2Nサンプルの残差ブロック11を全く変更しないか、または1つまたは複数の4分の1 12A〜12Dを変更する可能性を持つ。これにより、再構成済み予測誤差値の変更において、およびそのような変更が行われるべき下位部分12A〜12Dの空間的選択において、高い柔軟性を実現する。
【0064】
わずかに柔軟性の低い実施形態では、N×Nサンプルの1つの変換ブロック20が使用可能であってよい。そのような場合、N×Nサンプルの変換ブロック20を使用して変更されるべき下位部分12A〜12D(すなわち、4分の1)を示すために、4つの追加フラグを使用する代わりに、1つの構文要素(2ビットの構文要素など)が使用され得る。さらに柔軟性の低い実施形態は、2N×2Nサンプルの残差ブロック11内の下位部分12A〜12Dの位置を事前に規定することである。そのような場合、下位部分12A〜12Dの位置をシグナリングするために、構文要素は必要とされない。そのようなケースの標準的な例は、イントラ予測誤差を含む残差ブロックの右下隅である。残差ブロックのこの下位部分は、イントラ予測を規定するために使用される基準サンプルから最も遠いため、通常、最大の予測誤差値を含む。
【0065】
さらに別の例は、現在のブロックのイントラ予測またはインター予測のサンプル値に基づいて、変更されるべき2N×2Nサンプルの残差ブロック11内の下位部分(例えば、4分の1)の位置を導出することである。通常、予測が非平坦であるサンプルの予測ブロック内の対応するサンプル位置は、N×Nサンプルの残差ブロック21を使用して変更されるべき下位部分の適切な位置を構成する。
【0066】
さらに別の変形は、必ずしも互いに一致しないが、むしろさらに大きい領域をカバーするサンプル位置をカバーするN×Nサンプルの変換ブロック20を持っていることである。例えば、2N×2Nサンプルの残差ブロック11内の1つおきのサンプル位置である。別の例は、ブロックのイントラ予測またはインター予測が、前述されたように非平坦である位置である。したがって、N×Nサンプルの変換ブロック20を使用して変更されるべき下位部分12A〜12D(すなわち、4分の1)は、必ずしも、隣接するサンプル位置の連続的サンプル領域である必要はない。明確に対照的に、2N×2Nサンプルの残差ブロック11内の下位部分12A〜12Dを集合的に構成するサンプル位置は、隣接していないサンプル位置を含むように分散され得る。
【0067】
別の実施形態では、
図4のステップS10は、各変換係数を持っている2N×2Nサンプルの変換ブロックを逆変換して、各再構成済み予測誤差を持っている2N×2Nサンプルの残差ブロック11を取得することを含む。この実施形態では、ステップS11は、各変換係数を持っているN×Nサンプルの4つの変換ブロック20A〜20Dを逆変換して、各再構成済み予測誤差値を持っているN×Nサンプルの4つの残差ブロック21A〜21Dを取得することを含む。N×Nサンプルの4つの残差ブロック21A〜21Dのうちの各残差ブロック21A〜21Dは、2N×2Nサンプルの残差ブロック11の各下位部分12A〜12Dに対応する。この実施形態では、ステップS12は、
図7に示されているように4つのサブステップS15〜S18を含む。ステップS15は、N×Nサンプルの4つの残差ブロック21A〜21DのうちのN×Nサンプルの第1の残差ブロック21Aの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロック11の第1の下位部分12Aの各再構成済み予測誤差値を、サンプルごとに変更することを含む。ステップS16は、N×Nサンプルの4つの残差ブロック21A〜21DのうちのN×Nサンプルの第2の残差ブロック21Bの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロック11の第2の下位部分12Bの各再構成済み予測誤差値を、サンプルごとに変更することを含む。ステップS17は、N×Nサンプルの4つの残差ブロック21A〜21DのうちのN×Nサンプルの第3の残差ブロック21Cの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロック11の第3の下位部分12Cの各再構成済み予測誤差値を、サンプルごとに変更することを含む。ステップS18は、N×Nサンプルの4つの残差ブロック21A〜21DのうちのN×Nサンプルの第4の残差ブロック21Dの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロック11の第4の下位部分12Dの各再構成済み予測誤差値を、サンプルごとに変更することを含む。
【0068】
この実施形態では、N×Nサンプルの各変換20A〜20Dが使用可能であり、例えば
図5または
図6に示されているように、2N×2Nサンプルの残差ブロック11内の4つのN×Nの下位部分12A〜12Dそれぞれにおいて再構成済み予測誤差値を変更するために使用され得る。
【0069】
特定の実施形態では、2つのフラグが、2N×2Nサンプルの変換ブロック10に関連付けられ、2N×2Nサンプルの変換ブロック10を逆変換することによって取得された再構成済み予測誤差値の変更が行われるべきであるかどうかを決定するために使用され得る。この実施形態では、2N×2Nサンプルの変換ブロック10に関連付けられた第1のフラグが、2N×2Nサンプルの変換ブロック10がN×Nサンプルの4つの変換ブロック20A〜20Dに分割されることを示す値を持っている場合、および2N×2Nサンプルの変換ブロック10に関連付けられた第2のフラグが、変換係数を2N×2N変換ブロックレベルに使用できることを示す値を持っている場合に、
図4のステップS10〜S12が実行される。
【0070】
この実施形態は、
図8でさらに詳細に示される。この方法はステップS20で開始し、ステップS20で、第1のフラグの値が調べられる。この例では、第1のフラグが値0
binを持っている場合、N×Nサンプルの変換ブロック20A〜20Dを、2N×2Nサンプルの現在の変換ブロック10に使用できない。それによって、2N×2Nサンプルの再構成済みブロック13を取得するために2N×2Nサンプル10の変換ブロックがステップS21で逆変換され、再構成済み予測誤差値の変更は実行されない。しかし、この例では、第1のフラグが1
binに等しい場合、この方法はステップS22に進み、ステップS22で第2のフラグの値がチェックされる。この例では、第2のフラグが0
binに等しい場合、変換係数を2N×2N変換ブロックレベルに使用できない。これは基本的に、2N×2Nサンプルの変換ブロックを、N×Nサンプルの4つの変換ブロックに置換または分割することに対応する。次に、ステップS23でN×Nサンプルの4つの変換ブロックが逆変換されるか、またはそれらの変換ブロックのうちの少なくとも1つが、4つのさらに小さい変換ブロックにさらに分割され得る。ただし、ステップS22で決定されるように、第2のフラグが1
binに等しい場合、この方法はステップS24に進み、ステップS24は、2N×2Nサンプルの変換ブロック10およびN×Nサンプルの4つの変換ブロック20A〜20Dを逆変換することを含む。次に、この方法は
図7のステップS15に進み、ステップS15で、2N×2Nサンプルの残差ブロック11の再構成済み予測誤差が、本明細書において前述されたように、変更される。
【0071】
前述された実施形態では、Nは整数であり、好ましくは2以上の整数である。特定の実施形態では、N=2
nであり、nは1以上の整数である。さらに好ましくは、n=1、2、3、または4、あるいはn=1、2、3、4、または5である。
【0072】
一実施形態では、N×Nサンプルの4つの変換ブロック20A〜20Dのすべてが必ずしも等しくない。これは、2N×2Nサンプルの残差ブロック11の異なる下位部分12A〜12Dが、異なる変更の対象になるということを意味する。特定の実施形態では、N×Nサンプルの少なくとも1つの残差ブロック21A〜21Dの再構成済み予測誤差値のうちの少なくとも1つがゼロに等しい。
【0073】
図9は、別の実装の実施形態に従って
図4内の変更ステップS12の実施形態を示すフローチャートである。
図16Cへの参照も行われる。この方法は、
図4内のステップS11から継続する。次のステップS30は、第2の残差ブロック21の下位部分22内の各再構成済み予測誤差値を変更することを含む。次のステップS31は、第2の残差ブロック21の各再構成済み予測誤差値を、第1の残差ブロック11の各予測誤差値にサンプルごとに追加することを含む。
【0074】
特定の実施形態では、下位部分22の変更後の第2の残差ブロック21内の再構成済み予測誤差値のうちの少なくとも1つがゼロである。つまり、そのような場合、ゼロの再構成済み予測誤差値を持っている第2の残差ブロック21内のサンプルは、第1の残差ブロック11内の対応するサンプルの再構成済み予測誤差値を変更しない。
【0075】
特定の実施形態では、第1および第2の変換ブロック10、20は、サンプルの数に関して同じサイズを持ち、第1および第2の残差ブロック11、21も、サンプルの数に関して同じサイズを持つ。
【0076】
一実施形態では、
図9のステップS30が、
図10に示されているように実行される。したがってこの実施形態では、変更は、ステップ32で、第2の残差ブロック21の下位部分22内の各再構成済み予測誤差値をゼロに設定することを含む。これは、下位部分22内に存在するサンプルに関して、残差ブロック21の再構成済み予測誤差値がゼロに置換されるということを意味する。
【0077】
図11は、
図9内のステップS30の別の実施形態を示している。この実施形態では、変更は、ステップ33で、第2の残差ブロック21の下位部分22内の各再構成済み予測誤差値に、それぞれの重みを掛けることを含む。
【0078】
一実施形態では、重みのうちの少なくとも1つがゼロであり、その結果、第2の残差ブロック21の下位部分22内の少なくとも1つのサンプルの再構成済み予測誤差値がゼロに設定される。
【0079】
これは、すべての再構成済み予測誤差値をゼロに設定することと比べて、より一般化された実施形態である。このタイプの変更は、単純にゼロに設定することよりも緩和的であり、例えば、一部のサンプルの再構成済み予測誤差値の大きさの縮小を実現することができる。その場合、それぞれの重みは各スケーリング係数と見なすことができる。変更された第2の残差ブロック21の下位部分22と、変更されていない第2の残差ブロック21の残りの部分との間の不連続性を防ぐために、ステップS33で重みを使用するスケーリングが、1の重みまたはスケーリング係数(変更しないことを意味する)から望ましい重み付け係数またはスケーリング係数(ゼロなど)に減少することができる。つまり、第2の残差ブロック21の下位部分22内のサンプルの行または列に沿って移動するときに、1つまたは複数のステップで、再構成済み予測誤差値をゼロに設定することから、再構成済み予測誤差値を変更しないことまで、変化することができる。これによって、第2の残差ブロック21内の下位部分22と残りの部分の間の境界を横切る場合に、ゼロに設定されたサンプルから隣接する変更されていないサンプルまで移動するときに発生することのある不連続性を防ぐ。
【0080】
重みが、事前に規定されることが可能であり、例えば、下位部分22内のサンプル位置によって決まる。あるいは、エンコーダから提供された情報が、重みの導出に使用され得る。
【0081】
図12は、
図9に示された方法のオプションの追加ステップを示している。この方法は、
図4内のステップS11から継続する。次のステップS34は、第2の変換ブロック20に関連付けられた少なくとも1つのフラグの各値に基づいて、第2の残差ブロック21の下位部分22を識別することを含む。次に、この方法は
図9内のステップS30に進む。
【0082】
この実施形態では、少なくとも1つのフラグが、下位部分22の識別に使用される。第1のアプローチでは、下位部分22の位置が、第2の残差ブロック21内の、例えば第2の残差ブロック21の左上の4分の1に対応する位置に固定され得る。そのような場合、この下位部分22内の再構成済み予測誤差値が変更されるべきであるかどうかをシグナリングするために、1つのフラグが使用され得る。
【0083】
別の実施形態では、4つのフラグが第2の変換ブロック20に関連付けられ得る。その場合、そのような各フラグは、第2の残差ブロック21の各4分の1ごとに割り当てられる。これは、第2の残差ブロック21内の4分の1ごとに変更または非変更を個別にシグナリングすることができるということを意味する。
【0084】
さらに別の変形は、2ビットの構文要素などの構文要素を第2の変換ブロック20に関連付けることである。この構文要素は、下位部分22が第2の残差ブロック21の4つの4分の1のうちの1つを構成する場合、第2の残差ブロック21内の下位部分22の位置をシグナリングすることができる。
【0085】
インター予測またはイントラ予測(すなわち、本明細書において前述された特定のインター予測またはイントラ予測のサンプル値)に基づいて、下位部分22の位置を推定することもできる。
【0086】
一実施形態では、
図4のステップS10は、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの第1の変換ブロック10を逆変換して、第1の残差ブロック11を取得することを含む。この実施形態では、ステップS11は、それぞれの高周波数変換係数を持っているサンプルの第2の変換ブロック20を逆変換して、第2の残差ブロック21を取得することを含む。
【0087】
それによって、2つの変換ブロック10、20は互いに補完し、第1の変換ブロック10がゼロ周波数(すなわち、DC)変換係数および低周波数変換係数を搬送し、第2の変換ブロック20が高周波数変換係数を搬送する。ステップS10およびS11での逆変換後に、それによって、第1の残差ブロック11は、再構成済み予測誤差のDCおよび低周波数の寄与を含み、第2の残差ブロック21は、再構成済み予測誤差の高周波数の寄与を含む。そのような場合、変更ステップS30で、残差ブロック13の下位部分22の高周波数の寄与をゼロに設定するか、または少なくとも抑制することができる。次に、ステップS31で2つの残差ブロック11、21を一緒に追加することによって得られた残差ブロック13は、再構成済み予測誤差へのDCおよび低周波数の寄与のみを持つサンプルの部分を持ち、一方、残差ブロック13の残りの部分は、再構成済み予測誤差へのDCおよび低周波数と高周波数の両方の寄与を持つサンプルを持つ。
【0088】
別の実施形態では、代わりに、ゼロに設定すること、または抑制が、ゼロ周波数および/または低周波数の寄与に適用され得る。そのような場合、第2の残差ブロック21の代わりに、第1の残差ブロック11の下位部分に対して変更が実行される。これらのアプローチを結合することも可能である。そのような場合、第1の残差ブロック11の下位部分内のゼロ周波数および/または低周波数の寄与が変更され、第2の残差ブロック21の下位部分内の高周波数の寄与が変更される。2つの下位部分は、通常、残差ブロック11、21内で異なる位置を持つ。
【0089】
本明細書で使用される低周波数の寄与および低周波数変換係数は、好ましくは、最大m次の変化に関連し、一方、高周波数の寄与および高周波数変換係数は、(m+1)次以上の変化に関連する。例えば、第1の変換ブロック10はDCおよび1次の変換係数を含むことができ、一方、第2の変換ブロック20は2次以上の変換係数を搬送する。
【0090】
一実施形態では、前述されたように、2つの変換ブロック10、20は、エンコード時およびデコード時に生成され得る。あるいは、1つの変換ブロックが、使用された後に第1および第2の変換ブロック10、20に分割される。そのような場合、この方法は、好ましくは、
図13に示されているようにオプションのステップS40を含む。このステップS40は、それぞれの変換係数を持っているサンプルの変換ブロックを第1の変換ブロック10および第2の変換ブロック20に分割することを含む。次に、この方法は
図4内のステップS10に進む。
【0091】
図14は、
図13内の分割ステップS40の好ましい実装を示すフローチャートである。この方法は、ステップS41で、変換ブロックのそれぞれのゼロ周波数変換係数および低周波数変換係数を、第1の変換ブロック10内のゼロ周波数および低周波数のサンプル位置にコピーすることを含む。次のステップS42は、第2の変換ブロック10内の残りのサンプル位置をゼロにセットすることを含む。ステップS43は、変換ブロックの各高周波数変換係数を第2の変換ブロック20内の高周波数のサンプル位置にコピーすることを含む。次のステップS44は、第2の変換ブロック20内の残りの位置をゼロにセットすることを含む。
【0092】
ステップS42でゼロにセットされるサンプル位置は、好ましくは、第1の変換ブロック10内の高周波数のサンプル位置である。それに応じて、ステップS44でゼロにセットされるサンプル位置は、好ましくは、第2の変換ブロック20内のゼロ周波数および低周波数のサンプル位置である。したがって、その後、第1の変換ブロック10はゼロ周波数変換係数および低周波数変換係数を含むが、好ましくは、高周波数変換係数を含まない。それに応じて、第2の変換ブロック20は、好ましくは、高周波数変換係数を含むが、ゼロ周波数変換係数または低周波数変換係数を含まない。
【0093】
この手順は、下で概略的に説明されており、第1のステップで、ゼロ周波数変換係数、低周波数変換係数、および高周波数変換係数をそれぞれコピーすることによって、変換ブロックを第1および第2の変換ブロックに分割することを示している。第2のステップで、残りのサンプル位置がゼロにセットされる。
【0094】
代替のアプローチは、残差ブロックの再構成済み予測誤差値を導出するときに、ゼロに等しくなるべき変換係数に対応する変換の基底関数の使用を省略することである。
【0095】
図15は、さらに別の実装の実施形態に従って変換ブロックのデコーディングの方法を示すフローチャートである。
図16Dへの参照も行われる。この実装の実施形態では、この方法はステップS50で開始し、ステップS50は、それぞれの変換係数を持っているサンプルの変換ブロック10を逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの残差ブロック11を取得することを含む。次のステップS51は、それぞれの予測誤差値を持っているサンプルの変換スキップブロック25を提供することを含む。一実施形態では、変換スキップブロック25は、サンプルの数に関して、残差ブロック11と比べて小さいサイズを持っている。次のステップS52は、変換スキップブロック25の各予測誤差値によって、残差ブロック11の下位部分12内の各再構成済み予測誤差値をサンプルごとに変更することを含む。ステップS52において実行される変更は、残差ブロック11の下位部分12内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロック11の残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0096】
本明細書において使用される変換スキップブロック25は、変換が回避される変換ブロックである。つまり、変換スキップブロック25内のサンプルの係数は、空間的残差サンプル(すなわち、予測誤差値)である。したがって、変換スキップブロック25の予測誤差値を取得するために、逆変換は必要とされない。
【0097】
ステップS52で、
図5および6に関連して説明されたのと同様の方法で、変更が実行され得る。したがって、一実施形態では、ステップS52は、変換スキップブロック25の各予測誤差値を、残差ブロック11の下位部分12の各再構成済み予測誤差値にサンプルごとに追加することを含む。別の実施形態では、ステップS52は、変換スキップブロック25の各予測誤差値によって、残差ブロック11の下位部分12の各再構成済み予測誤差値をサンプルごとに置換することを含む。
【0098】
図16Aに関連して本明細書において前述されたように、下位部分12の特定の位置がシグナリングされ得る。
【0099】
下位部分12の形状および連続的または分散された下位部分12に関して上で提供された説明は、別の変換ブロックを使用する代わりに、残差ブロック内の再構成済み予測誤差値を変更するために変換スキップブロックを使用する実施形態にも適用される。
【0100】
前述された方法および実施形態は、通常は、符号化されたビデオストリームおよび符号化されたビデオストリーム内の画像またはフレームのデコード時に、デコーダ内で、またはデコーダによって実行される。ただし、逆変換は、エンコーダが符号化ブロックをエンコードするときにどの予測を使用するべきかをテストする場合に、エンコード時にも実行される。したがって、この方法は、ビデオストリームのエンコード時に、エンコーダ内で、またはエンコーダによっても実行され得る。
【0101】
エンコーダは、好ましくは、本明細書で開示されているように、再構成済み予測誤差値の変更を実行するようにデコーダに指示する情報をデコーダに提供する。このタイプの情報は、符号化ビデオビットストリームに含まれる1つまたは複数のフラグおよび/または1つまたは複数の構文要素であることができる。このタイプの情報は、符号化ビデオビットストリームの、または符号化ビデオビットストリームに関連付けられた、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、画像パラメータセット(PPS)などのパラメータセットに含まれ得る。代替または追加として、この情報は、ビデオストリームの画像またはフレームのスライスヘッダまたは実際には符号化されたペイロードデータに含まれ得る。
【0102】
フラグおよび/または構文要素の代わりに、または補完として、この情報は、変更後の残差ブロックの再構成済み予測誤差値に追加されるインター予測またはイントラ予測のサンプル値を含むことができる。例えば、インター予測またはイントラ予測のサンプル値は、本明細書で開示されているように、第2の残差ブロックまたは変換スキップブロックを使用して変更されるべき残差ブロックの下位部分を識別するために、デコーダによって使用され得る。例えば、非平坦である(すなわち、インター予測またはイントラ予測における最大サンプル値と最小サンプル値の間の差が大きい)と決定されたインター予測またはイントラ予測における対応する部分と同じサンプル位置を持っている残差ブロック内の下位部分は、変更に適しているとして識別され得る。
【0103】
以下の方法および実施形態は、通常は、ビデオストリームおよびビデオストリーム内の画像またはフレームのエンコード時に、エンコーダ内で、またはエンコーダによって実行される。それによって、これらの方法および実施形態は、「デコーディングに関連する」方法および実施形態において前述された変換ブロックを生成する。したがって、「デコーディングに関連する」実施形態に関連して前述された情報および手順が、変更すべきところは変更して、対応する「エンコーディングに関連する」実施形態に適用される。
【0104】
変換ブロックのエンコーディングの方法の一般的概念において、この方法は、それぞれの予測誤差値を持っているサンプルの残差ブロックを、それぞれの変換係数を持っているサンプルの変換ブロックに変換することを含む。この方法は、変換ブロックに基づいて取得された残差ブロックの再構成済みバージョンの下位部分内の各再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供することも含む。提供された情報に基づいて実行される変更は、残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0105】
図17は、実施形態に従って変換ブロックのエンコーディングの方法を示すフローチャートである。この方法は、ステップS60で、それぞれの予測誤差値を持っているサンプルの第1の残差ブロックを、それぞれの変換係数を持っているサンプルの第1の変換ブロックに変換することを含む。この方法は、ステップS61で、それぞれの予測誤差値を持っているサンプルの第2の残差ブロックを、それぞれの変換係数を持っているサンプルの第2の変換ブロックに変換することも含む。この方法は、ステップS62で、第2の変換ブロックに基づいて取得された第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの下位部分内の各再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供することをさらに含む。この変更は、第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0106】
この「エンコーディングに関連する」方法は、それぞれの予測誤差値を持っているサンプルの元の残差ブロックに対して作用する。次に、それぞれの変換係数を持っているサンプルの変換ブロックを取得するために、残差ブロックが変換される。その後、本明細書に記載されているように、変換係数がさらに処理される(量子化されてから逆量子化される)。次に、(元の)残差ブロックの再構成済みバージョンが、変換ブロックに基づいて取得される。さらに詳細には、次に、それぞれの再構成済み予測誤差値を持っているサンプルの残差ブロックの再構成済みバージョンを取得するために、量子化されてから逆量子化された変換係数が逆変換に入力される。
【0107】
一実施形態では、第2の残差ブロック21は、サンプルの数に関して、第1の残差ブロック11と比べて小さいサイズを持っている(
図16Aを参照)。また、第2の残差ブロック21は、第1の残差ブロック11の下位部分12に対応する。この実施形態では、この変更は、第2の変換ブロック20に基づいて取得された第2の残差ブロック21の再構成済みバージョンの各再構成済み予測誤差値によって、第1の変換ブロック10に基づいて取得された第1の残差ブロック11の再構成済みバージョンの下位部分12の各再構成済み予測誤差値をサンプルごとに変更することを含む。
【0108】
この変更は、本明細書において前述されたように、サンプルごとの追加または置換として実行され得る。
【0109】
この実施形態では、提供される情報は、第2の変換ブロック20の存在をデコーダに通知する情報を含み、好ましくは、第1の残差ブロック11内の下位部分12の位置を示す情報も含む。この情報は、1つまたは複数のフラグ、1つまたは複数の構文要素、ならびに/あるいは第2の変換ブロック20の存在および/または下位部分11の位置を間接的に規定する情報の形態であってよい。このタイプの情報は、第1の残差ブロック11に使用されたインター予測またはイントラ予測の特定の値であることができ、必要に応じて、第1の残差ブロック11の予測誤差値であることもできる。
【0110】
別の実施形態では、ステップS60は、各予測誤差値を持っている2N×2Nサンプルの残差ブロック11を変換して、各変換係数を持っている2N×2Nサンプルの変換ブロック10を取得することを含む(
図16Bを参照)。ステップS61は、各予測誤差値を持っているN×Nサンプルの少なくとも1つの残差ブロック21A〜21Dを変換して、各変換係数を持っているN×Nサンプルの少なくとも1つの変換ブロック20A〜20Dを取得することを含む。この実施形態では、N×Nサンプルの少なくとも1つの残差ブロック21A〜21Dのうちの各残差ブロック21A〜21Dは、2N×2Nサンプルの残差ブロック11の各下位部分12A〜12Dに対応する。この実施形態では、この変更は、2N×2Nサンプルの変換ブロック10に基づいて取得された2N×2Nサンプルの残差ブロック11の再構成済みバージョンの各下位部分12A〜12Dの各再構成済み予測誤差値を、N×Nサンプルの変換ブロック20A〜20Dに基づいて取得されたN×Nサンプルの残差ブロック21A〜21Dの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに、かつN×Nサンプルの少なくとも1つの変換ブロック20A〜20Dのうちの変換ブロック20A〜20Dごとに変更することを含む。
【0111】
特定の実施形態では、S62は、2N×2Nサンプルの変換ブロック10に関連付けられた少なくとも1つのフラグを、変換係数を2N×2N変換ブロックレベルに使用できることを示す値にセットすることを含む。
【0112】
この実施形態では、提供される情報が少なくとも1つのフラグを含む。
【0113】
さらに別の実施形態では、ステップS60は、各予測誤差値を持っている2N×2Nサンプルの残差ブロック11を変換して、各変換係数を持っている2N×2Nサンプルの変換ブロック10を取得することを含む。ステップS61は、各予測誤差値を持っているN×Nサンプルの4つの残差ブロック21A〜21Dを変換して、各変換係数を持っているN×Nサンプルの4つの変換ブロック20A〜20Dを取得することを含む。この実施形態では、N×Nサンプルの4つの残差ブロック21A〜21Dのうちの各残差ブロック21A〜21Dは、2N×2Nサンプルの残差ブロック11の各下位部分12A〜12Dに対応する。この実施形態では、この変更は、2N×2Nサンプルの変換ブロック10に基づいて取得された2N×2Nサンプルの残差ブロック11の再構成済みバージョンの第1の下位部分12Aの各再構成済み予測誤差値を、N×Nサンプルの4つの変換ブロック20A〜20DのうちのN×Nサンプルの第1の変換ブロック20Aに基づいて取得されたN×Nサンプルの第1の残差ブロック21Aの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することを含む。この変更は、2N×2Nサンプルの残差ブロック11の再構成済みバージョンの第2の下位部分12Bの各再構成済み予測誤差値を、N×Nサンプルの4つの変換ブロック20A〜20DのうちのN×Nサンプルの第2の変換ブロック20Bに基づいて取得されたN×Nサンプルの第2の残差ブロック21Bの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することも含む。この変更は、2N×2Nサンプルの残差ブロック11の再構成済みバージョンの第3の下位部分12Cの各再構成済み予測誤差値を、N×Nサンプルの4つの変換ブロック20A〜20DのうちのN×Nサンプルの第3の変換ブロック20Cに基づいて取得されたN×Nサンプルの第3の残差ブロック21Cの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することをさらに含む。この変更は、2N×2Nサンプルの残差ブロック11の再構成済みバージョンの第4の下位部分12Dの各再構成済み予測誤差値を、N×Nサンプルの4つの変換ブロック20A〜20DのうちのN×Nサンプルの第4の変換ブロック20Dに基づいて取得されたN×Nサンプルの第4の残差ブロック21Dの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することをさらに含む。
【0114】
一実施形態では、
図17のステップS62が、
図18に示されているように実行される。この方法は、
図18内のステップS61から継続する。次のステップS63は、2N×2Nサンプルの変換ブロック10に関連付けられた第1のフラグを、2N×2Nサンプルの変換ブロック10がN×Nサンプルの4つの変換ブロック20A〜20Dに分割されることを示す値にセットすることを含む。この方法は、S64で、2N×2Nサンプルの変換ブロック10に関連付けられた第2のフラグを、変換係数を2N×2Nブロックレベルに使用できることを示す値にセットすることも含む。
【0115】
この実施形態では、提供される情報が第1および第2のフラグを含む。
【0116】
別の実施形態では、この変更は、好ましくは、第2の変換ブロック20に基づいて取得された第2の残差ブロック21の再構成済みバージョンの下位部分22内の各再構成済み予測誤差値を変更することを含む(
図16Cを参照)。この変更は、第2の残差ブロック21の再構成済みバージョンの各再構成済み予測誤差値を、第1の変換ブロック10に基づいて取得された第1の残差ブロック11の再構成済みバージョンの各再構成済み予測誤差値に、サンプルごとに追加することも含む。
【0117】
一実施形態では、各再構成済み予測誤差値を変更することが、第2の残差ブロック21の再構成済みバージョンの下位部分22内の各再構成済み予測誤差値をゼロに設定することを含む。
【0118】
別の実施形態では、各再構成済み予測誤差値を変更することが、第2の残差ブロック21の再構成済みバージョンの下位部分22内の各再構成済み予測誤差値に、それぞれの重みを掛けることを含む。
【0119】
オプションの実施形態では、
図17のステップS62が、
図19に示されているように実行される。この方法は、
図17内のステップS61から継続する。次のステップS65は、第2の変換ブロック20に関連付けられた少なくとも1つのフラグを、第2の残差ブロック21の再構成済みバージョン内の下位部分22の位置を示す各値にセットすることを含む。
【0120】
この実施形態では、提供される情報が少なくとも1つのフラグを含む。
【0121】
さらに別の実施形態では、ステップS60は、第1の残差ブロック11を、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの第1の変換ブロック10に変換することを含む。この実施形態では、ステップS61は、第2の残差ブロック21を、それぞれの高周波数変換係数を持っているサンプルの第2の変換ブロック20に変換することを含む。
【0122】
別の実施形態では、
図17のステップS62は、変換ブロックを、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの第1の変換ブロック10およびそれぞれの高周波数変換係数を持っているサンプルの第2の変換ブロック20に分割するための情報をデコーダに提供することを含む。変換ブロックの分割は、変換ブロックのそれぞれのゼロ周波数変換係数および低周波数変換係数を第1の変換ブロック10内のゼロ周波数および低周波数のサンプル位置にコピーし、第1の変換ブロック10内の残りのサンプル位置をゼロにセットすることによって実行される。この分割は、変換ブロックの各高周波数変換係数を第2の変換ブロック20内の高周波数のサンプル位置にコピーし、第2の変換ブロック20内の残りのサンプル位置をゼロにセットすることも含む。この実施形態では、この変更は、好ましくは、第2の変換ブロック20に基づいて取得されたサンプルの第2の残差ブロック21の再構成済みバージョンの下位部分22内の各再構成済み予測誤差値を変更することを含む。この変更は、第2の残差ブロック21の再構成済みバージョンの各再構成済み予測誤差値を、第1の変換ブロックに基づいて取得された第1の残差ブロック11の再構成済みバージョンの各再構成済み予測誤差値に、サンプルごとに追加することも含む。
【0123】
下位部分22内の再構成済み予測誤差値に対する変更は、本明細書において前述されたように、ゼロに設定すること、あるいはそれぞれの重みまたはスケーリング係数を掛けることなどによって実行され得る。
【0124】
この実施形態では、提供される情報が分割情報を含み、好ましくは、第2の残差ブロック21内の下位部分22の位置の情報を含む。
【0125】
第2の変換ブロック20が、主に残差ブロックの一部に含まれる高周波数の誤差を削減するために採用される場合、そのような第2の変換ブロック20を(第1の)変換ブロックと一緒に使用することは、変換ブロック内の高周波数係数の存在に対して条件付けられる。そのような高周波数係数が変換ブロックに存在しない場合、第2の変換ブロック20は必要とされない。これによって、変換ブロックがいくつかの低周波数係数のみを含む場合に、余分なオーバーヘッドをなくすことができる。
【0126】
図20は、変換ブロックのエンコーディングの方法の別の実施形態を示している(
図16Dも参照)。この方法は、ステップS70で、それぞれの予測誤差値を持っているサンプルの残差ブロック11を、それぞれの変換係数を持っているサンプルの変換ブロック10に変換することを含む。この方法は、ステップS71で、それぞれの予測誤差値を持っているサンプルの変換スキップブロック25を提供することも含む。変換スキップブロック25は、サンプルの数に関して、残差ブロック11と比べて小さいサイズを持っている。次のステップS72は、変換スキップブロック25の各予測誤差値によって、変換ブロック10に基づいて取得された残差ブロック11の再構成済みバージョンの下位部分内12のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供することを含む。この変更は、残差ブロック11の再構成済みバージョンの下位部分12内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロック11の再構成済みバージョンの残りの部分内の再構成済み予測誤差値には影響を与えない。
【0127】
この変更は、本明細書において前述されたように、追加または置換の形態であることができる。
【0128】
本明細書において前述されたように、変換符号化時に、量子化された変換係数を取得するために、変換ブロックの変換係数が量子化される。この実施形態では、残差ブロックの再構成済みバージョンは、量子化された変換係数を逆量子化して、変換係数の再構成済みバージョン(変換ブロックの再構成済みバージョン)を取得することによって、変換ブロックに基づいて取得される。次に、残差ブロックの再構成済みバージョンを取得するために、変換係数の再構成済みバージョンが逆変換される。
【0129】
説明された一部の実施形態では、複数の変換ブロックまたは1つの変換ブロックおよび1つの変換スキップブロックが使用される。そのような場合、異なる量子化パラメータ(QP)が、異なる変換ブロックの量子化および逆量子化の間に使用され得る。同じQPを使用することも可能である。
【0130】
従来技術においてよく知られているように、ビデオストリーム内の画像またはフレームのサンプルは、通常はサンプルの色を表すサンプル値を含む。色は、多くの場合、複数(3つなど)の色成分によって表される。さまざまな色形式が従来技術において知られており、ビデオ符号化時に使用され得る。例えば、色は、輝度値および2つのクロミナンス値の形態でのトリプレットによって、または赤色値、緑色値、および青色値の形態でのトリプレットによって表され得る。したがって、本明細書に記載された予測誤差値および再構成済み予測誤差値は、そのような色成分の予測誤差値(例えば、輝度成分の予測誤差値またはクロミナンス成分の予測誤差値)を表すことができる。
【0131】
実施形態の特徴は、変換が残差の符号化に使用された残差ブロックの空間的に局在する部分を、イントラ/インター予測に追加される前に改善することである。符号化された残差が存在する場合(例えば、対応する符号化ブロックフラグ(cbf)がゼロ以外である場合)、空間的に局在する変更が使用されるのか、または使用されないのかを示す指標が提供され得る。変更されるべき部分および変更方法の指示は、明示的にシグナリングされるか、またはイントラ/インター予測、ブロックサイズ、またはその他の既知のデータから暗黙的に導出され得る。
【0132】
残差ブロックの空間的に局在する部分を改善することによって、変換符号化からの視覚的アーチファクトが、イントラ/インター予測に追加される前に削減され得る。これは、例えば、高周波数を含んでいる大きいブロックを符号化してから、残差ブロックの部分の高周波数を削除することによって行われるか、あるいは高周波数がほとんどないか、または存在しない大きいブロックを符号化し、残差ブロックの部分のより小さい変換を符号化して高周波数をそこに追加することによって行われる。
【0133】
本明細書において説明された変更は、符号化された残差を含んでいる残差ブロックにおいて使用されることが選択され得る。残差ブロックは、元のサンプル値のブロックとイントラ/インター予測されたサンプル値のブロックとの間の差である。残差ブロックは、予測誤差とも呼ばれる。次にエンコーダは、通常、変換を適用することによって残差ブロックを符号化し、変換係数を量子化してから、量子化された変換係数をエントロピーエンコードする。すべての量子化された変換係数が0に等しい場合、変換ブロックは符号化された残差を含まず、変更は使用されない。その後、符号化されたビットストリームは、エンコードされたビットストリームをデコードするデコーダに格納または送信される。残差デコーディング処理は、量子化された変換係数をエントロピーデコードして逆量子化し、逆変換を適用して、デコードされた残差サンプルを導出することを含む。エンコーダは、デコードされた残差サンプルのバージョンも生成する。次に、デコードされた残差サンプルがイントラ/インター予測されたサンプルに追加される。残差またはデコードされた残差は、変換ドメイン内に存在する変換係数または量子化された変換係数とは対照的に、サンプルドメイン内に存在する。
【0134】
基本的な考え方は、変換ブロックの変換基底関数の一部または全部が、変換ブロックの多くの部分内の残差を非常によく表すことができるが、変換基底関数の一部が、例えば変換係数の量子化に起因して、デコードされた残差の一部に対して悪影響を与えるということである。この悪影響は、イントラ/インター予測が追加された後にも表れる、デコードされた残差ブロック内の変換パターンとして示され得る。したがって、デコードされた残差ブロックの局在する部分を変更することによって、さらに良い再構成が実現され得る。
【0135】
以降では、さまざまな例について簡単に説明する。
【0136】
例1
変換Tによって導出された(デコードされた)残差ブロックの局在する変更の一例は、残差ブロックの局在する下位部分に対する変換Tの1つまたは複数の基底関数からの寄与を含めないことである。この重要なケースは、DCおよび1次の変化(傾斜)を可能にするが、より波様の外観(すなわち、さらに高次の変化)を持つ変換基底関数からの寄与を含めない。したがって、ある程度の滑らかな変化のみを必要とする領域内で、量子化からのアーチファクトが回避され得る。例えばこれは、残差ブロックの局在する下位部分に対して、含まれるべきではない変換基底関数からの寄与をゼロに設定すること、または含まれるべきではない変換基底関数の変換係数をゼロに設定することによって、実装され得る。また、一部のデコードされた残差サンプルの大きさを、例えばサンプルごとに、サンプルにスケーリング係数を掛けることによって単に縮小することが、緩和的になり得る。どのような大きさの変更も有しない残りの部分と、大きさを縮小した下位部分との間の不連続性を防ぐために、スケーリングは、1に対応するスケーリング係数(つまり、大きさを縮小しない)と実際のスケーリング係数に対応する値の間で変化することができる。例えば、残差ブロックの局在する下位部分に対する1つまたは複数の変換基底関数からの寄与を完全に除去するための実際のスケーリング係数の標準値は、0である。
【0137】
例2
変換Tによって導出された(デコードされた)残差ブロックの局在する変更の別の例は、より小さい変換Tnからの寄与を、変換Tの悪影響が存在する変換Tの残差ブロックの下位部分に含めることである。その場合、残差のより良い表現が実現され得る。その場合の変更は、残差ブロックの下位部分内の変換Tからの寄与を完全に置換するか、または変換Tの一部の変換基底関数の寄与への追加であることができる。より小さい変換Tnは、別の量子化パラメータ(QP)(例えば、変換Tよりも小さいQP)を持つことができ、またはより小さい変換は、変換Tと同じQPを使用することができる。
【0138】
例3
変換Tによって導出された(デコードされた)残差ブロックの局在する変更の別の例は、非変換TS(HEVCの用語では、変換スキップ)から残差ブロックの下位部分への寄与を含めることであり、このTSは、Tのデコードされた残差への追加であるか、またはTのデコードされた残差サンプルを置換する。この置換は、TSのゼロ以外のサンプルのためであることができる。非変換TSは、別のQP(例えば、変換Tよりも小さいQP)を持つことができ、またはTSは、変換Tと同じQPを使用することができる。
【0139】
例4
成分間予測では、クロミナンス(クロマ)の残差が、輝度(ルマ)からの残差から予測される。また最近は、第2のクロマ成分の残差が、第1のクロマ成分から予測されている。すべてのルマの残差を使用するのではなく、ルマ変換の1つまたは複数の変換基底関数からの予測を制限するための実施形態が使用され得る。これは、思想において例1に類似している。
【0140】
例5
変換Tによって導出された(デコードされた)残差ブロックの局在する変更が符号化ビデオビットストリームに明示的に含まれる場合、標準的なアプローチは、現在使用されている変換Tをカバーする変換ブロックにルートがある四分木によって選択を規定することである。adjustTransformFlagRootが1にセットされた場合、このアプローチが使用され、現在の変換ブロックが4つの葉に分割されることを意味し、各葉は、各葉がさらに分割されるべきであるかどうかを示すsplitAdjustTransformFlagを持つ(ただし、葉が可能な最小のブロックサイズを持っていて、それ以上の分割が不可能である場合を除く)。それ以上の分割が実行されない場合、対応する葉は、このアプローチが使用されるのか、それとも使用されないのかを示すadjustTransformFlagLeafを持つ。adjustTransformFlagRootフラグ(および、調整が使用される場合はadjustTransformFlagLeafフラグ)は、変換ブロックにゼロ以外の変換係数が存在する場合にのみ、符号化ビデオビットストリーム内で提供される。adjustTransformFlagLeafの意味は、変換基底関数の一部からの寄与が変換ブロックのその部分に関して含められないという最も単純な形態(例1)にある。局在の別の意味は、このフラグがセットされたときに、より大きい変換の代わりに、別のより小さい変換を適用し、その変換からの寄与をより大きい変換の寄与に追加すること、またはその変換からの寄与がより大きい変換の寄与を置換することである(例2)。局在のさらに別の意味は、このフラグがセットされたときに、大きい変換に加えて、非変換を適用することである(例3)。非変換からの残差が大きい変換の残差に追加されるか、またはゼロ以外の係数を持つサンプルが大きい変換の残差を置換する。
【0141】
例6
変換Tによって導出された(デコードされた)残差ブロックの局在する変更が、イントラ/インター予測に基づいて暗黙的である場合、最大サンプル値と最小サンプル値の間の変動が小さいサンプル(例えば、相対的に滑らかな領域(傾斜した平面であることもできる))に対して局在が決定される。エッジの位置が不正である変換ブロックがイントラ/インター予測の補正を含んでいる場合、そのようなサンプルは、より大きい範囲まで、変換によって符号化された残差による悪い微調整の影響を受ける。局在は、サンプルまたはブロックに基づくことができる。その場合、局在するサンプルが、例1〜3のうちのいずれかと一緒に使用され得る。
【0142】
実施形態の別の態様は、変換のデコーディングのためのデバイスに関連する。このデバイスは、それぞれの変換係数を持っているサンプルの変換ブロックを逆変換することによって取得されたサンプルの残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように設定される。このデバイスによって実行される変更は、残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0143】
実施形態のさらに別の態様は、変換のデコーディングのためのデバイスに関連する。このデバイスは、それぞれの変換係数を持っているサンプルの第1の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第1の残差ブロックを取得するように設定される。このデバイスは、それぞれの変換係数を持っているサンプルの第2の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第2の残差ブロックを取得するようにも設定される。このデバイスは、第2の残差ブロックの各再構成済み予測誤差値によって、第1の残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するようにさらに設定される。このデバイスによって実行される変更は、第1の残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0144】
一実施形態では、第2の残差ブロックが、サンプルの数に関して、第1の残差ブロックと比べて小さいサイズを持ち、第2の残差ブロックは第1の残差ブロックの下位部分に対応する。このデバイスは、第2の残差ブロックの各再構成済み予測誤差値によって、第1の残差ブロックの下位部分の各再構成済み予測誤差値をサンプルごとに変更するようにさらに設定される。
【0145】
特定の実施形態では、このデバイスは、第2の残差ブロックの各再構成済み予測誤差値を、第1の残差ブロックの下位部分の各再構成済み予測誤差値にサンプルごとに追加するように設定される。
【0146】
別の特定の実施形態では、このデバイスは、第2の残差ブロックの各再構成済み予測誤差値によって、第1の残差ブロックの下位部分のサンプルのそれぞれの再構成済み予測誤差値をサンプルごとに置換するように設定される。
【0147】
一実施形態では、このデバイスは、各変換係数を持っている2N×2Nサンプルの変換ブロックを逆変換して、各再構成済み予測誤差値を持っている2N×2Nサンプルの残差ブロックを取得するように設定される。このデバイスは、各変換係数を持っているN×Nサンプルの少なくとも1つの変換ブロックを逆変換して、各再構成済み予測誤差値を持っているN×Nサンプルの少なくとも1つの残差ブロックを取得するようにも設定される。N×Nサンプルの少なくとも1つの残差ブロックのうちの各残差ブロックは、2N×2Nサンプルの残差ブロックの各下位部分に対応する。このデバイスは、2N×2Nサンプルの残差ブロックの各下位部分の各再構成済み予測誤差値を、N×Nサンプルの残差ブロックの各再構成済み予測誤差値によって、サンプルごとに、かつN×Nサンプルの少なくとも1つの残差ブロックのうちの残差ブロックごとに、変更するようにさらに設定される。
【0148】
特定の実施形態では、このデバイスは、2N×2Nサンプルの変換ブロックに関連付けられた少なくとも1つのフラグが、変換係数を2N×2N変換ブロックレベルに使用できることを示す値を持っている場合に、N×Nサンプルの少なくとも1つの変換ブロックの逆変換、および各再構成済み予測誤差値の変更を実行するように設定される。
【0149】
一実施形態では、このデバイスは、各変換係数を持っている2N×2Nサンプルの変換ブロックを逆変換して、各再構成済み予測誤差値を持っている2N×2Nサンプルの残差ブロックを取得するように設定される。このデバイスは、各変換係数を持っているN×Nサンプルの4つの変換ブロックを逆変換して、各再構成済み予測誤差値を持っているN×Nサンプルの4つの残差ブロックを取得するようにも設定される。N×Nサンプルの4つの残差ブロックのうちの各残差ブロックは、2N×2Nサンプルの残差ブロックの各下位部分に対応する。このデバイスは、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第1の残差ブロックの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロックの第1の下位部分の各再構成済み予測誤差値を、サンプルごとに変更するようにさらに設定される。このデバイスは、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第2の残差ブロックの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロックの第2の下位部分の各再構成済み予測誤差値を、サンプルごとに変更するようにさらに設定される。さらに、このデバイスは、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第3の残差ブロックの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロックの第3の下位部分の各再構成済み予測誤差値を、サンプルごとに変更するように設定される。このデバイスは、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第4の残差ブロックの各再構成済み予測誤差値によって、2N×2Nサンプルの残差ブロックの第4の下位部分の各再構成済み予測誤差値を、サンプルごとに変更するようにも設定される。
【0150】
特定の実施形態では、このデバイスは、2N×2Nサンプルの変換ブロックに関連付けられた第1のフラグが、2N×2Nサンプルの変換ブロックがN×Nサンプルの4つの変換ブロックに分割されることを示す値を持っている場合、および2N×2Nサンプルの変換ブロックに関連付けられた第2のフラグが、変換係数を2N×2N変換ブロックレベルに使用できることを示す値を持っている場合に、2N×2Nサンプルの変換ブロックの逆変換、N×Nサンプルの4つの変換ブロックの逆変換、および各再構成済み予測誤差値の変更を実行するように設定される。
【0151】
一実施形態では、このデバイスは、それぞれの変換係数を持っているサンプルの第1の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第1の残差ブロックを取得するように設定される。このデバイスは、それぞれの変換係数を持っているサンプルの第2の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第2の残差ブロックを取得するようにも設定される。このデバイスは、第2の残差ブロックの下位部分内の各再構成済み予測誤差値を変更するようにさらに設定される。このデバイスは、第2の残差ブロックの各再構成済み予測誤差値を、第1の残差ブロックの各再構成済み予測誤差値に、サンプルごとに追加するようにさらに設定される。
【0152】
特定の実施形態では、このデバイスは、第2の残差ブロックの下位部分内の各再構成済み予測誤差値をゼロに設定するように設定される。
【0153】
別の特定の実施形態では、このデバイスは、第2の残差ブロックの下位部分内の各再構成済み予測誤差値にそれぞれの重みを掛けるように設定される。
【0154】
さらに別の特定の実施形態では、このデバイスは、第2の変換ブロックに関連付けられた少なくとも1つのフラグの各値に基づいて、第2の残差ブロックの下位部分を識別するように設定される。
【0155】
一実施形態では、このデバイスは、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの第1の変換ブロックを逆変換して、第1の残差ブロックを取得するように設定される。このデバイスは、それぞれの高周波数変換係数を持っているサンプルの第2の変換ブロックを逆変換して、第2の残差ブロックを取得するようにも設定される。
【0156】
特定の実施形態では、このデバイスは、変換ブロックのそれぞれのゼロ周波数変換係数および低周波数変換係数を第1の変換ブロック内のゼロ周波数および低周波数のサンプル位置にコピーすることによって、変換ブロックを第1の変換ブロックおよび第2の変換ブロックに分割するように設定される。このデバイスは、第1の変換ブロック内の残りのサンプル位置をゼロにセットするようにも設定される。このデバイスは、変換ブロックの各高周波数変換係数を第2の変換ブロック内の高周波数のサンプル位置にコピーし、第2の変換ブロック内の残りのサンプル位置をゼロにセットするように、さらに設定される。
【0157】
実施形態のさらに別の態様は、変換ブロックのデコーディングのためのデバイスに関連する。このデバイスは、それぞれの変換係数を持っているサンプルの変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの残差ブロックを取得するように設定される。このデバイスは、それぞれの予測誤差値を持っているサンプルの変換スキップブロックを提供するようにも設定される。変換スキップブロックは、サンプルの数に関して、残差ブロックと比べて小さいサイズを持っている。このデバイスは、変換スキップブロックの各予測誤差値によって、残差ブロックの下位部分内の各再構成済み予測誤差値をサンプルごとに変更するようにさらに設定される。
【0158】
特定の実施形態では、このデバイスは、変換スキップブロックの各予測誤差値を、残差ブロックの下位部分の各再構成済み予測誤差値にサンプルごとに追加するように設定される。
【0159】
別の特定の実施形態では、このデバイスは、変換スキップブロックの各予測誤差値によって、残差ブロックの下位部分の各再構成済み予測誤差値をサンプルごとに置換するように設定される。
【0160】
実施形態のさらに別の態様は、変換ブロックのエンコーディングのためのデバイスを規定する。このデバイスは、それぞれの予測誤差値を持っているサンプルの残差ブロックを、それぞれの変換係数を持っているサンプルの変換ブロックに変換するように設定される。このデバイスは、変換ブロックに基づいて取得された残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供するようにも設定される。この変更は、残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0161】
実施形態のさらに別の態様は、変換ブロックのエンコーディングのためのデバイスを規定する。このデバイスは、それぞれの予測誤差値を持っているサンプルの第1の残差ブロックを、それぞれの変換係数を持っているサンプルの第1の変換ブロックに変換するように設定される。このデバイスは、それぞれの予測誤差値を持っているサンプルの第2の残差ブロックを、それぞれの変換係数を持っているサンプルの第2の変換ブロックに変換するようにも設定される。このデバイスは、第2の変換ブロックに基づいて取得された第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供するようにさらに設定される。この変更は、第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0162】
一実施形態では、第2の残差ブロックが、サンプルの数に関して、第1の残差ブロックと比べて小さいサイズを持ち、第2の残差ブロックは第1の残差ブロックの下位部分に対応する。この変更は、第2の変換ブロックに基づいて取得された第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの下位部分の各再構成済み予測誤差値をサンプルごとに変更することを含む。
【0163】
一実施形態では、このデバイスは、各予測誤差値を持っている2N×2Nサンプルの残差ブロックを変換して、各変換係数を持っている2N×2Nサンプルの変換ブロックを取得するように設定される。このデバイスは、各予測誤差値を持っているN×Nサンプルの少なくとも1つの残差ブロックを変換して、各変換係数を持っているN×Nサンプルの少なくとも1つの変換ブロックを取得するようにも設定される。N×Nサンプルの少なくとも1つの残差ブロックのうちの各残差ブロックは、2N×2Nサンプルの残差ブロックの各下位部分に対応する。この変更は、2N×2Nサンプルの変換ブロックに基づいて取得された2N×2Nサンプルの残差ブロックの再構成済みバージョンの各下位部分の各再構成済み予測誤差値を、N×Nサンプルの変換ブロックに基づいて取得されたN×Nサンプルの残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに、かつN×Nサンプルの少なくとも1つの変換ブロックのうちの変換ブロックごとに変更することを含む。
【0164】
特定の実施形態では、このデバイスは、2N×2Nサンプルの変換ブロックに関連付けられた少なくとも1つのフラグを、変換係数を2N×2N変換ブロックレベルに使用できることを示す値にセットするように設定される。
【0165】
一実施形態では、このデバイスは、各予測誤差値を持っている2N×2Nサンプルの残差ブロックを変換して、各変換係数を持っている2N×2Nサンプルの変換ブロックを取得するように設定される。このデバイスは、各予測誤差値を持っているN×Nサンプルの4つの残差ブロックを変換して、各変換係数を持っているN×Nサンプルの4つの変換ブロックを取得するようにも設定される。N×Nサンプルの4つの残差ブロックのうちの各残差ブロックは、2N×2Nサンプルの残差ブロックの各下位部分に対応する。この変更は、好ましくは、2N×2Nサンプルの変換ブロックに基づいて取得された2N×2Nサンプルの残差ブロックの再構成済みバージョンの第1の下位部分の各再構成済み予測誤差値を、N×Nサンプルの4つの変換ブロックのうちのN×Nサンプルの第1の変換ブロックに基づいて取得されたN×Nサンプルの第1の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することを含む。この変更は、2N×2Nサンプルの残差ブロックの再構成済みバージョンの第2の下位部分の各再構成済み予測誤差値を、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第2の変換ブロックに基づいて取得されたN×Nサンプルの第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することも含む。この変更は、2N×2Nサンプルの残差ブロックの再構成済みバージョンの第3の下位部分の各再構成済み予測誤差値を、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第3の変換ブロックに基づいて取得されたN×Nサンプルの第3の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することをさらに含む。この変更は、2N×2Nサンプルの残差ブロックの再構成済みバージョンの第4の下位部分の各再構成済み予測誤差値を、N×Nサンプルの4つの残差ブロックのうちのN×Nサンプルの第4の変換ブロックに基づいて取得されたN×Nサンプルの第4の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、サンプルごとに変更することをさらに含む。
【0166】
特定の実施形態では、このデバイスは、2N×2Nサンプルの変換ブロックに関連付けられた第1のフラグを、2N×2Nサンプルの変換ブロックがN×Nサンプルの4つの変換ブロックに分割されることを示す値にセットするように設定される。このデバイスは、2N×2Nサンプルの変換ブロックに関連付けられた第2のフラグを、変換係数を2N×2N変換ブロックレベルに使用できることを示す値にセットするようにも設定される。
【0167】
一実施形態では、このデバイスは、それぞれの予測誤差値を持っているサンプルの第1の残差ブロックを、それぞれの変換係数を持っているサンプルの第1の変換ブロックに変換するように設定される。このデバイスは、それぞれの予測誤差値を持っているサンプルの第2の残差ブロックを、それぞれの変換係数を持っているサンプルの第2の変換ブロックに変換するようにも設定される。この変更は、好ましくは、第2の変換ブロックに基づいて取得された第2の残差ブロックの再構成済みバージョンの下位部分内の各再構成済み予測誤差値を変更することを含む。この変更は、第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値を、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値に、サンプルごとに追加することも含む。
【0168】
特定の実施形態では、この変更は、第2の残差ブロックの再構成済みバージョンの下位部分内の各再構成済み予測誤差値をゼロに設定することを含む。
【0169】
別の特定の実施形態では、この変更は、第2の残差ブロックの再構成済みバージョンの下位部分内の各再構成済み予測誤差値にそれぞれの重みを掛けることを含む。
【0170】
さらに別の特定の実施形態では、このデバイスは、第2の変換ブロックに関連付けられた少なくとも1つのフラグを、第2の残差ブロックの再構成済みバージョン内の下位部分の位置を示す各値にセットするように設定される。
【0171】
一実施形態では、このデバイスは、第1の残差ブロックをそれぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの第1の変換ブロックに変換するように設定される。このデバイスは、第2の残差ブロックをそれぞれの高周波数変換係数を持っているサンプルの第2の変換ブロックに変換して、第2の残差ブロックを取得するようにも設定される。
【0172】
一実施形態では、このデバイスは、変換ブロックを、それぞれのゼロ周波数変換係数または低周波数変換係数を持っているサンプルの第1の変換ブロックおよびそれぞれの高周波数変換係数を持っているサンプルの第2の変換ブロックに分割するようにデコーダに指示する情報を提供するように設定される。この分割は、好ましくは、変換ブロックのそれぞれのゼロ周波数変換係数および低周波数変換係数を第1の変換ブロック内のゼロ周波数および低周波数のサンプル位置にコピーし、第1の変換ブロック内の残りのサンプル位置をゼロにセットすることを含む。この分割は、変換ブロックの各高周波数変換係数を第2の変換ブロック内の高周波数のサンプル位置にコピーし、第2の変換ブロック内の残りのサンプル位置をゼロにセットすることも含む。この変更は、好ましくは、第2の変換ブロックに基づいて取得されたサンプルの第2の残差ブロックの再構成済みバージョンの下位部分内の各予測誤差値を変更することを含む。この変更は、第2の残差ブロックの再構成済みバージョンの各予測誤差値を、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの各予測誤差値に、サンプルごとに追加することも含む。
【0173】
実施形態のさらに別の態様は、変換ブロックのエンコーディングのためのデバイスを規定する。このデバイスは、それぞれの予測誤差値を持っているサンプルの残差ブロックを、それぞれの変換係数を持っているサンプルの変換ブロックに変換するように設定される。このデバイスは、それぞれの予測誤差値を持っているサンプルの変換スキップブロックを提供するようにも設定される。この実施形態では、変換スキップブロックは、サンプルの数に関して、残差ブロックと比べて小さいサイズを持っている。このデバイスは、変換スキップブロックの各予測誤差値によって、変換ブロックに基づいて取得された残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値をサンプルごとに変更するように、デコーダに指示する情報を提供するようにさらに設定される。この変更は、残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0174】
一実施形態では、このデバイスは、変換ブロックの変換係数を量子化して量子化された変換係数を取得するように設定される。このデバイスは、量子化された変換係数をエンコードして、エンコードされて量子化された変換係数を取得するようにも設定される。残差ブロックの再構成済みバージョンは、エンコードされて量子化された変換係数をデコードして、量子化された変換係数の再構成済みバージョンを取得することによって、変換ブロックに基づいて取得される。次に、変換係数の再構成済みバージョンを取得するために、量子化された変換係数の再構成済みバージョンが逆量子化される。残差ブロックの再構成済みバージョンを取得するために、変換係数の再構成済みバージョンが逆変換される。
【0175】
本明細書に記載された方法およびデバイスが、さまざまな方法で組み合わせられて、並べ替えられることが可能であるということが理解されるであろう。
【0176】
例えば、各実施形態は、ハードウェア、または適切な処理回路によって実行するためのソフトウェア、あるいはこれらの組み合わせにおいて実装されてよい。
【0177】
本明細書に記載されたステップ、機能、手順、モジュール、および/またはブロックは、汎用電子回路および特定用途向け回路の両方を含む個別の回路技術または集積回路技術などの、任意の従来技術を使用してハードウェアにおいて実装されてよい。
【0178】
図21は、変換ブロックのデコーディングのためのデバイス100の特定のハードウェア実装を示している。
図22は、変換ブロックのエンコーディングのためのデバイス200の対応するハードウェア実装を示している。適切なハードウェア回路の具体的な例は、1つまたは複数の適切に設定されたか、または場合によっては再設定可能な電子回路(例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは適切なレジスタ(REG)および/またはメモリユニット(MEM)に関連して特殊な機能を実行するために相互接続された個別の論理ゲートおよび/またはフリップフロップに基づく回路などの任意のその他のハードウェア論理)を含む。
【0179】
あるいは、本明細書に記載されたステップ、機能、手順、モジュール、および/またはブロックのうちの少なくとも一部は、1つまたは複数のプロセッサまたは処理ユニットなどの適切な処理回路によって実行するための、コンピュータプログラムなどのソフトウェアにおいて実装されてよい。
【0180】
処理回路の例は、1つまたは複数のマイクロプロセッサ、1つまたは複数のデジタル信号プロセッサ(DSP)、1つまたは複数の中央処理装置(CPU)、ビデオアクセラレーションハードウェア、ならびに/あるいは1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)または1つまたは複数のプログラマブルロジックコントローラ(PLC)などの任意の適切なプログラマブルロジック回路を含むが、これらに限定されない。
【0181】
提案された技術が実装された任意の従来のデバイス、ユニット、システム、または配置の一般的な処理能力を再利用することが可能であってよいということも理解されるべきである。例えば既存のソフトウェアの再プログラミングによって、または新しいソフトウェアコンポーネントを追加することによって、既存のソフトウェアを再利用することが可能であってもよい。
【0182】
具体的な例では、変換ブロックのデコーディングのためのデバイス110(
図23を参照)は、プロセッサ111およびプロセッサ111によって実行可能な命令を含んでいるメモリ112を備える。
【0183】
一実施形態では、プロセッサ111は、第1の変換ブロックおよび第2の変換ブロックを逆変換するよう機能する。プロセッサ111は、第2の残差ブロックの各再構成済み予測誤差値によって、第1の残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するようにも機能する。
【0184】
別の実施形態では、プロセッサ111は、変換ブロックを逆変換するよう機能する。プロセッサ111は、変換スキップブロックを提供するようにも機能する。プロセッサ111は、変換スキップブロックの各予測誤差値によって、残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するようにさらに機能する。
【0185】
デバイス110は、必要に応じて、レシーバ113およびトランスミッタ114も備える。レシーバ113およびトランスミッタ114は、無線通信用のレシーバとトランスミッタのペアとして、または一般的なトランシーバとして実装され得る。あるいは、これらは、有線通信を実施するための入力ポートおよび出力ポートの形態であることができる。
【0186】
レシーバ113は、好ましくは、エンコード済みビデオデータおよび具体的には変換係数を受信するように設定される。トランスミッタ114は、好ましくは、デコード済みビデオデータおよび具体的には再構成済み予測誤差値を送信するように設定される。
【0187】
変換ブロックのエンコーディングのためにデバイス210が、
図24に示されている。このデバイス210は、プロセッサ211およびプロセッサ211によって実行可能な命令を含んでいるメモリ212を備える。
【0188】
一実施形態では、プロセッサ211は、第1の残差ブロックおよび第2の残差ブロックを第1の変換ブロックおよび第2の変換ブロックに変換するよう機能する。プロセッサ211は、第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供するようにも機能する。
【0189】
別の実施形態では、プロセッサ211は、残差ブロックを変換ブロックに変換するよう機能する。プロセッサ211は、変換スキップブロックを提供するようにも機能する。プロセッサ211は、変換スキップブロックの各予測誤差値によって、変換ブロックに基づいて取得された残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供するようにさらに機能する。
【0190】
デバイス120は、必要に応じて、レシーバ213およびトランスミッタ214も備える。レシーバ213およびトランスミッタ214は、無線通信用のレシーバとトランスミッタのペアとして、または一般的なトランシーバとして実装され得る。あるいは、これらは、有線通信を実施するための入力ポートおよび出力ポートの形態であることができる。
【0191】
レシーバ213は、好ましくは、ビデオデータおよび具体的には予測誤差値を受信するように設定される。トランスミッタ214は、好ましくは、エンコード済みビデオデータおよび具体的には変換係数を送信するように設定される。
【0192】
図23および24を参照すると、特定の実施形態では、プロセッサ111、211は、メモリ112、212に格納された命令を実行したときに、前述された処理を実行するよう機能する。それによって、プロセッサ111、211はメモリ112、212に相互接続され、通常のソフトウェア実行を可能にする。
【0193】
図25は、プロセッサ310、関連するメモリ320、および通信回路330を備えるデバイス300の例を示す概略ブロック図である。
【0194】
この特定の例では、本明細書に記載されたステップ、機能、手順、モジュール、および/またはブロックのうちの少なくとも一部が、コンピュータプログラム340において実装され、コンピュータプログラム340は、1つまたは複数のプロセッサ310を含んでいる処理回路によって実行するために、メモリ320に読み込まれる。プロセッサ310およびメモリ320は、相互接続されて、通常のソフトウェア実行を可能にする。通信回路330もプロセッサ310および/またはメモリ320に相互接続され、無線接続または有線接続を可能にする。
【0195】
「プロセッサ」という用語は、特定の処理、決定、または計算作業を実行するためにプログラムコードまたはコンピュータプログラム命令を実行できる任意のシステムまたはデバイスとして、一般的な意味で解釈されるべきである。
【0196】
したがって、1つまたは複数のプロセッサを含んでいる処理回路は、コンピュータプログラムを実行した場合に、本明細書に記載された処理作業などの明確に規定された処理作業を実行するように設定される。
【0197】
処理回路は、前述したステップ、機能、手順、および/またはブロックを実行することのみに専念する必要はなく、他の作業を実行することもできる。
【0198】
一実施形態では、コンピュータプログラム340は命令を含み、これらの命令は、プロセッサ310によって実行された場合に、プロセッサ310に、それぞれの変換係数を持っているサンプルの第1の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第1の残差ブロックを取得することを実行させる。プロセッサ310は、それぞれの変換係数を持っているサンプルの第2の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第2の残差ブロックを取得することも引き起こされる。プロセッサ310は、第2の残差ブロックの各再構成済み予測誤差値によって、第1の残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更することをさらに引き起こされる。プロセッサ310によって実行される変更は、第1の残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0199】
一実施形態では、コンピュータプログラム340は命令を含み、これらの命令は、プロセッサ310によって実行された場合に、プロセッサ310に、それぞれの変換係数を持っているサンプルの変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの残差ブロックを取得することを実行させる。このプロセッサ310は、それぞれの予測誤差値を持っているサンプルの変換スキップブロックを提供することも引き起こされる。変換スキップブロックは、サンプルの数に関して、残差ブロックと比べて小さいサイズを持っている。プロセッサ310は、変換スキップブロックの各予測誤差値によって、残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値をサンプルごとに変更することをさらに引き起こされる。プロセッサ310によって実行される変更は、残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0200】
さらに別の実施形態では、コンピュータプログラム340は命令を含み、これらの命令は、プロセッサ310によって実行された場合に、プロセッサ310に、それぞれの予測誤差値を持っているサンプルの第1の残差ブロックを、それぞれの変換係数を持っているサンプルの第1の変換ブロックに変換することを実行させる。プロセッサ310は、それぞれの予測誤差値を持っているサンプルの第2の残差ブロックを、それぞれの変換係数を持っているサンプルの第2の変換ブロックに変換することも引き起こされる。プロセッサ310は、第2の変換ブロックに基づいて取得された第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供することも引き起こされる。プロセッサ310によって実行される変更は、第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0201】
さらに別の実施形態では、コンピュータプログラム340は命令を含み、これらの命令は、プロセッサ310によって実行された場合に、プロセッサ310に、それぞれの予測誤差値を持っているサンプルの残差ブロックを、それぞれの変換係数を持っているサンプルの変換ブロックに変換することを実行させる。このプロセッサ310は、それぞれの予測誤差値を持っているサンプルの変換スキップブロックを提供することも引き起こされる。変換スキップブロックは、サンプルの数に関して、残差ブロックと比べて小さいサイズを持っている。プロセッサ310は、変換スキップブロックの各予測誤差値によって、変換ブロックに基づいて取得された残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値をサンプルごとに変更するように、デコーダに指示する情報を提供することをさらに引き起こされる。プロセッサ310によって実行される変更は、残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0202】
提案された技術は、コンピュータプログラム340を含んでいるキャリア350も提供する。キャリア350は、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号、またはコンピュータ可読記憶媒体350のうちの1つである。
【0203】
例として、ソフトウェアまたはコンピュータプログラム340は、コンピュータ可読媒体350(好ましくは、不揮発性コンピュータ可読記憶媒体350)上で通常は搬送または格納されるコンピュータプログラム製品として実現されてよい。コンピュータ可読媒体350は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク、ユニバーサルシリアルバス(USB)メモリ、ハードディスクドライブ(HDD)ストレージデバイス、フラッシュメモリ、磁気テープ、または任意のその他の従来のメモリデバイスを含むがこれらに限定されない、1つまたは複数の取り外し可能または取り外し不能なメモリデバイスを含んでよい。したがって、コンピュータプログラム340は、
図27のデバイス300によって表されたコンピュータまたは同等の処理デバイスのプロセッサ310によって実行するために、そのコンピュータまたは処理デバイスの動作中のメモリ320に読み込まれてよい。
【0204】
したがって、本明細書において提示されたフロー図は、1つまたは複数のプロセッサによって実行される場合、コンピュータフロー図と見なされてよい。対応するデバイスは、機能モジュールのグループとして規定されてよく、プロセッサによって実行される各ステップが機能モジュールに対応する。その場合、機能モジュールはプロセッサ上で実行されるコンピュータプログラムとして実装される。したがって、代わりにデバイスは、機能モジュールのグループとして規定されてよく、それらの機能モジュールは、少なくとも1つのプロセッサ上で実行されるコンピュータプログラムとして実装される。
【0205】
図26に示された例では、変換ブロックのデコーディングのためのデバイス120は、機能モジュールを使用して実装され得る。そのような場合、デバイス120は、それぞれの変換係数を持っているサンプルの第1の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第1の残差ブロックを取得するための逆変換ユニット121を備える。逆変換ユニット121は、それぞれの変換係数を持っているサンプルの第2の変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの第2の残差ブロックを取得するためにも存在する。デバイス120は、第2の残差ブロックの各再構成済み予測誤差値によって、サンプルの第1の残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するための変更ユニット122も備える。変更ユニット122によって実行される変更は、第1の残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0206】
別の例では、変換ブロックのデコーディングのためにデバイス120は、それぞれの変換係数を持っているサンプルの変換ブロックを逆変換して、それぞれの再構成済み予測誤差値を持っているサンプルの残差ブロックを取得するための逆変換ユニット121を備える。デバイス120は、それぞれの予測誤差値を持っているサンプルの変換スキップブロックの各予測誤差値によって、サンプルの残差ブロックの下位部分内のサンプルのそれぞれの再構成済み予測誤差値をサンプルごとに変更するための変更ユニット122も備える。変換スキップブロックは、サンプルの数に関して、残差ブロックと比べて小さいサイズを持っている。変更ユニット122によって実行される変更は、残差ブロックの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、残差ブロックの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0207】
図27に示されたさらに別の例では、変換ブロックのエンコーディングのためのデバイス220は、機能モジュールを使用して実装され得る。デバイス220は、好ましくは、それぞれの予測誤差値を持っているサンプルの第1の残差ブロックを、それぞれの変換係数を持っているサンプルの第1の変換ブロックに変換するための変換ユニット221を備える。変換ユニット221は、それぞれの予測誤差値を持っているサンプルの第2の残差ブロックを、それぞれの変換係数を持っているサンプルの第2の変換ブロックに変換するためにも存在する。デバイス220は、第2の変換ブロックに基づいて取得された第2の残差ブロックの再構成済みバージョンの各再構成済み予測誤差値によって、第1の変換ブロックに基づいて取得された第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値を変更するように、デコーダに指示する情報を提供するための提供ユニット222も備える。この変更は、第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0208】
さらに別の例では、変換ブロックのエンコーディングのためのデバイス220は、それぞれの予測誤差値を持っているサンプルの残差ブロックを、それぞれの変換係数を持っているサンプルの変換ブロックに変換するための変換ユニット221を備える。デバイス220は、それぞれの予測誤差値を持っているサンプルの変換スキップブロックを提供するための提供ユニット222も備える。変換スキップブロックは、サンプルの数に関して、残差ブロックと比べて小さいサイズを持っている。提供ユニット222は、変換スキップブロックの各予測誤差値によって、変換ブロックに基づいて取得された残差ブロックの再構成済みバージョンの下位部分内のサンプルのそれぞれの再構成済み予測誤差値をサンプルごとに変更するように、デコーダに指示する情報を提供するためにも存在する。この変更は、第1の残差ブロックの再構成済みバージョンの下位部分内のサンプルの再構成済み予測誤差値に影響を与えるが、第1の残差ブロックの再構成済みバージョンの残りの部分内のサンプルの再構成済み予測誤差値には影響を与えない。
【0209】
実施形態のさらに別の態様は、
図28に示されているように、デコーダ130に関連する。このデコーダは、本明細書に記載されているように、
図21、23、および26に示された変換ブロックのデコーディングのためのデバイス100、110、120を備える。
【0210】
デコーダ130は、好ましくは、ビデオストリームのエンコードされたビデオフレームまたは画像をデコードするように設定される。デコーダ130は、デコード済みまたは再構成済み予測誤差値を取得するために、予測誤差値の変換および変換係数の逆変換を使用する任意のビデオ符号化規格に準拠することができる。そのようなビデオ符号化規格の非限定的な例は、H.265およびH.266である。
【0211】
各実施形態は、
図28に示されたようなデコーダなどのデコーダ130を備えるユーザ機器140も包含する(
図29を参照)。ユーザ機器140は、符号化ビデオビットストリームをデコードしてデコードされたビデオデータを取得するように設定されたデコーダを持っている任意の機器またはデバイスであることができる。デコードされたビデオデータは、ほとんどの場合、ユーザ機器140の画面上に表示されるか、またはユーザ機器140に接続される。
【0212】
ユーザ機器140は、例えば、携帯電話、スマートフォン、コンピュータ、ラップトップ、タブレット、セットトップボックス、ビデオデコーディング能力を持つゲーム機、トランスコーダなどの形態であることができる。
【0213】
実施形態のさらに別の態様は、本明細書に記載されているように、
図22、24、および27に示された変換ブロックのエンコーディングのためのデバイス200、210、220を備えるエンコーダ230に関連する(
図30を参照)。
【0214】
エンコーダ230は、好ましくは、ビデオストリームのビデオフレームまたは画像を符号化ビデオビットストリームにエンコードするように設定される。エンコーダ230は、再構成済み予測誤差値を取得するために、予測誤差値の変換および変換係数の逆変換を使用する任意のビデオ符号化規格に準拠することができる。そのようなビデオ符号化規格の非限定的な例は、H.265およびH.266である。
【0215】
エンコーダ230は、ビデオストリームをエンコードする能力を持っているデバイスに含まれてよい。そのようなデバイスの非限定的な例は、ビデオカメラ、ビデオ作製デバイス、トランスコーダなどを含む。
【0216】
前述した実施形態は、本発明のいくつかの例であると理解されるべきである。本発明の範囲を逸脱することなく、実施形態に対してさまざまな変更、組み合わせ、および交換が行われてよいということが、当業者によって理解されるであろう。具体的には、技術的に可能な場合、さまざまな実施形態における異なる部分の解決策が、その他の設定で組み合わせられ得る。ただし、本発明の範囲は、添付された特許請求の範囲によって規定される。