本出願の実施形態は、復号効率を改善するためのビデオ復号方法およびビデオデコーダを提供する。
前述の、および他の目的は、独立請求項の主題によって達成される。他の実装形態は、従属請求項、明細書、および添付図面から明らかである。
第1の態様によれば、本発明はビデオ復号方法に関する。方法は、ビデオデコーダによって実行される。方法は、コーディングツリー分割情報を解析して現在のノードを取得することと、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することと、現在の量子化グループによってカバーされる領域における現在のCUのQP差分値を取得することと、現在のCUのQP差分値に基づき現在のCUの再構成されたピクチャを取得することとを含む。
本発明において提供されるビデオ復号方法によれば、現在の量子化グループによってカバーされる領域は、現在のノードの深さNに基づき決定されうることで、QPがCUと一致できることを確実にし、これにより1つのCUが2つの異なるQGに対応することを回避し、復号効率を改善できることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定すること、または、現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定することとを含む。Nが第1の閾値T1よりも大きいか、またはMが0よりも大きい場合、現在の量子化グループによってカバーされる領域は、現在のノードの第K層の四分木ノードによってカバーされる領域である。Kは、NとT1のうちの小さい方の値であり、第K層の四分木ノードは、現在のノードを含み、コーディングツリーユニットCTUから開始してK回の四分木分割の後に生成される四分木ノードである。
第K層の四分木ノードは、現在のノードの第(M+N-K)層の親ノードである。
QPカバレッジ範囲はCUに基づき決定され、これによりQP分割はより正確になりうること、および復号品質が改善され得ることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定することを含む。Nが第1の閾値T1以下であり、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
QPカバレッジ範囲はCUに基づき決定され、これによりQP分割はより正確になりうること、および復号品質が改善され得ることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの四分木深さNに基づき、現在の量子化グループによってカバーされる領域を決定すること、または現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定することを含む。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。あるいは、Nが第1の閾値T1未満である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
QPカバレッジ範囲はCUに基づき決定され、これによりQP分割はより正確になりうること、および復号品質が改善され得ることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定することを含む。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。あるいは、Nが第1の閾値T1未満であり、Mが第4の閾値T4以下である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
第1の態様によれば、方法の可能な一実装形態において、第4の閾値T4は、プリセットされた正の整数、たとえば、1、2、3、または4であってよい。
第1の態様によれば、方法の可能な一実装形態において、第4の閾値は、第1の閾値T1および現在のノードの四分木深さNに基づき決定されるものとしてよく、たとえば、T4=T1-Nであってよい。
QPカバレッジ範囲はCUに基づき決定され、これによりQP分割はより正確になりうること、および復号品質が改善され得ることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定することを含む。Nが第1の閾値T1以下であり、MがT1-N以下である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
QPカバレッジ範囲はCUに基づき決定され、これによりQP分割はより正確になりうること、および復号品質が改善され得ることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの深さNが第1の閾値T1より大きい場合に、現在のノードの第(N-T1)層の親ノードを取得することと、現在の量子化グループによってカバーされる領域が第(N-T1)層の親ノードによってカバーされる領域であると決定することとを含む。
QPカバレッジ範囲はCUに基づき決定され、これによりQP分割はより正確になりうること、および復号品質が改善され得ることがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの深さNが第1の閾値T1に等しい場合に、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域であると決定することを含む。
現在のノードの深さNが第1の閾値T1と直接的に比較され、それにより現在の量子化グループによってカバーされる領域を決定することがわかる。このようにして、復号速度が改善される。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さは、現在のノードのQT depthであるか、または現在のノードの深さは、現在のノードのQT depthと現在のノードのMTT depthとの和である。
異なる深度決定方式を使用することによって復号速度および復号品質との間のバランスをとることができ、これにより最終的な復号効率を改善できることがわかる。
第1の態様によれば、方法の可能な一実装形態において、第1の閾値T1は0、1、2、または3である。
第1の態様によれば、方法の可能な一実装形態において、方法は、現在のノードの分割モードを取得することをさらに含む。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの深さNが第2の閾値T2-1に等しく、現在のノードの分割モードが三元分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定すること、または現在のノードの深さNが第2の閾値T2に等しく、現在のノードの分割モードが二元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定すること、または現在のノードの深さが第2の閾値以下であり、現在ノードがもはや分割されない場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定することを含む。
異なる場合については、現在の量子化グループによってカバーされる領域を決定するために異なる方式が使用され、QG分割精度が改善されえ、それによって復号精度を改善することがわかる。
第1の態様によれば、方法の可能な一実装形態において、第2の閾値は2、3、4、6、8、または9である。
第1の態様によれば、方法の可能な一実装形態において、第2の閾値は、第1の閾値のX倍に設定されてよく、Xは1より大きい整数である。たとえば、Xは2、3、または4である。
第1の態様によれば、方法の可能な一実装形態において、方法は、現在のノードの分割モードを取得することをさらに含む。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在のノードの深さNが第3の閾値T3-1に等しく、現在のノードの分割モードが三元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定すること、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードの分割モードが二元分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定すること、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードがもはや分割されない場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定することを含む。
異なる場合については、現在の量子化グループによってカバーされる領域を決定するために異なる方式が使用され、QG分割精度が改善され、それによって復号精度を改善することができることがわかる。
第1の態様によれば、方法の可能な一実装形態において、第3の閾値は3または5である。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードのQT depthおよび現在のノードの二元深さDbに基づき決定される。
第1の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、計算式N=Dq*2+Dbを使用することによって決定され、Dqは現在のノードのQT depthである。
第1の態様によれば、方法の可能な一実装形態において、現在のノードがMTTルートノードである場合に、現在のノードの二元深さDbは0であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが二元分割モードで取得された子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された非中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+2である。
異なる場合については、深さを決定するために異なる方式が使用され、QG分割精度が改善されえ、それによって復号精度を改善することがわかる。
第1の態様によれば、方法の可能な一実装形態において、現在の量子化グループ内の残差を有する第1のCUのQP差分値が0に等しくない場合、現在の量子化グループ内の残差を有する第1のCUよりも前にコーディングシーケンスがあるすべてのCUの輝度QPは、残差を有する第1のCUの輝度QPに修正される。
現在のCUが、現在の量子化グループにおいて残差を有する第1のCUの前のCUである場合、現在のCUのQP差分値に基づき現在のCUの再構成されたピクチャを取得することは、具体的には、
残差を有する第1のCUの輝度QPに基づき現在のCUの再構成されたピクチャを取得することである。
第2の態様によれば、本発明はビデオデコーダに関する。ビデオデコーダは、エントロピー復号ユニットであって、コーディングツリー分割情報を解析して現在のノードを取得し、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定し、現在の量子化グループによってカバーされる領域における現在のCUのQP差分値を取得し、現在のCUのQP差分値に基づき現在のCUの輝度QPを決定するように構成されているエントロピー復号ユニットと、現在のCUの輝度QPに基づき現在のCUの量子化解除された係数を取得するように構成されている、逆量子化ユニットと、現在のCUの量子化解除された係数に基づき現在のCUの再構成された残差ブロックを取得するように構成されている、逆変換処理ユニットと、現在のCUの再構成された残差ブロックに基づき現在のCUの再構成されたピクチャを取得するように構成されている、再構成ユニットとを備える。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定するか、または現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1よりも大きいか、またはMが0よりも大きい場合、現在の量子化グループによってカバーされる領域は、現在のノードの第K層の四分木ノードによってカバーされる領域である。Kは、NとT1のうちの小さい方の値であり、第K層の四分木ノードは、現在のノードを含み、コーディングツリーユニットCTUから開始してK回の四分木分割の後に生成される四分木ノードである。
第K層の四分木ノードは、現在のノードの第(M+N-K)層の親ノードである。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1以下であり、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNに基づき、現在の量子化グループによってカバーされる領域を決定するか、または現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。あるいは、Nが第1の閾値T1未満である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。あるいは、Nが第1の閾値T1未満であり、Mが第4の閾値T4以下である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、第4の閾値T4は、プリセットされた正の整数、たとえば、1、2、3、または4であってよい。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、第4の閾値は、第1の閾値T1および現在のノードの四分木深さNに基づき決定されるものとしてよく、たとえば、T4=T1-Nであってよい。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1以下であり、MがT1-N以下である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの深さNが第1の閾値T1より大きい場合に、現在のノードの第(N-T1)層の親ノードを取得し、現在の量子化グループによってカバーされる領域が第(N-T1)層の親ノードによってカバーされる領域であると決定するように特に構成される。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの深さNが第1の閾値T1に等しい場合に、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域であると決定するように特に構成される。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さは、現在のノードのQT depthであるか、または現在のノードの深さは、現在のノードのQT depthと現在のノードのMTT depthとの和である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、第1の閾値T1は0、1、2、または3である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの分割モードを取得し、現在のノードの深さNが第2の閾値T2-1に等しく、現在のノードの分割モードが三元分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第2の閾値T2に等しく、現在のノードの分割モードが二元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第2の閾値以下であり、現在のノードがもはや分割されない場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するようにさらに構成される。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、第2の閾値は2、3、4、6、8、または9である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの分割モードを取得し、現在のノードの深さNが第3の閾値T3-1に等しく、現在のノードの分割モードが三元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードの分割モードが二元分割モードである場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードがもはや分割されない場合に、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するようにさらに構成される。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、第3の閾値は3または5である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードのQT depthおよび現在のノードの二元深さDbに基づき現在のノードの深さNを決定するように特に構成される。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、次の数式、N=Dq*2+Db、ただしDqは現在のノードのQT depthである、を使用することによって現在のノードの深さNを決定するように特に構成される。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードがMTTルートノードである場合に、現在のノードの二元深さDbは0であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが二元分割モードで取得された子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された非中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+2である。
第2の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在の量子化グループ内の残差を有する第1のCUのQP差分値が0に等しくない場合に、現在の量子化グループ内の残差を有する第1のCUよりも前にコーディングシーケンスがあるすべてのCUの輝度QPを、残差を有する第1のCUの輝度QPに修正するようにさらに構成される。現在のCUが現在の量子化グループにおいて残差を有する第1のCUの前のCUである場合、逆量子化ユニットは、残差を有する第1のCUの輝度QPに基づき現在のCUの量子化解除された係数を取得するように特に構成される。
第3の態様によれば、本発明の一実施形態は、ビデオ復号方法を提供し、方法はコーディングツリー分割情報を解析して現在のノードを取得することと、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することと、現在の量子化グループによってカバーされる領域における現在のコーディングユニットCUの量子化パラメータQP差分値を取得することと、現在のCUのQP差分値に基づき現在のCUの再構成されたピクチャを取得することとを含む。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定すること、または現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。Nが第1の閾値T1よりも大きいか、またはMが0よりも大きい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードの第K層の四分木ノードによってカバーされる領域の左上隅の座標である。Kは、NとT1のうちの小さい方の値であり、第K層の四分木ノードは、現在のノードを含み、コーディングツリーユニットCTUから開始してK回の四分木分割の後に生成される四分木ノードである。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。Nが第1の閾値T1以下であり、Mが0に等しい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの四分木深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定すること、または現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。あるいは、Nが第1の閾値T1未満である場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。あるいは、Nが第1の閾値T1未満であり、Mが第4の閾値T4以下である場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。Nが第1の閾値T1以下であり、MがT1-N以下である場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの深さNが第1の閾値T1より大きい場合に、現在のノードの第(N-T1)層の親ノードを取得することと、現在の量子化グループによってカバーされる領域の左上隅の座標が第(N-T1)層の親ノードによってカバーされる領域の左上隅の座標であると決定することとを含む。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの深さNが第1の閾値T1に等しい場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定することを含む。
第3の態様によれば、方法の可能な一実装形態において、第1の閾値T1はプリセットされた非負整数である。
第3の態様によれば、方法の可能な一実装形態において、第1の閾値T1は0、1、2、または3である。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さは、現在のノードの四分木QT depthである。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さは、現在のノードのQT depthと現在のノードのマルチタイプ木深さMTT depthの和である。
第3の態様によれば、方法の可能な一実装形態において、方法は、現在のノードの分割モードを取得することをさらに含む。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの深さNが第2の閾値T2-1に等しく、現在のノードの分割モードが三元分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定すること、または現在のノードの深さNが第2の閾値T2に等しく、現在のノードの分割モードが二元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定することを含む。
第3の態様によれば、方法の可能な一実装形態において、方法は、現在のノードの分割モードを取得することをさらに含む。現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することは、現在のノードの深さNが第3の閾値T3-1に等しく、現在のノードの分割モードが三元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定すること、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードの分割モードが二元分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定することを含む。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、現在のノードのQT depthと現在のノードの二元深さDbに基づき決定される。
第3の態様によれば、方法の可能な一実装形態において、現在のノードの深さNは、計算式N=Dq*2+Dbを使用することによって決定され、Dqは現在のノードのQT depthである。
第3の態様によれば、方法の可能な一実装形態において、現在のノードがマルチタイプ木MTTルートノードである場合に、現在のノードの二元深さDbは0であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが二元分割モードで取得された子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された非中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+2である。
第3の態様によれば、方法の可能な一実装形態において、現在の量子化グループ内の残差を有する第1のCUのQP差分値が0に等しくない場合、現在の量子化グループ内の残差を有する第1のCUよりも前にコーディングシーケンスがあるすべてのCUの輝度QPは、残差を有する第1のCUの輝度QPに修正される。現在のCUが、現在の量子化グループにおいて残差を有する第1のCUの前のCUである場合、現在のCUのQP差分値に基づき現在のCUの再構成されたピクチャを取得することは、具体的には、残差を有する第1のCUの輝度QPに基づき現在のCUの再構成されたピクチャを取得することである。
第4の態様によれば、本発明の一実施形態は、ビデオデコーダを提供し、これはエントロピー復号ユニットであって、コーディングツリー分割情報を解析して現在のノードを取得し、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定し、現在の量子化グループによってカバーされる領域の左上隅の座標をカバーする現在のコーディングユニットCUの量子化パラメータQP差分値を取得し、現在のCUのQP差分値に基づき現在のCUの輝度QPを決定するように構成されているエントロピー復号ユニットと、現在のCUの輝度QPに基づき現在のCUの量子化解除された係数を取得するように構成されている、逆量子化ユニットと、現在のCUの量子化解除された係数に基づき現在のCUの再構成された残差ブロックを取得するように構成されている、逆変換処理ユニットと、現在のCUの再構成された残差ブロックに基づき現在のCUの再構成されたピクチャを取得するように構成されている、再構成ユニットとを備える。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するか、または現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するよう、特に構成される。Nが第1の閾値T1よりも大きいか、またはMが0よりも大きい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードの第K層の四分木ノードによってカバーされる領域の左上隅の座標である。Kは、NとT1のうちの小さい方の値であり、第K層の四分木ノードは、現在のノードを含み、コーディングツリーユニットCTUから開始してK回の四分木分割の後に生成される四分木ノードである。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するように特に構成される。Nが第1の閾値T1以下であり、Mが0に等しい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するか、または現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するように特に構成される。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。あるいは、Nが第1の閾値T1未満である場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するように特に構成される。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。あるいは、Nが第1の閾値T1未満であり、Mが第4の閾値T4以下である場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さNは、現在のノードの四分木深さNである。エントロピー復号ユニットは、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域の左上隅の座標を決定するように特に構成される。Nが第1の閾値T1以下であり、MがT1-N以下である場合、現在の量子化グループによってカバーされる領域の左上隅の座標は、現在のノードによってカバーされる領域の左上隅の座標である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの深さNが第1の閾値T1より大きい場合に、現在のノードの第(N-T1)層の親ノードを取得し、現在の量子化グループによってカバーされる領域の左上隅の座標が第(N-T1)層の親ノードによってカバーされる領域の左上隅の座標であると決定するように特に構成される。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの深さNが第1の閾値T1に等しい場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定するように特に構成される。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、第1の閾値T1はプリセットされた非負整数である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、第1の閾値T1は0、1、2、または3である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さは、現在のノードの四分木深さQT depthである。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードの深さは、現在のノードのQT depthと現在のノードのマルチタイプ深さ木MTT depthとの和である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの分割モードを取得し、現在のノードの深さNが第2の閾値T2-1に等しく、現在のノードの分割モードが三元分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定するか、または現在のノードの深さNが第2の閾値T2に等しく、現在のノードの分割モードが二元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定するようにさらに構成される。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードの分割モードを取得し、現在のノードの深さNが第3の閾値T3-1に等しく、現在のノードの分割モードが三元分割モードまたは四分木分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定するか、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードの分割モードが二元分割モードである場合に、現在の量子化グループによってカバーされる領域の左上隅の座標が現在のノードによってカバーされる領域の左上隅の座標であると決定するようにさらに構成される。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在のノードのQT depthおよび現在のノードの二元深さDbに基づき現在のノードの深さNを決定するように特に構成される。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、次の数式、N=Dq*2+Db、ただしDqは現在のノードのQT depthである、を使用することによって現在のノードの深さNを決定するように特に構成される。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、現在のノードがマルチタイプ木MTTルートノードである場合に、現在のノードの二元深さDbは0であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが二元分割モードで取得された子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードでなく、現在のノードが三元分割モードで取得された非中間子ノードである場合に、現在のノードの二元深さDbは現在のノードの直接の親ノードの二元深さ+2である。
第4の態様によれば、ビデオデコーダの可能な一実装形態において、エントロピー復号ユニットは、現在の量子化グループ内の残差を有する第1のCUのQP差分値が0に等しくない場合、現在の量子化グループ内の残差を有する第1のCUよりも前にコーディングシーケンスがあるすべてのCUの輝度QPを、残差を有する第1のCUの輝度QPに修正するようにさらに構成される。現在のCUが現在の量子化グループにおいて残差を有する第1のCUの前のCUである場合、逆量子化ユニットは、残差を有する第1のCUの輝度QPに基づき現在のCUの量子化解除された係数を取得するように特に構成される。
第5の態様によれば、本発明は、プロセッサとメモリとを備える、ビデオストリーム復号装置に関する。メモリは命令を記憶し、命令は、プロセッサが第1の態様もしくは第3の態様または第1の態様もしくは第3の態様の可能な任意の実施形態による方法を実行することを可能にする。
第6の態様によれば、コンピュータ可読記憶媒体が提供される。コンピュータ可読記憶媒体は命令を記憶し、命令が実行されると1つまたは複数のプロセッサがビデオデータを符号化することを可能にされる。命令は、1つまたは複数のプロセッサが第1の態様もしくは第3の態様または第1の態様もしくは第3の態様の可能な任意の実施形態による方法を実行することを可能にする。
第7の態様によれば、本発明はプログラムコードを含むコンピュータプログラムに関する。プログラムコードがコンピュータ上で実行されると、第1の態様もしくは第3の態様または第1の態様もしくは第3の態様の可能な任意の実施形態による方法が行われる。
1つまたは複数の実施形態の詳細は、添付図面および次の説明において述べられる。他の特徴、目的、および利点は、明細書、図面、および請求項から明らかになる。
本出願の実施形態または背景技術における技術的解決方法をより明確に説明するために、次に本出願の実施形態または背景技術を説明するための添付図面について説明する。
次の説明では、同一の参照記号は、断りのない限り同一の、または少なくとも機能的に同等の特徴を表す。
次の説明では、本開示の一部を成し、例示により、本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を図示する添付図面が参照されている。本発明の実施形態は、別の態様で使用されてもよく、添付図面には描かれていない構造的または論理的な変更を含み得ることが理解されるべきである。したがって、次の詳細な説明は、限定的な意味で解釈されないものとし、本開示の範囲は添付の請求項により定義される。
たとえば、説明されている方法に関連する開示は、その方法を行うように構成されている対応するデバイスまたはシステムにも当てはまることがあり、またその逆も当てはまることが理解されるべきである。たとえば、1つもしくは複数の特定の方法ステップが記述されている場合、対応するデバイスが、説明されている1つもしくは複数の方法ステップを実行するために、機能ユニットなどの1つもしくは複数のユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数のステップを各々実行する複数のユニット)を、そのような1つもしくは複数のユニットが添付図面に明示的に説明もしくは例示されていないとしても、備え得る。その一方で、たとえば、特定の装置が機能ユニットなどの1つもしくは複数のユニットに基づき説明されている場合、対応する方法は、1つもしくは複数のユニットの機能を実行するために使用される1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行するために使用される1つのステップ、または複数のユニットのうちの1つもしくは複数のユニットの機能を実行するために各々使用される複数のステップ)を、そのような1つもしくは複数のステップが添付図面に明示的に説明もしくは例示されていないとしても、含み得る。さらに、本明細書において説明されている様々な例示的な実施形態および/または態様の特徴は、特に断りのない限り、互いに組み合わされ得ることは理解されるべきである。
ビデオコーディングは、通常、ビデオまたはビデオシーケンスを構成するピクチャのシーケンスを処理することを指す。ビデオコーディングの分野では、「ピクチャ(picture)」、「フレーム(frame)」、および「画像(image)」という用語が同義語として使用され得る。本出願(または本開示)において使用されるビデオコーディングは、ビデオ符号化またはビデオ復号のいずれかを示す。ビデオ符号化は、ソース側で実行され、通常、元のビデオピクチャを(たとえば、圧縮することによって)処理して、(より効率的な記憶および/または伝送のために)ビデオピクチャを表現するためのデータの量を減らすことを含む。ビデオ復号は、宛先側で行われ、通常は、ビデオピクチャを再構成するためのエンコーダに関する逆処理を含む。実施形態におけるビデオピクチャ(または以下で説明される、ピクチャと総称される)の「コーディング」は、ビデオシーケンスの「符号化」または「復号」と理解されるべきである。符号化部と復号部の組合せは、CODEC(符号化および復号)とも称される。
可逆ビデオコーディングの場合、元のビデオピクチャは再構成され得る。言い換えると、再構成されたビデオピクチャは、元のビデオピクチャと同じ画質を有する(記憶時または伝送時に伝送損失または他のデータ損失が発生しないことを仮定する)。非可逆ビデオコーディングの場合、たとえば量子化を通じてさらなる圧縮が実行され、それにより、ビデオピクチャを表現するために必要なデータの量を減らし、ビデオピクチャは、デコーダ側で完全には再構成され得ない。言い換えると、再構成されたビデオピクチャの画質は、元のビデオピクチャの画質よりも低いか、または劣る。
いくつかのH.261ビデオコーディング規格は、「非可逆ハイブリッドビデオコーディング」に使用される(具体的には、サンプル領域内の空間的および時間的予測は、変換領域内で量子化を適用するために2D変換コーディングと組み合わされる)。ビデオシーケンスの各ピクチャは、典型的には、重なり合わないブロックの集合に分割され、コーディングは、典型的には、ブロックレベルで実行される。具体的には、エンコーダ側で、ビデオは、通常、ブロック(ビデオブロック)レベルで処理され、すなわち符号化される。たとえば、予測ブロックは、空間的(ピクチャ内)予測および時間的(ピクチャ間)予測を通じて生成され、この予測ブロックは、残差ブロックを取得するために現在のブロック(処理されている、または処理されるべきブロック)から減算され、この残差ブロックは、伝送される(圧縮される)べきデータの量を減らすために変換領域内で変換され、量子化される。デコーダ側では、エンコーダに関する逆処理部が符号化されたブロックまたは圧縮されたブロックに適用され、表現のための現在のブロックを再構成する。さらに、エンコーダはデコーダ処理ループを複製し、それにより、エンコーダおよびデコーダは、処理のために、すなわち後続のブロックのコーディングのために、同じ予測(たとえば、フレーム内予測およびフレーム間予測)ならびに/または再構成を生成する。
本明細書において使用されているように、「ブロック」という用語は、ピクチャまたはフレームの一部であってよい。説明の便宜上、本発明の実施形態は、ITU-Tビデオコーディングエキスパートグループ(Video Coding Experts Group、VCEG)およびISO/IECモーションピクチャエキスパートグループ(Motion Picture Experts Group、MPEG)のビデオコーディングに関する共同研究チーム(Joint Collaboration Team on Video Coding、JCT-VC)によって開発された汎用ビデオコーディング(VVC:Versatile Video Coding)または高効率ビデオコーディング(High-Efficiency Video Coding、HEVC)を参照しつつ本明細書において説明されている。当業者は、本発明の実施形態がHEVCまたはVVCに限定されないことを理解する。ブロックは、CU、PU、またはTUであってよい。HEVCでは、CTUは、コーディングツリーとして表される四分木構造を使用することによって複数のCUに分割される。ピクチャ領域をピクチャ間(時間的)予測を通じて符号化するかまたはピクチャ内(空間的)予測を通じて符号化するかの決定は、CUレベルで行われる。各CUは、PU分割パターンに基づき1個、2個、または4個のPUにさらに分割され得る。1つのPU内では、同じ予測処理が適用され、関連する情報はPUベースでデコーダに伝送される。PU分割パターンに基づく予測プロセスを適用することによって残差ブロックを取得した後に、CUは、CUに使用されるコーディングツリーに類似する別の四分木構造に基づきCUを変換ユニット(transform unit、TU)に分割され得る。ビデオ圧縮技術の最近の開発では、四分木を二分木に加えた(Quad-tree plus binary tree、QTBT)分割フレームが、コーディングブロックを分割するために使用されている。QTBTブロック構造では、CUは正方形または長方形であってよい。VVCでは、コーディングツリーユニット(coding tree unit、CTU)が、最初に、四分木構造を使用することによって分割される。四分木のリーフノードは、二分木構造を使用することによってさらに分割される。二分木のリーフノードはコーディングユニット(CU)と称され、CUは、さらなる分割なしで予測および変換処理に使用される。これは、CU、PU、TUがQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。それに加えて、三分木分割などの多重分割がQTBTブロック構造と組み合わせて使用されることを提案されている。
次に、(本発明の実施形態が図9に基づきより詳細に説明される前に)図1から図4に基づきエンコーダ20、デコーダ30、ならびにコーディングシステム10および40の実施形態を説明する。
図1は、例示的なコーディングシステム10、たとえば、本出願(本開示)の技術を使用し得るビデオコーディングシステム10の概念または概略ブロック図である。ビデオコーディングシステム10のエンコーダ20(たとえば、ビデオエンコーダ20)およびデコーダ30(たとえば、ビデオデコーダ30)は、本出願において説明されている様々な例に基づき、...に使用される技術(分割/フレーム内予測/...)を実行するように構成され得る例示的なデバイスを表している。図1に示されているように、コーディングシステム10は、符号化されたピクチャ13などの符号化されたデータ13を、たとえば、符号化されたデータ13を復号する宛先デバイス14に提供するように構成されているソースデバイス12を備える。
ソースデバイス12は、エンコーダ20を備え、任意選択で、ピクチャソース16、たとえば、ピクチャ前処理ユニット18の前処理ユニット18、および通信インターフェースまたは通信ユニット22を備え得る。
ピクチャソース16は、たとえば、現実世界のピクチャをキャプチャするように構成されている任意のタイプのピクチャキャプチャデバイス、および/またはピクチャもしくはコメント(画面コンテンツ符号化では、画面上の何らかのテキストも符号化されるべきピクチャもしくは画像の一部とみなされる)を生成するための任意のタイプのデバイス、たとえば、コンピュータアニメーションピクチャを生成するように構成されているコンピュータグラフィックスプロセッサ、または現実世界のピクチャもしくはコンピュータアニメーションピクチャ(たとえば、画面コンテンツもしくは仮想現実(virtual reality、VR)ピクチャ)を取得し、および/もしくは提供するように構成されている任意のタイプのデバイス、および/またはこれらの任意の組合せ(たとえば、拡張現実(augmented reality、AR)ピクチャ)を含むか、またはそのものであってよい。
(デジタル)ピクチャは、強度値を有するサンプルの2次元配列または行列とみなされるか、またはみなされ得る。配列内のサンプルは、ピクセル(pixel)(画素(picture element)の略)または絵素(pel)と称されることもある。配列またはピクチャの水平方向および垂直方向(または軸)のサンプルの量は、ピクチャのサイズおよび/または解像度を定義する。色の表現については、通常、3つの色成分が採用され、具体的には、ピクチャは、3つのサンプル配列として表現されるか、または3つのサンプル配列を含み得る。RBG形式または色空間では、ピクチャは、対応する赤、緑、および青のサンプル配列を含む。しかしながら、ビデオコーディングにおいて、各ピクセルは、通常、輝度/クロミナンス形式または色空間、たとえば、YCbCrで表され、これはYで示される(ときには代替的にLで示される)輝度成分と、CbおよびCrで示される2つのクロミナンス成分とを含む。輝度(略してluma)成分Yは明るさまたはグレーレベル強度を表し(たとえば、濃淡ピクチャでは両方とも同じである)、2つのクロミナンス(略してchroma)成分CbおよびCrはクロミナンスまたは色情報成分を表す。これに対応して、YCbCr形式のピクチャは、輝度サンプル値(Y)の輝度サンプル配列と、クロミナンス値(CbおよびCr)の2つのクロミナンスサンプル配列とを含む。RGB形式のピクチャは、YCbCr形式に転換または変換され、その逆もあり得る。このプロセスは、色変換または転換とも称される。ピクチャがモノクロである場合、ピクチャは輝度サンプル配列のみを含むものとしてよい。
ピクチャソース16(たとえば、ビデオソース16)は、たとえば、ピクチャをキャプチャするためのカメラ、または以前にキャプチャされるか、または生成されたピクチャを含むか、もしくは記憶するピクチャメモリなどのメモリ、および/またはピクチャを取得もしくは受信するための任意のタイプのインターフェース(内部もしくは外部)であってよい。カメラは、たとえば、ローカルカメラ、またはソースデバイス内に一体化された一体型カメラであってよく、メモリは、ローカルメモリ、またはたとえば、ソースデバイス内に一体化された一体型メモリであってもよい。インターフェースは、たとえば、外部ビデオソースからピクチャを受信するための外部インターフェースであってよい。外部ビデオソースは、たとえば、カメラなどの外部ピクチャキャプチャデバイス、外部メモリ、または外部ピクチャ生成デバイスである。外部ピクチャ生成デバイスは、たとえば、外部コンピュータグラフィックスプロセッサ、コンピュータ、またはサーバである。インターフェースは、任意の種類のインターフェースであってよく、たとえば、任意の専有または標準化されたインターフェースプロトコルに従う、有線もしくはワイヤレスインターフェースまたは光インターフェースであってもよい。ピクチャデータ17を取得するためのインターフェースは、通信インターフェース22と同じインターフェースまたは通信インターフェース22の一部であってよい。
前処理ユニット18および前処理ユニット18によって実行される処理とは異なり、ピクチャまたはピクチャデータ17(たとえば、ビデオデータ16)は、生のピクチャまたは生のピクチャデータ17とも称され得る。
前処理ユニット18は、(生の)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19または前処理されたピクチャデータ19を取得するように構成される。たとえば、前処理ユニット18によって実行される前処理は、トリミング、色形式変換(たとえば、RGBからYCbCrへの)、色補正、またはノイズ除去を含んでもよい。前処理ユニット18は、任意選択のコンポーネントであり得ることは理解されてよい。
エンコーダ20(たとえば、ビデオエンコーダ20)は、前処理されたピクチャデータ19を受信し、符号化されたピクチャデータ21を提供するように構成される(詳細は、たとえば、図2または図4に基づき、以下にさらに説明されている)。
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信し、符号化されたピクチャデータ21を別のデバイス、たとえば、宛先デバイス14または任意の他のデバイスに伝送し、記憶または直接再構成するように構成されてよい。あるいは、通信インターフェース22は、符号化されたピクチャデータ21を処理してから、それに対応して符号化されたデータ13を記憶し、および/または符号化されたデータ13を別のデバイスに伝送するように構成される。別のデバイスは、たとえば、宛先デバイス14、または復号または記憶に使用される任意の他のデバイスである。
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を備え、任意選択で、通信インターフェースまたは通信ユニット28、後処理ユニット32、および表示デバイス34を備えてもよい。
宛先デバイス14の通信インターフェース28は、たとえば、符号化されたピクチャデータ21または符号化されたデータ13をソースデバイス12または任意の他のソースから直接的に受信するように構成される。他の任意のソースは、たとえば、ストレージデバイスである。ストレージデバイスは、たとえば、符号化されたピクチャデータストレージデバイスである。
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンクを通じて、または任意のタイプのネットワークを通じて、符号化されたピクチャデータ21または符号化されたデータ13を伝送または受信するように構成され得る。直接通信リンクは、たとえば、直接有線接続またはワイヤレス接続である。その任意のタイプのネットワークは、たとえば、有線もしくはワイヤレスネットワーク、またはこれらの任意の組合せ、または任意のタイプのプライベートもしくはパブリックネットワーク、またはこれらの任意の組合せである。
通信インターフェース22は、たとえば、通信リンクまたは通信ネットワークを介した伝送のために、符号化されたピクチャデータ21を適切な形式、たとえばパケットにパッケージ化するように構成され得る。
通信インターフェース22の対応する部分を形成する通信インターフェース28は、たとえば、符号化されたピクチャデータ21を取得するために、符号化されたデータ13をデパッケージするように構成され得る。
通信インターフェース22および通信インターフェース28は両方とも、ソースデバイス12から宛先デバイス14を指し、図1の符号化されたピクチャデータ21に使用される矢印によって示されるように、一方向通信インターフェースとして構成され得るか、または双方向通信インターフェースとして構成されてもよく、たとえば、接続を確立するためのメッセージの送受信、および符号化されたピクチャデータの伝送などの通信リンクおよび/またはデータ伝送に関する任意の他の情報の受信確認および交換を行うように構成され得る。
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(詳細は、たとえば、図3または図5に基づき以下でさらに説明されている)。
宛先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構成されたピクチャデータとも称される)、たとえば復号されたピクチャ131を後処理して、後処理されたピクチャデータ33、たとえば、後処理されたピクチャ33を取得するように構成されている。後処理ユニット32によって実行される後処理は、たとえば、色形式変換(たとえば、YCbCrからRGBへ)、色補正、トリミング、再サンプリング、または、たとえば、表示デバイス34による表示のために、復号されたピクチャデータ31を、たとえば、準備するための任意の他の処理を含み得る。
宛先デバイス14の表示デバイス34は、たとえば、ユーザまたは視聴者にピクチャを表示するために、後処理されたピクチャデータ33を受信するように構成される。表示デバイス34は、再構成されたピクチャを提示するための任意のタイプのディスプレイ、たとえば、一体型もしくは外部ディスプレイもしくはモニタであるか、またはそれらを含んでいてもよい。たとえば、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(liquid crystal on silicon、LCoS)、デジタルライトプロセッサ(digital light processor、DLP)、または任意のタイプの他のディスプレイを含み得る。
図1では、ソースデバイス12および宛先デバイス14を別個のデバイスとして描いているが、デバイスの実施形態は、ソースデバイス12および宛先デバイス14の両方、またはソースデバイス12および宛先デバイス14の両方の機能性、すなわち、ソースデバイス12または対応する機能性および宛先デバイス14または対応する機能性を代替的に含み得る。そのような実施形態では、ソースデバイス12もしくは対応する機能性および宛先デバイス14もしくは対応する機能性は、同じハードウェアおよび/もしくはソフトウェア、別個のハードウェアおよび/もしくはソフトウェア、またはそれらの任意の組合せを使用して実装され得る。
説明に基づき当業者には明らかなように、異なるユニットの機能性の存在および(正確な)分割、または図1に示されているソースデバイス12および/または宛先デバイス14の機能性は、実際のデバイスおよびアプリケーションによって異なることがある。
エンコーダ20(たとえば、ビデオエンコーダ20)およびデコーダ30(たとえば、ビデオデコーダ30)は、各々、様々な好適な回路、たとえば、1つもしくは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ディスクリートロジック、ハードウェア、またはこれらの任意の組合せのうちの任意の1つとして実装され得る。技術が部分的にソフトウェアを使用することによって実装される場合、デバイスは、ソフトウェア命令を好適な非一時的コンピュータ可読記憶媒体に記憶し、本開示の技術を実行するために、1つまたは複数のプロセッサなどのハードウェアを使用することによって命令を実行し得る。前記の内容のいずれか(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せ、および同様のものを含む)は、1つまたは複数のプロセッサとみなされてよい。ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のエンコーダまたはデコーダに含まれてもよく、エンコーダもしくはデコーダは、対応するデバイス内に組み合わされたエンコーダ/デコーダ(コーデック)の一部として一体化され得る。
ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と称され得る。宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と称され得る。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の一例であるものとしてよい。
ソースデバイス12および宛先デバイス14は、任意のタイプのハンドヘルドもしくは据え置き型デバイス、たとえば、ノートブックもしくはラップトップコンピュータ、携帯電話、スマートフォン、タブレットもしくはタブレットコンピュータ、ビデオカメラ、デスクトップコンピュータ、セットトップボックス、テレビ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイス(コンテンツサービスサーバもしくはコンテンツ配信サーバなど)、放送受信機デバイス、または放送送信機デバイスを含む、広範なデバイスのうちのいずれか1つを含むものとしてよく、任意のタイプのオペレーティングシステムを使用するか、もしくは使用しないものとしてよい。
いくつかの場合において、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されてよい。したがって、ソースデバイス12および宛先デバイス14は、ワイヤレス通信デバイスであってよい。
いくつかの場合において、図1に示されているビデオコーディングシステム10は単なる一例にすぎず、本出願の技術は、必ずしも符号化デバイスと復号デバイスとの間のデータ通信を含まないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用可能であるものとしてよい。別の例において、データは、ローカルメモリから取り出されるか、ネットワーク上でストリーミング配信されるか、または同様の処理がなされるものとしてよい。ビデオ符号化デバイスは、データを符号化してそのデータをメモリに記憶するものとしてよく、および/またはビデオ復号デバイスは、データをメモリから取り出してそのデータを復号するものとしてよい。いくつかの例において、符号化および復号は、互いに通信しないが、単に、データを符号化してメモリに入れ、および/またはデータをメモリから取り出してそのデータを復号するデバイスによって実行される。
ビデオエンコーダ20を参照しつつ説明されている例の各々について、ビデオデコーダ30は、逆プロセスを実行するように構成されてもよいことが理解されるべきである。シグナリングシンタックス要素に関して、ビデオデコーダ30は、そのようなシンタックス要素を受信して解析し、それに対応して関係するビデオデータを復号するように構成され得る。いくつかの例では、ビデオエンコーダ20は、符号化されたビデオビットストリームに...を定義する1つまたは複数のシンタックス要素をエントロピー符号化し得る。そのような例では、ビデオデコーダ30は、そのようなシンタックス要素を解析し、それに対応して関係するビデオデータを復号し得る。
エンコーダ&符号化方法
図2は、本出願(開示)の技術を実装するように構成されているビデオエンコーダ20の一例の概略/概念ブロック図である。図2の例では、ビデオエンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer、DPB)230、予測処理ユニット260、エントロピー符号化ユニット270を備える。予測処理ユニット260は、フレーム間予測ユニット244、フレーム内予測ユニット254、およびモード選択ユニット262を備え得る。フレーム間予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を備え得る。図2に示されているビデオエンコーダ20は、ハイブリッドビデオエンコーダまたはハイブリッドビデオコーデックに基づくビデオエンコーダとも称され得る。
たとえば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、エントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成するが、たとえば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成する。エンコーダの逆方向信号経路は、デコーダ(図3のデコーダ30を参照)の信号経路に対応する。
エンコーダ20は、たとえば、入力202を通じて、ピクチャ201またはピクチャ201のブロック203、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンス内のピクチャを受信する。ピクチャブロック203は、現在のピクチャブロックまたは符号化されるべきピクチャブロックとも称され得る。ピクチャ201は、現在のピクチャまたは符号化されるべきピクチャと称され得る(特にビデオコーディングでは、現在のピクチャを他のピクチャと区別するために、他のピクチャは、たとえば、同じビデオシーケンス内の以前に符号化されたおよび/または復号されたピクチャ、すなわち、現在のピクチャも含むビデオシーケンスである)。
分割
エンコーダ20の一実施形態は、ピクチャ201をブロック203などの複数のブロックに分割するように構成されている、分割ユニット(図2には示されていない)を含み得る。ピクチャ201は、通常、重なり合わない複数のブロックに分割される。分割ユニットは、ビデオシーケンス内のすべてのピクチャに対する同じブロックサイズ、およびそのブロックサイズを定義する対応するグリッドを使用するか、またはピクチャもしくはピクチャの部分集合もしくはグループ間でブロックサイズを変更し、各ピクチャを対応するブロックに分割するように構成され得る。
一例では、ビデオエンコーダ20の予測処理ユニット260は、上で説明されている分割技術の任意の組合せを実行するように構成され得る。
ピクチャ201と同様に、ブロック203は、輝度値(サンプル値)を有するサンプルの2次元配列または行列でもあるか、またはそれとみなされてよいが、ブロック203のサイズはピクチャ201のサイズより小さい。言い換えると、ブロック203は、たとえば、1つのサンプル配列(たとえば、モノクロピクチャ201の場合には、ルーマ配列)、3つのサンプル配列(たとえば、カラーピクチャの場合には、1つのルーマ配列と2つのクロマ配列)、または適用される色形式に応じた任意の他の量および/もしくはタイプの配列を含んでもよい。ブロック203の水平方向および垂直方向(または軸)のサンプルの量は、ブロック203のサイズを定義する。
図2に示されているエンコーダ20は、ピクチャ201をブロック毎に符号化する、たとえば、各ブロック203上で符号化および予測を実行するように構成される。
残差計算
残差計算ユニット204は、たとえば、ピクチャブロック203のサンプル値から予測ブロック265のサンプル値をサンプル毎(ピクセル毎)に減算することによってピクチャブロック203および予測ブロック265に基づき残差ブロック205を計算し(予測ブロック265についての詳細は後述する)、サンプル領域内の残差ブロック205を取得するように構成される。
変換
変換処理ユニット206は、変換、たとえば離散コサイン変換(discrete cosine transform、DCT)または離散サイン変換(discrete sine transform、DST)を、残差ブロック205のサンプル値に適用して、変換領域内の変換係数207を取得するように構成される。変換係数207は、変換残差係数と称されることもあり、変換領域内の残差ブロック205を表す。
変換処理ユニット206は、HEVC/H.265において指定されている変換などの、DCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、通常、係数に基づきスケーリングされる。順方向変換および逆変換を使用することによって処理される残差ブロックのノルムを保つために、追加のスケール係数が変換プロセスの一部として適用される。スケール係数は、通常、いくつかの制約条件、たとえば、スケール係数がシフト演算に対して2の冪乗であること、変換係数のビット深度、および精度と実装コストとの間のトレードオフの関係に基づき選択される。たとえば、デコーダ30側のたとえば逆変換処理ユニット212による逆変換(およびエンコーダ20側のたとえば逆変換処理ユニット212による対応する逆変換)に対して特定のスケール係数が指定され、それに対応して、エンコーダ20側の変換処理ユニット206による順方向変換に対して対応するスケール係数が指定され得る。
量子化
量子化ユニット208は、たとえば、スカラー量子化やベクトル量子化を適用することによって、変換係数207を量子化し、量子化された変換係数209を取得するように構成される。量子化された変換係数209は、量子化された残差係数209とも称され得る。量子化プロセスは、変換係数207の一部または全部に関連するビット深度を低減し得る。たとえば、nビット変換係数は、量子化時にmビット変換係数に切り捨てられるものとしてよく、ここで、nはmより大きい。量子化度は、量子化パラメータ(quantization parameter、QP)を調整することによって修正され得る。たとえば、スカラー量子化については、より細かいまたはより粗い量子化を達成するために、異なるスケールが適用されてよい。より小さい量子化ステップは、より細かい量子化に対応し、より大きい量子化ステップは、より粗い量子化に対応する。適切な量子化ステップは、量子化パラメータ(quantization parameter、QP)によって指示され得る。たとえば、量子化パラメータは、適切な量子化ステップの事前定義された集合へのインデックスであってもよい。たとえば、小さい量子化パラメータは、より細かい量子化(より小さい量子化ステップ)に対応し、より大きい量子化パラメータは、より粗い量子化(より大きい量子化ステップ)に対応するものとしてよく、またはその逆であってもよい。量子化は、たとえば、逆量子化ユニット210によって実行される、量子化ステップによる除算および対応する量子化もしくは逆量子化を含むか、または量子化ステップによる乗算を含み得る。HEVCなどのいくつかの規格による実施形態において、量子化ステップを決定するために量子化パラメータが使用され得る。一般的に、量子化ステップは、除算を含む式の不動点近似を使用することによって、量子化パラメータに基づき計算され得る。追加のスケール係数が量子化および量子化解除のために導入され、それにより残差ブロックのノルムを復元するものとしてよく、残差ブロックのノルムは修正され得るが、それは、量子化ステップおよび量子化パラメータに対する方程式の不動点近似でスケールが使用されるからである。例示的な実装形態において、逆変換のスケールは、量子化解除のスケールと組み合わされ得る。あるいは、カスタマイズされた量子化テーブ
ルが使用され、たとえば、ビットストリーム内でエンコーダからデコーダにシグナリングされ得る。量子化は、非可逆演算であり、量子化ステップが大きいほど損失が大きいことを示す。
逆量子化ユニット210は、量子化ユニット208の逆量子化を量子化係数に適用して量子化解除された係数211を取得する、たとえば、量子化ユニット208と同じ量子化ステップに基づき、または量子化ユニット208と同じ量子化ステップを使用することによって、量子化ユニット208によって適用される量子化方式の逆を適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211とも称されてよく、変換係数207に対応し得るが、量子化解除された係数211は、通常、量子化によって引き起こされる損失により変換係数とは異なる。
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(discrete cosine transform、DCT)または逆離散サイン変換(discrete sine transform、DST)を適用して、サンプル領域内の逆変換ブロック213を取得するように構成される。逆変換ブロック213は、逆変換量子化解除されたブロック213または逆変換残差ブロック213と称され得る。
再構成ユニット214(たとえば、加算器214)は、逆変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に、たとえば、再構成された残差ブロック213のサンプル値および予測ブロック265のサンプル値を加算することによって加算し、サンプル領域内の再構成されたブロック215を取得するように構成される。
任意選択で、たとえば、ラインバッファ216のバッファユニット216(略して「バッファ」216)は、再構成されたブロック215および対応するサンプル値を、たとえばフレーム内予測のためにバッファリングまたは記憶するように構成される。他の実施形態では、エンコーダは、任意のタイプの推定および/または予測、たとえばフレーム内予測に対して、バッファユニット216内に記憶されているフィルタ処理されていない再構成されたブロックおよび/または対応するサンプル値を使用するように構成され得る。
たとえば、一実施形態において、エンコーダ20は、バッファユニット216が、フレーム内予測254のために使用されるだけでなく、ループフィルタユニット220(図2には示されていない)のために使用される再構成されたブロック215を記憶する構成をとり、および/または、たとえば、バッファユニット216および復号ピクチャバッファ230が1つのバッファを形成する構成をとるように構成され得る。他の実施形態において、フィルタ処理されたブロック221および/または復号ピクチャバッファ230からのブロックもしくはサンプル(ブロックもしくはサンプルは、図2に示されていない)は、フレーム内予測ユニット254の入力または基礎として使用される。
ループフィルタユニット220(略して「ループフィルタ」220)は、再構成されたブロック215をフィルタ処理してフィルタ処理されたブロック221を取得し、ピクセル遷移を平滑化するか、またはビデオ画質を改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、または別のフィルタ、たとえば、双方向フィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮鋭化もしくは平滑化フィルタ、または協調フィルタなどの1つまたは複数のループフィルタを表すことを意図されている。図2では、ループフィルタユニット220は、インループフィルタとして示されているが、別の実装形態では、ループフィルタユニット220は、ポストループフィルタとして実装され得る。フィルタ処理されたブロック221は、フィルタ処理された再構成されたブロック221とも称され得る。復号ピクチャバッファ230は、ループフィルタユニット220が再構成された符号化されたブロックに対してフィルタ演算を実行した後に、再構成された符号化されたブロックを記憶するものとしてよい。
一実施形態において、エンコーダ20(それに対応して、ループフィルタユニット220)は、たとえば、直接的に、またはエントロピー符号化ユニット270もしくは任意の他のエントロピー符号化ユニットによって実行されたエントロピー符号化の後に、ループフィルタパラメータ(たとえば、サンプル適応オフセット情報)を出力するように構成されるものとしてよく、それにより、たとえば、デコーダ30は、復号のために同じループフィルタパラメータを受信して適用することができる。
復号ピクチャバッファ(decoded picture buffer、DPB)230は、ビデオエンコーダ20によるビデオデータ符号化において使用するための参照ピクチャデータを記憶する参照ピクチャメモリであってよい。DPB230は、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)(シンクロナスDRAM(synchronous DRAM、SDRAM)、磁気抵抗型RAM(magnetoresistive RAM、MRAM)、抵抗型RAM(resistive RAM、RRAM(登録商標)))、または別のタイプのメモリデバイスなどの、様々なメモリデバイスのうちの任意の1つによって形成され得る。DPB230およびバッファ216は、同じメモリデバイスまたは別個のメモリデバイスによって形成され得る。一例において、復号ピクチャバッファ(decoded picture buffer、DPB)230は、フィルタ処理されたブロック221を記憶するように構成される。復号ピクチャバッファ230は、さらに、同じ現在のピクチャの、または異なるピクチャ、たとえば、以前に再構成されたピクチャの、別の以前にフィルタ処理されたブロック、たとえば以前に再構成され、フィルタ処理されたブロック221を記憶するように構成されてよく、たとえば、フレーム間予測のために、完全な以前に再構成された、すなわち、復号されたピクチャ(および対応する参照ブロックおよびサンプル)および/または部分的に再構成された現在のピクチャ(および対応する参照ブロックおよびサンプル)を提供するものとしてよい。一例において、再構成されたブロック215がインループフィルタ処理せずに再構成される場合、復号ピクチャバッファ(decoded picture buffer、DPB)230は、再構成されたブロック215を記憶するように構成される。
ブロック予測処理ユニット260とも称される、予測処理ユニット260は、ブロック203(現在のピクチャ201の現在のブロック203)および再構成されたピクチャデータ、たとえば、バッファ216からの同じ(現在の)ピクチャの参照サンプルおよび/または復号ピクチャバッファ230からの1つもしくは複数の以前に復号されたピクチャの参照ピクチャデータ231を受信するか、もしくは取得し、そのようなデータを予測のために処理し、具体的には、フレーム間予測ブロック245またはフレーム内予測ブロック255であり得る予測ブロック265を提供するように構成される。
モード選択ユニット262は、残差ブロック205を計算するために、また再構成されたブロック215の再構成のために、予測ブロック265として使用されるべき予測モード(たとえば、フレーム内予測モードもしくはフレーム間予測モード)および/または対応する予測ブロック245もしくは255を選択するように構成され得る。
一実施形態において、モード選択ユニット262は、予測モード(たとえば、予測処理ユニット260によってサポートされる予測モードから)を選択するように構成されてよく、予測モードは、最良一致または最小残差(最小残差は、伝送または記憶のための圧縮が良好であることを意味する)を提供するか、または最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドは、伝送または記憶のための圧縮が良好であることを意味する)を提供するか、またはその両方を考慮し、もしくはバランスをとる。モード選択ユニット262は、レート歪み最適化(rate distortion optimization、RDO)に基づき予測モードを決定し、具体的には、最小レート歪み最適化を提供する予測モードを選択するか、または関係するレート歪みが少なくとも予測モード選択基準を満たす予測モードを選択するように構成され得る。
次に、エンコーダ20の一例による、(たとえば、予測処理ユニット260)によって実行される予測処理および(たとえば、モード選択ユニット262によって)実行されるモード選択を詳しく説明する。
上で説明されているように、エンコーダ20は、(予め決定されている)予測モードのセットから最適なもしくは最善の予測モードを決定するか、または選択するように構成される。予測モードのセットは、たとえば、フレーム内予測モードおよび/またはフレーム間予測モードを含み得る。
フレーム内予測モードのセットは、35個の異なるフレーム内予測モード、たとえば、DC(もしくは平均)モードおよび平面モードなどの非方向性モード、またはH.265で定義されているような方向性モードを含み得るか、または67個の異なるフレーム内予測モード、たとえば、DC(もしくは平均)モードおよび平面モードなどの非方向性モード、または開発中のH.266において定義されているような方向性モードを含み得る。
フレーム間予測モードの(可能な)セットは、利用可能な参照ピクチャ(すなわち、たとえば、上で説明されているような、DPB230に記憶されている少なくともいくつかの復号されたピクチャ)および他のフレーム間予測パラメータに依存し、たとえば、参照ピクチャ全体または参照ピクチャの一部のみ、たとえば、現在のピクチャブロックの領域の周りの探索窓領域が、最良一致する参照ブロックを探索するために使用されるかどうかに依存し、および/または、たとえば、ハーフペルおよび/またはクォーターペル補間などのピクセル補間が適用されるかどうかに依存する。
前述の予測モードに加えて、スキップモードおよび/または直接モードが適用されてもよい。
予測処理ユニット260は、たとえば、四分木(quad-tree、QT)分割、二分木(binary-tree、BT)分割、三分木(triple-treeまたはternary-tree、TT)分割、またはこれらの任意の組合せを反復的に使用することによって、ブロック203をより小さなブロックパーティションまたはサブブロックに分割し、たとえば、ブロックパーティションまたはサブブロックの各々に予測を実行するようにさらに構成され得る。モード選択は、分割されたブロック203の木構造の選択、およびブロックパーティションまたはサブブロックの各々に適用される予測モードの選択を含む。
フレーム間予測ユニット244は、動き推定(motion estimation、ME)ユニット(図2には示されていない)および動き補償(motion compensation、MC)ユニット(図2に示されていない)を含み得る。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在のピクチャ201のピクチャブロック203)および復号されたピクチャ231、または少なくとも1つもしくは複数の以前に再構成されたブロック、たとえば、他の/異なる以前に復号されたピクチャ231の1つもしくは複数の再構成されたブロックを受信するか、もしくは取得するように構成される。たとえば、ビデオシーケンスは、現在のピクチャと以前に復号されたピクチャ31とを含み得るか、または言い換えると、現在のピクチャおよび以前に復号されたピクチャ31は、ビデオシーケンスを形成するピクチャの一部であるか、またはピクチャのシーケンスを形成し得る。
たとえば、エンコーダ20は、同じピクチャの複数の参照ブロック、または複数の他のピクチャの異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(または参照ピクチャインデックス)および/または参照ブロックの配置(X、Y座標)と現在のブロックの配置との間のオフセット(空間的オフセット)をフレーム間予測パラメータとして動き推定ユニット(図2に示されていない)に提供するように構成され得る。このオフセットは、動きベクトル(motion vector、MV)とも称される。
動き補償ユニットは、フレーム間予測パラメータを取得し、たとえば、フレーム間予測パラメータを受信し、フレーム間予測パラメータに基づき、またはフレーム間予測パラメータを使用することによってフレーム間予測を実行し、フレーム間予測ブロック245を取得するように構成される。動き補償ユニット(図2に示されていない)によって実行される動き補償は、動き推定を通じて決定された動き/ブロックベクトルに基づき予測ブロックをフェッチするか、または生成する(場合によってはサブピクセル精度で補間を実行する)ことを含み得る。補間フィルタ処理は、知られているピクセルサンプルから追加のピクセルサンプルを生成し、それによって、ピクチャブロックをコード化するために使用され得る候補予測ブロックの量を潜在的に増加させ得る。現在のピクチャブロックのPUに対する動きベクトルを受信した後、動き補償ユニット246は、参照ピクチャリストの1つの中に動きベクトルが指し示す予測ブロックを特定し得る。動き補償ユニット246は、ブロックおよびビデオスライスに関連付けられているシンタックス要素も生成するものとしてよく、それにより、ビデオデコーダ30はシンタックス要素を使用して、ビデオスライスのピクチャブロックを復号する。
フレーム内予測ユニット254は、フレーム内予測のために、ピクチャブロック203(現在のピクチャブロック)および同じピクチャの1つまたは複数の以前に再構成されたブロック、たとえば、再構成された隣接ブロックを取得する、たとえば、受信するように構成される。たとえば、エンコーダ20は、複数の(予め決定された)フレーム内予測モードからフレーム内予測モードを選択するように構成され得る。
一実施形態において、エンコーダ20は、最適化基準に従って、たとえば、最小残差(たとえば、現在のピクチャブロック203に最もよく似ている予測ブロック255を提供するフレーム内予測モード)または最小レート歪みに基づき、フレーム内予測モードを選択するように構成され得る。
フレーム内予測ユニット254は、フレーム内予測ブロック255を、たとえば、選択されたフレーム内予測モードにおけるフレーム内予測パラメータに基づき、決定するようにさらに構成される。いかなる場合においても、ブロックに対するフレーム内予測モードを選択した後、フレーム内予測ユニット254は、フレーム内予測パラメータ、すなわち、ブロックに対する選択されたフレーム内予測モードを示す情報をエントロピー符号化ユニット270に提供するようにさらに構成される。一例において、フレーム内予測ユニット254は、以下で説明されているフレーム内予測技術の任意の組合せを実行するように構成され得る。
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズムまたはスキーム(たとえば、可変長符号化(variable length coding、VLC)スキーム、コンテキスト適応型VLC(context adaptive VLC、CAVLC)スキーム、算術符号化スキーム、コンテキスト適応型バイナリ算術符号化(context adaptive binary arithmetic coding、CABAC)、シンタックスベース文脈適応型バイナリ算術符号化(syntax-based context-adaptive binary arithmetic coding、SBAC)、確率区間分割エントロピー(probability interval partitioning entropy、PIPE)符号化、または別のエントロピー符号化方法もしくは技術)を、量子化された係数209、フレーム間予測パラメータ、フレーム内予測パラメータ、および/またはループフィルタパラメータのうちの1つまたはすべてで適用し(または適用するのを回避し)、たとえば、符号化されたビットストリーム21の形態で出力272を通して出力され得る符号化されたピクチャデータ21を取得するように構成される。符号化されたビットストリームは、ビデオデコーダ30に伝送されるか、またはビデオデコーダ30によるその後の伝送または取り出しのためにアーカイブされてもよい。エントロピー符号化ユニット270は、さらに、符号化されている現在のビデオスライスに対する別の構文要素をエントロピー符号化するように構成され得る。
ビデオエンコーダ20の別の構造的変更形態は、ビデオストリームを符号化するために使用できる。たとえば、非変換ベースのエンコーダ20は、いくつかのブロックまたはフレームに対して、変換処理ユニット206なしで、残差信号を直接量子化し得る。別の実装形態において、エンコーダ20は、単一のユニットに組み合わされている量子化ユニット208および逆量子化ユニット210を有し得る。
図3は、本出願の技術を実装するように構成されている、例示的なビデオデコーダ30を示している。ビデオデコーダ30は、たとえば、エンコーダ20によって符号化された符号化されたピクチャデータ(たとえば、符号化されたビットストリーム)21を受信して、復号されたピクチャ231を取得するように構成される。復号プロセスにおいて、ビデオデコーダ30は、ビデオエンコーダ20からビデオデータ、たとえば、符号化されたビデオスライスのピクチャブロックを表す符号化されたビデオビットストリーム、および関連付けられているシンタックス要素を受信する。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、および予測処理ユニット360を備える。予測処理ユニット360は、フレーム間予測ユニット344、フレーム内予測ユニット354、およびモード選択ユニット362を備え得る。いくつかの例において、ビデオデコーダ30は、図2のビデオエンコーダ20を参照しつつ説明されている符号化パスの一般的に逆である復号パスを実行し得る。
エントロピー復号ユニット304は、たとえば、量子化された係数309および/または復号された符号化パラメータ(図3に示されていない)、たとえば、フレーム間予測パラメータ、フレーム内予測パラメータ、ループフィルタパラメータ、および/または別のシンタックス要素のうちの任意の1つまたはすべて(復号されている)を取得するために、符号化されたピクチャデータ21上でエントロピー復号を実行するように構成される。エントロピー復号ユニット304は、フレーム間予測パラメータ、フレーム内予測パラメータ、および/または別のシンタックス要素を予測処理ユニット360に転送するようにさらに構成される。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
逆量子化ユニット310は、逆量子化ユニット110と同じ機能を有し得る。逆変換処理ユニット312は、逆変換処理ユニット212と同じ機能を有し得る。再構成ユニット314は、再構成ユニット214と同じ機能を有し得る。バッファ316は、バッファ216と同じ機能を有し得る。ループフィルタ320は、ループフィルタ220と同じ機能を有し得る。復号ピクチャバッファ330は、復号ピクチャバッファ230と同じ機能を有し得る。
予測処理ユニット360は、フレーム間予測ユニット344およびフレーム内予測ユニット354を含み得る。フレーム間予測ユニット344は、機能的にはフレーム間予測ユニット244と同じであり、フレーム内予測ユニット354は、機能的にはフレーム内予測ユニット254と同じであってよい。予測処理ユニット360は、通常、ブロック予測を実行し、および/または符号化されたデータ21から予測ブロック365を取得し、予測関係パラメータおよび/または選択された予測モードに関する情報を、たとえばエントロピー復号ユニット304から(明示的にまたは暗黙のうちに)受信するか、または取得するように構成される。
ビデオスライスがイントラ符号化された(I)スライスとして符号化されるときに、予測処理ユニット360のフレーム内予測ユニット354は、シグナリングされたフレーム内予測モードおよび現在のフレームまたはピクチャの以前に復号されたブロックからのものであるデータに基づき現在のビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。ビデオフレームがインター符号化された(BまたはP)スライスとして符号化されるときに、予測処理ユニット360のフレーム間予測ユニット344(たとえば、動き補償ユニット)は、エントロピー復号ユニット304から受信される動きベクトルおよび別のシンタックス要素に基づき現在のビデオスライスのビデオブロックに対する予測ブロック365を生成するように構成される。フレーム間予測については、1つの参照ピクチャリスト内の参照ピクチャのうちの1つから予測ブロックが生成され得る。ビデオデコーダ30は、既定の構築技術を使用することによって、またDPB330に記憶されている参照ピクチャに基づき、参照フレームリスト、リスト0およびリスト1を構築するものとしてよい。
予測処理ユニット360は、動きベクトルおよび別のシンタックス要素を解析することによって現在のビデオスライスのビデオブロックに対する予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックを生成するように構成される。たとえば、予測処理ユニット360は、いくつかの受信されたシンタックス要素を使用することによって、ビデオスライス内のビデオブロックを符号化するための予測モード(たとえば、フレーム内またはフレーム間予測)、フレーム間予測スライスのタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスに対する参照ピクチャリストのうちの1つもしくは複数の構築情報、スライスに対する各フレーム間符号化されたビデオブロックの動きベクトル、スライス内の各フレーム間符号化されたビデオブロックのフレーム間予測ステータス、および他の情報を、現在のビデオスライス内のビデオブロックを復号するために、決定する。
逆量子化ユニット310は、ビットストリーム内に提供され、エントロピー復号ユニット304によって復号される量子化された変換係数に対して逆量子化(すなわち、量子化解除)を実行するように構成され得る。逆量子化プロセスは、ビデオスライス内の各ビデオブロックについてビデオエンコーダ20によって計算された量子化パラメータを使用して、適用されるべき量子化度および同様に、適用されるべき逆量子化度を決定することを含み得る。
逆変換処理ユニット312は、逆変換(たとえば、逆DCT、逆整数変換、または概念的に類似する逆変換プロセス)を変換係数に適用し、ピクセル領域内に残差ブロックを生成するように構成される。
再構成ユニット314(たとえば、加算器314)は、逆変換ブロック313(すなわち、再構成された残差ブロック313)を予測ブロック365に、たとえば、再構成された残差ブロック313のサンプル値および予測ブロック365のサンプル値を加算することによって加算し、サンプル領域内の再構成されたブロック315を取得するように構成される。
ループフィルタユニット320(コーディングループ実行中またはコーディングループの後)は、再構成されたブロック315をフィルタ処理してフィルタ処理されたブロック321を取得し、ピクセル遷移を平滑化するか、またはビデオ画質を改善するように構成される。一例において、ループフィルタユニット320は、以下で説明されているフィルタ処理技術の任意の組合せを実行するように構成され得る。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、または別のフィルタ、たとえば、双方向フィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮鋭化もしくは平滑化フィルタ、または協調フィルタなどの1つまたは複数のループフィルタを表すことを意図されている。図3では、ループフィルタユニット320は、インループフィルタとして示されているが、別の実装形態では、ループフィルタユニット320は、ポストループフィルタとして実装され得る。
次いで、所与のフレームまたはピクチャ内の復号されたビデオブロック321は、その後の動き補償に使用される参照ピクチャを記憶する復号ピクチャバッファ330に記憶される。
デコーダ30は、たとえば、ユーザへの提示またはユーザによる視聴のために出力332を通して復号されたピクチャ31を出力するように構成される。
ビデオデコーダ30の別の変更形態は、圧縮されたビットストリームを復号するために使用され得る。たとえば、デコーダ30は、ループフィルタユニット320なしで出力ビデオストリームを生成し得る。たとえば、非変換ベースのデコーダ30は、いくつかのブロックまたはフレームに対して、逆変換処理ユニット312なしで、残差信号を直接逆量子化し得る。別の実装形態において、ビデオデコーダ30では、逆量子化ユニット310および逆変換処理ユニット312を単一にユニットに組み合わせているものとしてよい。
図4は、例示的な実施形態による、図2のエンコーダ20および/または図3のデコーダ30を備えるビデオコーディングシステム40の一例の説明図である。システム40は、本出願の様々な技術の組合せを実装するものとしてよい。説明されている実装形態において、ビデオコーディングシステム40は、撮像デバイス41、ビデオエンコーダ20、ビデオデコーダ30(および/または処理ユニット46の論理回路47を使用することによって実装されたビデオエンコーダ)、アンテナ42、1つもしくは複数のプロセッサ43、1つもしくは複数のメモリ44、および/または表示デバイス45を備え得る。
図に示されているように、撮像デバイス41、アンテナ42、処理ユニット46、論理回路47、ビデオエンコーダ20、ビデオデコーダ30、プロセッサ43、メモリ44、および/または表示デバイス45は、互いに通信することができる。説明されているように、ビデオコーディングシステム40は、ビデオエンコーダ20およびビデオデコーダ30を使用することによって例示されているが、別の異なる例では、ビデオコーディングシステム40は、ビデオエンコーダ20のみ、またはビデオデコーダ30のみを含み得る。
いくつかの例では、図示されているように、ビデオコーディングシステム40は、アンテナ42を備え得る。たとえば、アンテナ42は、ビデオデータの符号化されたビットストリームを伝送するか、または受信するように構成され得る。それに加えて、いくつかの例では、ビデオコーディングシステム40は、表示デバイス45を備えてもよい。表示デバイス45は、ビデオデータを提示するように構成され得る。いくつかの例では、図示されているように、論理回路47は、処理ユニット46によって実装され得る。処理ユニット46は、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックスプロセッサ、汎用プロセッサ、または同様のものを含み得る。ビデオコーディングシステム40は、オプションのプロセッサ43をさらに備え得る。オプションのプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックスプロセッサ、汎用プロセッサ、または同様のものを含み得る。いくつかの例では、論理回路47は、ハードウェア、たとえば、ビデオコーディング専用のハードウェアによって実装されてよい。プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、または同様のものによって実装されてもよい。それに加えて、メモリ44は、任意のタイプのメモリ、たとえば、揮発性メモリ(たとえば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)またはダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM))または不揮発性メモリ(たとえば、フラッシュメモリ)であってもよい。非限定的な例において、メモリ44は、キャッシュメモリとして実装されてもよい。いくつかの例では、論理回路47は、メモリ44に(たとえば、ピクチャバッファの実装のために)アクセスし得る。別の例では、論理回路47および/または処理ユニット46は、ピクチャバッファまたは同様のものの実装用のメモリ(たとえば、キャッシュ)を備え得る。
いくつかの例では、論理回路を使用することによって実装されるビデオエンコーダ20は、ピクチャバッファ(たとえば、処理ユニット46またはメモリ44によって実装される)と、グラフィックスプロセッシングユニット(たとえば、処理ユニット46によって実装される)とを備え得る。グラフィックスプロセッシングユニットは、ピクチャバッファに通信可能に結合され得る。グラフィックスプロセッシングユニットは、図2を参照しつつ説明されている様々なモジュール、および/または本明細書において説明されている任意の他のエンコーダシステムもしくはサブシステムを実装するために、論理回路47を使用することによって実装されるビデオエンコーダ20を備え得る。論理回路は、本明細書において説明されている様々な演算を実行するように構成され得る。
ビデオデコーダ30は、図3のデコーダ30を参照しつつ説明されている様々なモジュール、および/または本明細書において説明されている任意の他のデコーダシステムもしくはサブシステムを実装するために、類似の方式で論理回路47を使用することによって実装され得る。いくつかの例では、論理回路を使用することによって実装されるビデオデコーダ30は、ピクチャバッファ(処理ユニット46またはメモリ44によって実装される)と、グラフィックスプロセッシングユニット(たとえば、処理ユニット46によって実装される)とを備え得る。グラフィックスプロセッシングユニットは、ピクチャバッファに通信可能に結合され得る。グラフィックスプロセッシングユニットは、図3を参照しつつ説明されている様々なモジュール、および/または本明細書において説明されている任意の他のデコーダシステムもしくはサブシステムを実装するために、論理回路47を使用することによって実装されるビデオデコーダ30を備え得る。
いくつかの例では、ビデオコーディングシステム40のアンテナ42は、ビデオデータの符号化されたビットストリームを受信するように構成され得る。説明されているように、符号化されたビットストリームは、ビデオフレームコーディングに関する、本明細書において説明されている、データ、インジケータ、インデックス値、モード選択データ、または同様のもの、たとえば、コーディング分割に関するデータ(たとえば、変換係数もしくは量子化された変換係数、オプションのインジケータ(説明されているような)、および/またはコーディング分割を定義するデータ)を含み得る。ビデオコーディングシステム40は、アンテナ42に結合され、符号化されたビットストリームを復号するように構成されている、ビデオデコーダ30をさらに備え得る。表示デバイス45は、ビデオフレームを提示するように構成される。
図5は、例示的な実施形態による、図1のソースデバイス12および宛先デバイス14のいずれかまたは2つとして使用され得る装置500の簡略化されたブロック図である。装置500は、本出願の技術を実装するものとしてよい。装置500は、複数のコンピューティングデバイスを含むコンピューティングシステムの一形態であり得るか、または携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、もしくはデスクトップコンピュータなどの単一のコンピューティングデバイスの一形態であってよい。
装置500内のプロセッサ502は、中央演算処理装置であってよい。あるいは、プロセッサ502は、既存のまたは将来開発されることになる情報を操作するか、もしくは処理することができる、任意の他のタイプのデバイスまたは複数のデバイスであってよい。図示されているように、開示されている実装形態は、プロセッサ502などの単一のプロセッサを使用することによって実施され得るが、速度および効率に関する利点は、複数のプロセッサを使用することによって達成され得る。
一実装形態において、装置500内のメモリ504は、リードオンリーメモリ(Read-Only Memory、ROM)デバイス、またはランダムアクセスメモリ(Random Access Memory、RAM)デバイスであってよい。任意の他の好適なタイプのストレージデバイスは、メモリ504として使用されてよい。メモリ504は、バス512を通じてプロセッサ502によってアクセスされるコードおよびデータ506を含み得る。メモリ504は、オペレーティングシステム508とアプリケーションプログラム510とをさらに収容し得る。アプリケーションプログラム510は、本明細書において説明されている方法をプロセッサ502に実行させることを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1からNを含むものとしてよく、アプリケーション1からNは、本明細書において説明されている方法を実行するビデオコーディングアプリケーションをさらに含むものとしてよい。装置500は、二次メモリ514の形態の追加のメモリをさらに備え得る。二次メモリ514は、たとえば、モバイルコンピューティングデバイスとともに使用されるメモリカードであってもよい。ビデオ通信セッションは、大量の情報を含み得るので、情報は、二次メモリ514に完全にまたは部分的に記憶され、必要に応じて処理のためにメモリ504にロードされ得る。
装置500は、1つまたは複数の出力装置、たとえば、ディスプレイ518をさらに含み得る。一例において、ディスプレイ518は、ディスプレイをタッチ入力を感知するように動作可能であるタッチセンサー式素子と結合したタッチセンサー式ディスプレイであってよい。ディスプレイ518は、バス512を通じてプロセッサ502に結合されるものとしてよい。ディスプレイ518に加えて、ユーザが装置500をプログラムするか、または他の方法で装置500を使用することを可能にする別の出力デバイスが、さらに提供され得るか、またはディスプレイ518に代替として別の出力デバイスが提供されてもよい。出力デバイスがディスプレイであるか、またはディスプレイを含むときに、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、ブラウン管(cathode-ray tube、CRT)ディスプレイ、プラズマディスプレイ、または有機LED(organic LED、OLED)ディスプレイなどの発光ダイオード(light emitting diode、LED)ディスプレイを使用することを含む、異なる方式で実装されてもよい。
装置500は、画像感知デバイス520をさらに備えるか、または接続され得る。画像感知デバイス520は、たとえば、カメラ、または画像を感知することができ、既存のものであるか、もしくは将来開発される予定のものである任意の他の画像感知デバイス520である。ピクチャは、たとえば、装置500を動作させるユーザのピクチャである。画像感知デバイス520は、装置500を動作させるユーザに直接対向して配置されてもよい。一例において、画像感知デバイス520の配置および光軸は、画像感知デバイス520の視野がディスプレイ518に隣接する領域を含み、ディスプレイ518がその領域から見えるように構成され得る。
装置500は、音感知デバイス522をさらに備えるか、または接続され得る。音感知デバイス522は、たとえば、マイクロフォン、または装置500の近くの音を感知することができ、既存のものであるか、もしくは将来開発される予定のものである任意の他の音感知デバイスである。音感知デバイス522は、装置500を操作するユーザに直接対向して配置されてもよく、ユーザが装置500を動作させるときにユーザによって発せられる音、たとえば、声もしくは他の音を受信するように構成され得る。
装置500のプロセッサ502およびメモリ504は、図5には、単一のユニットに一体化されているように描かれているが、別の構成もそのまま使用されてもよい。プロセッサ502の実行は、直接結合され得る複数のマシン(各マシンは1つもしくは複数のプロセッサを有する)に分散され得るか、またはローカル領域もしくは別のネットワーク内に分散され得る。メモリ504は、複数のマシンに分散されてもよい。たとえば、メモリ504は、ネットワークベースのメモリまたは装置500を動作させる複数のマシン内のメモリである。本明細書では単一のバスとして描かれているが、装置500のバス512は、複数のバスによって形成されてもよい。さらに、二次メモリ514は、装置500の別のコンポーネントに直接結合され得るか、またはネットワークを通じてアクセスされ得る。それに加えて、二次メモリ514は、単一の一体化されたユニット、たとえば、1つのメモリカード、または複数のユニット、たとえば複数のメモリカードを備え得る。したがって、装置500は、複数の構成で実装され得る。
図6は、二分木、三分木、および四分木の分割モードを説明している。
四分木は、1つのノードが4つの子ノードに分割できることを示す木構造である。H.265ビデオコーディング規格では、四分木ベースのCTU分割モードが使用される。CTUは、ルートノードとして使用され、各ノードは正方形領域に対応する。ノードは、分割され得ないか(この場合、ノードに対応する領域はCUである)、またはノードは、4つの下位レベルノードに分割され、具体的には、図6の(a)に示されているように、正方形領域は4つの等しいサイズの正方形領域に分割され(4つの正方形領域の各々の長さおよび幅は、分割前の正方形領域の長さおよび幅の半分である)、各領域は1つのノードに対応する。
二分木は、1つのノードが2つの子ノードに分割できることを示す木構造である。二分木が使用される既存のコーディング方法では、二分木構造上のノードは、分割され得ないか、またはノードは、2つの下位レベルノードに分割される。ノードを2つのノードに分割する方式は次の2つがある。(1)水平二元分割:図6の(b)に示されているように、ノードに対応する領域が、上側領域および下側領域の2つの等しいサイズの領域に分割され、各領域は1つのノードに対応するか、または(2)垂直二元分割:図6の(c)に示されているように、ノードに対応する領域が、左側領域および右側領域の2つの等しいサイズの領域に分割され、各領域は1つのノードに対応する。
三分木は、1つのノードが3つの子ノードに分割できることを示す木構造である。三分木が使用される既存のコーディング方法では、三分木構造上のノードは、分割され得ないか、またはノードは、3つの下位レベルノードに分割される。ノードを3つのノードに分割する方法には次の2つがある。(1)水平三元分割:図6の(d)に示されているように、ノードに対応する領域が、上側領域、中間領域、および下側領域の3つの領域に分割され、各領域は1つのノードに対応し、上側領域、中間領域、下側領域の高さはそれぞれノードの高さの1/4、1/2、1/4であるか、または(2)垂直三元分割:図6の(e)に示されているように、ノードに対応する領域が、左側領域、中間領域、および右側領域の3つの領域に分割され、各領域は1つのノードに対応し、左側領域、中間領域、右側領域の幅はそれぞれノードの幅の1/4、1/2、1/4である。
H.265ビデオコーディング規格では、ピクチャのフレームは、重なり合わないコーディングツリーユニット(CTU)に分割される。CTUサイズは、64×64に設定されてよい(CTUサイズは、代替的に別の値に設定されてもよく、たとえば、JVET参照ソフトウェアJEMにおけるCTUサイズは、128×128または256×256に増やされる)。64×64のCTUは、64列および1列当たり64ピクセルを有する長方形のピクセル行列を含み、各ピクセルは輝度成分または/およびクロミナンス成分を含む。
H.265では、四分木(quad-tree、略してQT)ベースのCTU分割モードが使用される。CTUは、四分木のルート(root)ノードとして使用され、CTUは、四分木分割モードで複数のリーフノード(leaf node)に再帰的に分割される。1つのノードが1つのピクチャ領域に対応する。ノードが分割されない場合、そのノードはリーフノードと称され、そのノードに対応するピクチャ領域はCUとなる。ノードがさらに分割される場合、そのノードに対応するピクチャ領域は、4つの等しいサイズの領域(4つの領域の長さおよび幅は、それぞれ分割された領域の長さおよび幅の1/2である)に分割され、各領域は1つのノードに対応する。これらのノードがさらに分割されるかどうかは、別に決定される必要がある。ノードが分割されるべきかどうかは、ビットストリーム内にあり、ノードに対応する、分割フラグsplit_cu_flagによって指示される。ノードAは、i=0、1、2、3として、4つのノードBiに分割される。BiはAの子ノードと称され、AはBiの親ノードと称される。ルートノードの四分木深さ(qtDepth)は0である。ノードの四分木深さは、そのノードの親ノードの四分木深さ+1である。説明を簡潔にするため、以下では、ノードのサイズおよび形状は、ノードに対応するピクチャ領域のサイズおよび形状である。
より具体的には、64×64のCTUノード(その四分木深さは0である)については、CTUノードに対応するsplit_cu_flagに基づき、分割が実行され得ず、そのCTUノードは、64×64のCUとなり得るか、またはそのCTUノードは、4つの32×32のノード(その四分木深さが1である)に分割される。4つの32×32のノードの各々は、そのノードに対応するsplit_cu_flagに基づきさらに分割されるか、または分割され得ない。32×32のノードがさらに分割された場合、4つの16×16のノード(四分木深さは2である)が生成される。残りは、ノードがさらに分割されなくなるまで、類推により推論され得る。このようにして、1つのCTUがCUの1つのグループに分割される。CUの最小サイズ(size)は、シーケンスパラメータセット(SPS:Sequence Parameter Set)で識別される。たとえば、8×8のCUは最小CUである。前述の再帰的分割プロセスにおいて、ノードのサイズが最小CUサイズ(minimum CU size)に等しい場合、そのノードは既定でさらに分割されることはなく、ノードの分割フラグは、ビットストリームに含まれる必要はない。
ノードがリーフノードであると解析された後、リーフノードはCUであり、CUに対応するコーディング情報(予測モードおよびCUの変換係数などの情報、たとえばH.265におけるcoding_unit()シンタックス構造を含む)はさらに解析される。次いで、予測、量子化解除、逆変換、およびループフィルタ処理などの復号処理がコーディング情報に基づきCUに対して実行され、CUに対応する再構成されたピクチャを生成する。四分木構造は、CTUがローカルのピクチャの特徴に基づき適切なサイズのCUのグループに分割されることを可能にする。たとえば、平坦な領域は比較的大きなCUに分割され、豊かなテクスチャを有する領域は比較的小さなCUに分割される。
四分木分割に基づき、二元分割モードおよび三元分割モードが、多用途ビデオコーディングテストモデル(VTM:Versatile video coding Test Model)参照ソフトウェアに追加される。VTMは、JVETによって開発された新しいコーデック参照ソフトウェアである。
二元分割は、ノードを2つの子ノードに分割することである。特定の二元分割モードには次の2つがある。(1)水平二元分割:図6の(b)に示されているように、ノードに対応する領域が、上側領域および下側領域の2つの等しいサイズの領域に分割され(具体的には、幅は変更されずそのままであり、高さは分割前の領域の高さの半分である)、各領域は1つのノードに対応するか、または(2)垂直二元分割:図6の(c)に示されているように、ノードに対応する領域が、左側領域および右側領域の2つの等しいサイズの領域に分割される(具体的には、高さは変更されずそのままであり、幅は分割前の領域の幅の半分である)。
三元分割は、ノードを3つの子ノードに分割することである。特定の三元分割モードには次の2つがある。
(1)水平三元分割:図6の(d)に示されているように、ノードに対応する領域が、上側領域、中間領域、および下側領域の3つの領域に分割され、各領域は1つのノードに対応し、上側領域、中間領域、下側領域の高さはそれぞれノードの高さの1/4、1/2、1/4であるか、または(2)垂直三元分割:図6の(e)に示されているように、ノードに対応する領域が、左側領域、中間領域、および右側領域の3つの領域に分割され、各領域は1つのノードに対応し、左側領域、中間領域、右側領域の幅はそれぞれノードの幅の1/4、1/2、1/4である。
VTMでは、QTとBT/TTをカスケード接続する分割モードが使用され、これは略してQT-MTT(Quad Tree plus Multi-Type Tree)分割モードと称される。より具体的には、CTUは、QTを使用することによって分割され、それによりQTリーフノードを生成する。QT内のノードは、四分木分割を使用することによって4つのQT子ノードにさらに分割され得るか、または1つのQTリーフノードが、四分木分割を使用することなく生成され得る。QTリーフノードは、MTTのルートノードとして機能する。MTT内のノードは、水平二元分割、垂直二元分割、水平三元分割、および垂直三元分割の4つの分割モードのうちの1つを使用することによって子ノードに分割され得るか、またはさらに分割されることなくMTTリーフノードになる。MTTのリーフノードは、コーディングユニットCUである。
図7は、QT-MTTを使用することによってCTUがaからpまでの16個のCUに分割される一例を示している。図7の右図では、各端点は1つのノードを表している。1つのノードに接続されている4本の線は四分木分割を示し、1つのノードに接続されている2本の線は二元分割を示し、1つのノードに接続されている3本の線は三元分割を示している。実線はQT分割を示し、破線はMTT分割の第1層分割を示し、一点鎖線はMTT分割の第2層分割を示している。aからpは16個のMTTリーフノードであり、各MTTリーフノードは1個のCUである。図7の左図に示されているCUの分割図は、図7の右図に示されている分割モードを使用することによってCTUについて取得される。
QT-MTT分割モードでは、各CUは、QT深さ(Quad-tree depth、QT depth)とMTT深さ(Multi-Type-Tree depth、MTT depth)とを有する。QT深さは、CUが属するQTリーフノードのQT深さを示し、MTT深さは、CUが属するMTTリーフノードのMTT深さを示す。コーディングツリーのルートノードについては、QT深さは0であり、MTT深さは0である。QT分割がコーディングツリー上のノードに対して使用される場合、分割を通じて取得される子ノードのQT深さは、そのノードのQT深さ+1となり、MTT深さは変化せずそのままである。同様に、MTT分割(すなわち、BT分割またはTT分割の一方)がコーディングツリー上のノードに対して使用される場合、分割を通じて取得される子ノードのMTT深さは、ノードのMTT深さ+1となり、QT深さは変化せずそのままである。たとえば、図7では、a、b、c、d、e、f、g、i、またはjのQT深さは1であり、MTT深さは2であり、hのQT深さは1であり、MTT深さは1であり、n、o、またはpのQT深さは2であり、MTT深さは0であり、lまたはmのQT深さは2であり、MTT深さは1である。CTUが1つのCUのみに分割されている場合、CUのQT深さは0であり、MTT深さは0である。
HEVCにおいて、1つのCUは、1つの輝度ブロック量子化パラメータ(Quantization Parameter、QP)および2つのクロミナンスブロック量子化パラメータを含み、クロミナンスブロック量子化パラメータは輝度ブロック量子化パラメータから導出される。クロミナンスブロック量子化パラメータは、略してクロミナンスQPと称され、輝度ブロック量子化パラメータは、略して輝度QPと称される。現在のCU(current CU)の輝度QPの復号は、次の処理を含む。
diff_cu_qp_delta_depthシンタックス要素は、ピクチャパラメータセット(Picture Parameter Set、PPS)から取得され、量子化グループ(Quantization Group、QG)は、このシンタックス要素に基づき導出される。具体的には、量子化グループは、N×Nの領域であり、N=CTUSize>>diff_cu_qp_delta_depth、CTUSizeはCTUの辺長である。たとえば、64×64のCTUのCTUSizeは64である。64×64のCTUは、サイズがN×NであるM個のQGに分割され、Mは正整数である。たとえば、diff_cu_qp_delta_depth=2のときに、CTUは、図8に示されているように、サイズが16×16である16個のQGに分割される。HEVCではQT分割のみが使用されるので、前述のQG決定方式で取得されたQGが、サイズがQGのサイズよりも小さい複数のCUを含む場合、そのQGは確実に複数の完全なCUを含むことになる。言い換えると、サイズがQGのサイズよりも小さい複数のCUは、QGに完全に含まれ、サイズがQGのサイズよりも小さいCUは、複数のQGに含めることができない。それに加えて、QT分割のみが使用されるときに、前述のQG決定方式で取得されるQGは、CUがQGと同じサイズを有する場合にCUが確実にQGに含まれていることをさらに確実にすることができる。CUがQGより大きいときに、CUは確実に複数の完全なQGを含む。
現在のCUが配置されている現在の量子化グループ(current quantization group、略して現在のQG)が決定され、現在のQGは、現在のCUの左上隅の座標をカバーするQGである。現在のCUの左上隅の座標がPcu=(xCb,yCb)である場合、現在の量子化グループの左上隅の座標はPqg=(xQg,yQg)であり、次のようになる。
xQg=xCb-(xCb&((1<<Log2MinCuQpDeltaSize)-1))
yQg=yCb-(yCb&((1<<Log2MinCuQpDeltaSize)-1))
Log2MinCuQpDeltaSize=log2(CTUSize)-diff_cu_qp_delta_depthであり、log2(x)は2を底とするxの対数である。
現在のCUのQP差分値、たとえば、HEVC規格のCuQpDeltaValが取得される。現在のCUがQGにおいて残差を有する第1のCUである場合(たとえば、現在のCUのコーディングされたブロックフラグcbf_luma、cbf_cb,cbf_crの1つが0でない値を有する場合、現在のCUが残差を有することを示す)、現在のCUのQP差分値はビットストリームから解析される。QP差分値は、現在のQGにおける現在のCUのそれより後にコーディングシーケンスがあるすべてのCUのQP差分値として使用される。コーディングシーケンスが現在のQGにおける現在のCUのそれより前であるすべてのCUのQP差分値は0である。
現在のQGの輝度ブロック量子化パラメータ予測因子、たとえば、HEVC規格におけるqPY_PREDが取得される。qPY_PREDは、現在のQGの左側隣接配置の輝度QPおよび上側隣接配置の輝度QPに基づき予測を通じて取得され得る。現在のQGの左側隣接配置は(xQg-1,yQg)であり、上側隣接配置は(xQg,yQg-1)である。上側隣接配置における輝度QPは、上側隣接配置をカバーするコーディングユニットの輝度QPである。上側隣接配置が利用不可能であるか、または現在のブロックと同じタイル(Tile)に属していない場合、上側隣接配置における輝度QPは、前のQGにおける最後のCUの輝度QP(たとえば、HEVC規格におけるqPY_PREV)に設定される。同様に、左側隣接配置における輝度QPは、左側隣接配置をカバーするコーディングユニットの輝度QPである。左側隣接配置が利用不可能であるか、または現在のブロックと同じタイルに属していない場合、左側隣接配置における輝度QPは、前のQGにおける最後のCUの輝度QPに設定される。隣接配置が利用不可能であると決定する方法は複数あり得る。たとえば、隣接配置が現在のストリップの外側にある場合、隣接配置は利用不可能である。別の例では、隣接配置が現在のピクチャの外側にある場合、隣接配置は利用不可能である。別の例では、隣接配置が現在のCTUの内側にない場合、隣接配置は利用不可能である。別の例では、隣接配置におけるピクセルが再構成されていない場合、隣接配置は利用可能ではない。
現在のCUの輝度QPは、現在のCUのQP差分値(QP delta)に、現在のQGの輝度ブロック量子化パラメータ予測因子を加えることによって取得される。
QT-MTT分割モードにおいて、前述のQG分割モードを使用することで、1つのQGが1つのCUの一部のみを含むことになり得るか、または1つのCUが複数の異なるQGを含み得ることがわかる。したがって、QGとCUとの間のマッチングを確実にし、すなわち、1つのCUが2つの異なるQGに属さないことを確実にし、それによって、復号効率を改善するための新しい復号(QG決定)方法が必要である。
図9は、本出願の一実施形態によるビデオデコーダ(たとえば、図3のビデオデコーダ30)の例示的な動作を示すフローチャートである。ビデオデコーダ30の1つまたは複数の構造要素は、図9の技術を実行するために使用されてよい。この実施形態は、次のステップを含む。
901:コーディングツリー分割情報を解析して現在のノードを取得する。
コーディングツリー分割情報は、ビデオデコーダ30によって受信されたビットストリームから取得され、このステップは、ビデオデコーダ30内のエントロピー復号ユニットによって特に実行され得る。
現在のノードは、CUであってよい、たとえば、図7のa、b、c、d、e、f、g、h、i、j、k、l、m、n、o、またはpであってよい。あるいは、現在のノードは、CTUのQT-MTT分割プロセスにおいて分割される必要がさらにあるノードであり得る。図7は例として使用されており、現在のノードは、aおよびbに対応するノード、cおよびdに対応するノード、e、fおよびgに対応するノード、iおよびjに対応するノード、l、m、n、oおよびpに対応するノード、lおよびmに対応するノード、a、b、c、d、e、fおよびgに対応するノード、またはh、iおよびjに対応するノードであってよい。
902:現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定する。一実装形態において、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。左上隅の座標が決定された後、現在の量子化グループによってカバーされる特定の領域が決定され得る。したがって、次の説明において、現在の量子化グループによってカバーされる領域を決定することは、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することと理解されてよい。
異なる要件に基づき、現在のノードの深さNを決定する異なる方式があり得ることは理解されてよい。
本発明のこの実施形態では、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定する4つの方式が提供され、次のとおりである。
方式1:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。
特に、最初に現在のノードの深さNが第1の閾値T1よりも大きいことが決定される。現在のノードの深さNが第1の閾値T1より大きい場合、現在のノードの第(N-T1)層の親ノードが取得される。次いで、現在の量子化グループによってカバーされる領域が第(N-T1)層の親ノードによってカバーされる領域であると決定される。第1の閾値T1は、プリセットされた非負整数である、たとえば、0、1、2、もしくは3であってよい。
現在のノードの深さNを決定する2つの方式がある。1つの方式は、現在のノードの深さNを現在のノードのQT depthとして決定することである。たとえば、図7では、ノードa、b、c、d、e、f、g、h、i、j、またはkのQT depthは1であり、l、m、n、o、またはpのQT depthは2である。他の方式は、現在のノードの深さNを、現在のノードのQT depthと現在のノードのMTT depthとの和として決定することである。たとえば、図7におけるノードkのQT depthは1であり、MTT depthは0である。したがって、ノードkの深さNは1である。図7におけるノードaのQT depthは1であり、MTT depthは2である。したがって、ノードaの深さNは3である。コーディングツリーのルートノードのQT depthは0である。QT分割がQTコーディングツリー上のノードに対して使用される場合、分割を通じて取得される子ノードのQT depthは、そのノードのQT depth+1である。QT分割がQT上のノードに対して使用されない場合、そのノードはMTTルートノードである。MTTルートノードのMTT depthは0である。MTT分割がMTTコーディングツリー上のノードに対して使用される場合、分割を通じて取得された子ノードのMTT depthはノードのMTT depth+1であり、子ノードのQT深さはノードのQT depthである。言い換えると、CTUルートノードから始めると、現在のノードが、S1回のQT分割およびS2回のMTT分割の値に取得された場合、現在のノードのQT depthはS1であり、現在のノードのMTT depthはS2である。図7が、一例として使用されている。MTT depthが1であるノードは、aおよびbに対応するノード(すなわち、aおよびbが配置される領域を含むノード)、cおよびdに対応するノード、e、fおよびgに対応するノード、hに対応するノード、iおよびjに対応するノード、lに対応するノード、ならびにmに対応するノードを含む。MTT depthが1であることは、QT分割がCTUで実行された後に取得されるQTリーフノード上でMTT分割を1回のみ実行することによってノードが取得され得ることを示している。MTT depthが2であるノードは、aに対応するノード、bに対応するノード、cに対応するノード、dに対応するノード、eに対応するノード、fに対応するノード、gに対応するノード、iに対応するノード、およびjに対応するノードを含む。MTT depthが2であることは、QT分割がCTU上で実行された後に取得されるQTリーフノード上でMTT分割を2回実行することによってノードが取得されることを示している。類推により、MTT depthが3、4、5、または同様の値であるノードがあってもよい(図7ではMTT depthが2より大きいノードはない)。
方式2:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。この実装形態において、現在のノードの深さNは、現在のノードのQT depthとして決定される。
現在のノードの深さNが第1の閾値T1より大きい場合、または現在のノードのマルチタイプ木深さMが0より大きい場合、現在のノードの第K層の四分木ノードが取得され、K=min(N,T1)であり、min(a,b)はaとbのうちの小さい方の値が使用されることを示す。次いで、現在の量子化グループによってカバーされる領域が第K層の四分木ノードによってカバーされる領域であると決定される。第1の閾値T1は、プリセットされた非負整数である、たとえば、0、1、2、もしくは3であってよい。
第K層の四分木ノードは、現在のノードを含み、CTUから開始してK回の四分木分割の後に生成されるノード、すなわち、現在のノードの第(M+N-K)層の親ノードである。第K層の四分木ノードの左上隅の座標(xK,yK)は次のようになる。
xK=xCb-(xCb&((1<<K1)-1))
yK=yCb-(yCb&((1<<K1)-1))
xCbおよびyCbは、現在のノードの左上隅の座標(xCb,yCb)の水平座標および垂直座標を示し、K1=log2(CTUSize)-Kである。
第K層の四分木ノードの幅および高さは(1<<K1)未満であり、a<<bはaをbビットだけ左にシフトする演算を示す。
方式3:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。現在のノードは、QT-MTTコーディングツリー上のノードであり、現在のノードはさらに分割され得るか、または分割され得ない。
特に、最初に現在のノードの深さNが第1の閾値T1に等しいかどうかが決定される。現在のノードの深さNが第1の閾値T1に等しい場合、現在の量子化グループによってカバーされる領域が、現在のノードによってカバーされる領域であると決定される。それに対応して、ノードの左上隅の座標が保存され、ノードの幅および高さも保存され得る。現在の量子化グループ内のCUは、輝度QP予測などの処理中に保存された情報を読み込んでもよい。
第1の閾値T1の値および深さNを決定する方式については、方式1を参照のこと。
方式4:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。この実装形態において、現在のノードの深さNは、現在のノードのQT depthとして決定される。
条件1および条件2の両方が満たされた場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。条件1は、現在のノードの深さNが第1の閾値T1以下であるということである。条件2は、現在のノードのマルチタイプ木深さMが0に等しいということである。
方式5:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。この実装形態において、現在のノードの深さNは、現在のノードのQT depthとして決定される。
条件3および条件4の両方が満たされるか、または条件5が満たされる場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。条件3は、現在のノードの深さNが第1の閾値T1に等しいということである。条件4は、現在のノードのマルチタイプ木深さMが0に等しいということである。条件5は、現在のノードの深さNが第1の閾値T1未満であるということである。
方式6:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。この実装形態において、現在のノードの深さNは、現在のノードのQT depthとして決定される。
条件3および条件4の両方が満たされるか、または条件5および条件6の両方が満たされる場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。条件3は、現在のノードの深さNが第1の閾値T1に等しいということである。条件4は、現在のノードのマルチタイプ木深さMが0に等しいということである。条件5は、現在のノードの深さNが第1の閾値T1未満であるということである。条件6は、現在のノードのマルチタイプ木深さMが第4の閾値T4以下であるということである。
第4の閾値T4は、プリセットされた正整数である。たとえば、T4は、1、2、または3であってよい。別の例では、T4=T1-Nである。
方式7:現在のノードの深さNおよび第1の閾値T1に基づき、現在の量子化グループによってカバーされる領域を決定する。この実装形態において、現在のノードの深さNは、現在のノードのQT depthとして決定される。
条件1および条件7の両方が満たされた場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。条件1は、現在のノードの深さNが第1の閾値T1以下であるということである。条件7は、現在のノードのマルチタイプ木深さMがT1-N以下であるということである。
方式8:現在のノードの深さN、現在のノードの分割モード、および第2の閾値T2に基づき、現在の量子化グループによってカバーされる領域を決定する。
詳細は、次のとおりである。
1.現在のノードの深さNが第2の閾値T2-1に等しく、現在のノードの分割モードが三元分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。
2.あるいは、現在のノードの深さNが第2の閾値T2に等しく、現在のノードの分割モードが二元分割モードまたは四分木分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。
3.あるいは、現在のノードの深さが第2の閾値以下であり、現在のノードがもはや分割されない場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。この場合、現在の量子化グループによってカバーされる領域は、CUのカバレッジ領域である。
第2の閾値T2は、プリセットされた正整数である。たとえば、第2の閾値T2は、第1の閾値T1のX倍に設定されてよく、Xは1より大きい整数である。たとえば、Xは2、3、または4であってよい。あるいは、T2は2、3、4、6、8、9、または同様の値に直接設定されてよい。
現在のノードの深さNが、現在のノードのQT depthおよび現在のノードの二元深さDbに基づき決定される。たとえば、一実装形態において、N=Dq*2+Dbであり、別の実装形態では、N=Dq+Dbである。Dqは、現在のノードのQT depthである。
MTT分割は、二元分割、三元分割、または四分木分割であってよい。したがって、異なる分割モードでは、現在のノードの二元深さDbは、異なる方式で決定され得る。特に、非二元分割の深さは、二元深さに変換される必要がある。たとえば、変換は、次のようにして実行され得る。
現在のノードがMTTルートノードである場合に、現在のノードの二元深さDbは0である。
あるいは、現在のノードがMTTノードであり、MTTルートノードではなく(言い換えれば、現在のノードのMTT depthが0より大きい)、現在のノードが二元分割モードで取得された子ノードである場合、現在のノードの二元深さDbは、現在のノードの直接の親ノードの二元深さ+1である。
あるいは、現在のノードがMTTノードであり、MTTルートノードではなく、現在のノードが三元分割モードで取得された中間子ノード(すなわち、3つの子ノードの中の中間子ノード)である場合、現在のノードの二元深さDbは、現在のノードの直接の親ノードの二元深さ+1である。
あるいは、現在のノードがMTTノードであり、MTTルートノードではなく、現在のノードが三元分割モードで取得された非中間子ノードである場合、現在のノードの二元深さDbは、現在のノードの直接の親ノードの二元深さ+2である。
N=Dq*2+Dbの方式で決定された深さは、ノードの面積と1対1の対応関係にあることがわかる。たとえば、CTUが128×128であり、ノードの深さがNであるときに、ノードの面積は(128×128)>>Nである。
方式9:現在のノードの深さN、現在のノードの分割モード、および第3の閾値T3に基づき、現在の量子化グループによってカバーされる領域を決定する。
詳細は、次のとおりである。
1.現在のノードの深さNが第3の閾値T3-1に等しく、現在のノードの分割モードが三元分割モードまたは四分木分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。
2.あるいは、現在のノードの深さNが第3の閾値T3に等しく、現在のノードの分割モードが二元分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。
3.あるいは、現在のノードの深さNが第3の閾値T3に等しく、現在のノードがもはや分割されない場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定される。この場合、現在の量子化グループによってカバーされる領域は、CUのカバレッジ領域である。
第3の閾値T3は、プリセットされた正整数である、たとえば、3、4、または5であってよい。
現在のノードの深さNを決定する方式については、方式3を参照のこと。
903:現在の量子化グループによってカバーされる領域における現在のCUのQP差分値を取得する。
このステップの具体的な実装形態については、既存の実装形態を参照のこと、たとえば、HEVC規格におけるCuQpDeltaVal方式を参照のこと。より具体的には、現在のCUが、現在のQG内で残差を有する第1のCUである場合、現在のCUのQP差分値(たとえば、絶対値およびシンボルを含む)はビットストリームから解析される。現在のCUのコーディングシーケンスが、現在のQG内に残差を有する第1のCUのコーディングシーケンスの後である場合、現在のCUのQP差分値は、現在のQG内に残差を有する第1のCUのQP差分値として決定される。現在のCUのコーディングシーケンスが、現在のQG内に残差を有する第1のCUのコーディングシーケンスの前にある場合、現在のCUのQP差分値は0であると決定される。現在のCUのコーディングされたブロックフラグ(coded block flag、cbf)cbf_luma、cbf_cb、cbf_crのうち少なくとも1つが非0値を有する場合、現在のCUが残差を有していることを示す。
904:現在のCUのQP差分値に基づき現在のCUの再構成されたピクチャを取得する。
このステップの具体的な実装形態については、既存の実装形態を参照のこと、たとえば、HEVC規格における方式を参照のこと、または別の例では、H.264/AVC規格における方式を参照のこと。たとえば、現在のCUの量子化解除された係数は、現在のCUのQP差分値に基づき取得され得る。現在のCUの再構成された残差ブロックは、現在のCUの量子化解除された係数に基づき取得される。次いで、現在のCUの再構成されたピクチャは、現在のCUの再構成された残差ブロックに基づき取得される。
具体的には、左側隣接配置における輝度QPAおよび上側隣接配置における輝度QPBが、最初に、現在の量子化グループの左上隅の座標に基づき取得され、現在のQGの輝度QP予測因子が、QPAおよびQPBに基づき取得される。具体的な実装形態については、HEVCにおけるqPY_PREDの算出方法を参照のこと。現在のQGの左上隅の座標は、Pqg=(xQg,yQg)として記録される。現在のQGの左側隣接配置は、PA=(xQg-1,yQg)であり、現在のQGの上側隣接配置は、PB=(xQg,yQg-1)である。上側隣接配置における輝度QPは、上側隣接配置PBをカバーするコーディングユニットの輝度QPである。上側隣接配置が利用不可能であるか(たとえば、上側隣接配置が現在のストリップの外にあるか、もしくは上側隣接配置の再構成が完了していない)、または現在のブロックと同じタイル(Tile)に属していない場合、上側隣接配置の輝度QPは、前のQGにおける最後のCUの輝度QP(たとえば、HEVC規格におけるqPY_PREV)に設定される。同様に、左側隣接配置における輝度QPは、左側隣接配置PAをカバーするコーディングユニットの輝度QPである。左側隣接配置が利用不可能であるか、または現在のブロックと同じタイルに属していない場合、左側隣接配置における輝度QPは、前のQGにおける最後のCUの輝度QPに設定される。
現在のQGの輝度QP予測因子は、QPAおよびQPBに基づき、次の方法のうちの1つを使用して取得され得る。
方法1:QPAとQPBとの平均値が、輝度QP予測因子として使用される。方法は、HEVCにおける方法と同じである。
方法2:現在のCUの面積はR1であり、左側隣接配置が配置されるCUの面積はR2であり、上側隣接配置が配置されるCUの面積はR3である。max(R1,R2)/min(R1,R2)*Th<max(R1,R3)/min(R1,R3)である場合、輝度QP予測因子はQPAに設定される。max(R1,R2)/min(R1,R2)>max(R1,R3)/min(R1,R3)*Thである場合、輝度QP予測因子はQPBに設定される。そうでない場合、輝度QP予測因子はQPAとQPBとの平均値に設定される。max(a,b)はaとbのうちの大きい方の値であり、min(a,b)はaとbのうちの小さい方の値であり、Thは1以上の正の数であり、たとえばTh=1、2、4である。
QG内のすべてのCUの輝度QP予測因子の計算方法は同じである。したがって、簡素化された実装形態として、QGの第1のCUが復号されるときに、QGの輝度QP予測因子に対する計算処理が実行されるものとしてよく、輝度QP予測因子はQG内の別のCUに対して使用される。このようにして、計算量が減らされる。
次いで、現在のCUの輝度QPは、現在のCUのQP差分値(QP delta)に、現在のQGの輝度ブロック量子化パラメータ予測因子を加えることによって取得される。具体的には、QpY=((qPY_PRED+CuQpDeltaVal+52+2*QpBdOffsetY)%(52+QpBdOffsetY))-QpBdOffsetYであり、qPY_PREDは輝度ブロック量子化パラメータ予測因子であり、CuQpDeltaValは現在のCUのQP差分値であり、QpBdOffsetYは輝度成分のビット幅に関するプリセットされた定数である(たとえば、輝度成分のビット幅が8であるときに、QpBdOffsetYは0であり、輝度成分のビット幅が10であるときに、QpBdOffsetYは12である)。
任意選択で、改善された処理方式において、現在のQGにおける残差を有する第1のCUのQP差分値が0に等しくない場合、現在のQGにおける残差を有する第1のCUのコーディングシーケンスよりも前にコーディングシーケンスがあるすべてのCUの輝度QPは、残差を有する第1のCUの輝度QPに修正される。言い換えると、現在のQG内のすべてのCUのQP差分値は、現在のCUのQP差分値に設定され、現在のQG内のすべてのCUのQP値は、現在のCUのQP値に設定される。指定されたQP値は、後続のコーディング演算、たとえばデブロッキングフィルタ処理またはQP予測に使用される。
現在のCUの輝度QPおよびクロミナンスQPが取得された後、量子化解除および逆変換処理が現在のCUの変換係数に対して実行され、それにより現在のCUの残差ピクチャを取得し得る。
フレーム間予測処理またはフレーム内予測処理が現在のCUの予測モードに基づき現在のCUに対して実行され、それにより、現在のCUのフレーム間予測ピクチャまたはフレーム内予測ピクチャを取得する。
現在のCUの残差ピクチャは、現在のCUの予測ピクチャ上に重ね合わされ、現在のCUの再構成されたピクチャを生成する。
一実装形態において、輝度QPが取得された後、クロミナンスQPは、輝度QPとクロミナンスQPとのマッピング関係、およびクロミナンスQPのオフセット値に基づきさらに取得され得る。特定の実施形態が、本発明のこの実施形態において限定されることはない。
本発明の別の実施形態は、ビデオデコーダ30をさらに提供し、これは
エントロピー復号ユニット304であって、コーディングツリー分割情報を解析して現在のノードを取得し、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定し、現在の量子化グループによってカバーされる領域における現在のCUのQP差分値を取得し、現在のCUのQP差分値に基づき現在のCUの輝度QPを決定するように構成されているエントロピー復号ユニット304を備える。
一実装形態において、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定することは、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することを含む。左上隅の座標が決定された後、現在の量子化グループによってカバーされる特定の領域が決定され得る。したがって、次の説明において、現在の量子化グループによってカバーされる領域を決定することは、現在の量子化グループによってカバーされる領域の左上隅の座標を決定することと理解されてよい。
逆量子化ユニット310は、現在のCUの輝度QPに基づき現在のCUの量子化解除された係数を取得するように構成される。
逆変換処理ユニット312は、現在のCUの量子化解除された係数に基づき現在のCUの再構成された残差ブロックを取得するように構成される。
再構成ユニット314は、現在のCUの再構成された残差ブロックに基づき現在のCUの再構成されたピクチャを取得するように構成される。
ビデオデコーダ30の特定の実装形態については、図9で説明されている方法を参照のこと。詳細については、ここで再び説明しない。
一実装形態において、現在のノードの深さNは現在のノードの四分木深さNである。エントロピー復号ユニット304は、現在のノードの深さNに基づき、現在の量子化グループによってカバーされる領域を決定するか、または現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1よりも大きいか、またはMが0よりも大きい場合、現在の量子化グループによってカバーされる領域は、現在のノードの第K層の四分木ノードによってカバーされる領域である。Kは、NとT1のうちの小さい方の値であり、第K層の四分木ノードは、現在のノードを含み、コーディングツリーユニットCTUから開始してK回の四分木分割の後に生成される四分木ノードである。
第K層の四分木ノードは、現在のノードの第(M+N-K)層の親ノードである。
一実装形態において、現在のノードの深さNは現在のノードの四分木深さNである。エントロピー復号ユニット304は、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1以下であり、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
一実装形態において、現在のノードの深さNは現在のノードの四分木深さNである。エントロピー復号ユニット304は、現在のノードの四分木深さNに基づき、現在の量子化グループによってカバーされる領域を決定するか、または現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。あるいは、Nが第1の閾値T1未満である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
一実装形態において、現在のノードの深さNは現在のノードの四分木深さNである。エントロピー復号ユニット304は、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1に等しく、Mが0に等しい場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。あるいは、Nが第1の閾値T1未満であり、Mが第4の閾値T4以下である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
一実装形態において、第4の閾値T4は、プリセットされた正整数、たとえば、1、2、3、または4であってよい。
一実装形態において、第4の閾値は、第1の閾値T1および現在のノードの四分木深さNに基づき決定されるものとしてよく、たとえば、T4=T1-Nであってよい。
一実装形態において、現在のノードの深さNは現在のノードの四分木深さNである。エントロピー復号ユニット304は、現在のノードの四分木深さNおよび現在のノードのマルチタイプ木深さMに基づき、現在の量子化グループによってカバーされる領域を決定するように特に構成される。Nが第1の閾値T1以下であり、MがT1-N以下である場合、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域である。
一実装形態において、エントロピー復号ユニット304は、現在のノードの深さNが第1の閾値T1より大きい場合に、現在のノードの第(N-T1)層の親ノードを取得し、現在の量子化グループによってカバーされる領域が第(N-T1)層の親ノードによってカバーされる領域であると決定するように特に構成され得る。
一実装形態において、エントロピー復号ユニット304は、現在のノードの深さNが第1の閾値T1に等しい場合に、現在の量子化グループによってカバーされる領域は、現在のノードによってカバーされる領域であると決定するように特に構成され得る。
一実装形態において、現在のノードの深さは、現在のノードのQT depthであるか、または現在のノードの深さは、現在のノードのQT depthと現在のノードのMTT depthとの和である。
一実装形態において、第1の閾値T1は0、1、2、または3である。
一実装形態において、エントロピー復号ユニット304は、現在のノードの分割モードを取得し、現在のノードの深さNが第2の閾値T2-1に等しく、現在のノードの分割モードが三元分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第2の閾値T2に等しく、現在のノードの分割モードが二元分割モードまたは四分木分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第2の閾値以下であり、現在のノードがもはや分割されない場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定する、ようにさらに構成され得る。
一実装形態において、第2の閾値は2、3、4、6、8、または9である。
一実装形態において、エントロピー復号ユニット304は、現在のノードの分割モードを取得し、現在のノードの深さNが第3の閾値T3-1に等しく、現在のノードの分割モードが三元分割モードまたは四分木分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードの分割モードが二元分割モードである場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定するか、または現在のノードの深さNが第3の閾値T3に等しく、現在のノードがもはや分割されない場合、現在の量子化グループによってカバーされる領域が現在のノードによってカバーされる領域であると決定する、ようにさらに構成され得る。
一実装形態において、第3の閾値は3、4、5、または同様の値であるものとしてよい。
一実装形態において、エントロピー復号ユニット304は、現在のノードのQT depthおよび現在のノードの二元深さDbに基づき現在のノードの深さNを決定するように特に構成され得る。
一実装形態において、エントロピー復号ユニット304は、次の数式、N=Dq*2+Db、ただしDqは現在のノードのQT depthである、を使用することによって現在のノードの深さNを決定するように特に構成され得る。
一実装形態において、現在のノードがMTTルートノードである場合に、現在のノードの二元深さDbは0であるか、または、現在のノードがMTTノードであり、MTTルートノードではなく、現在のノードが二元分割モードで取得された子ノードである場合、現在のノードの二元深さDbは、現在のノードの直接の親ノードの二元深さ+1であるか、または、現在のノードがMTTノードであり、MTTルートノードではなく、現在のノードが三元分割モードで取得された中間子ノードである場合、現在のノードの二元深さDbは、現在のノードの直接の親ノードの二元深さ+1であるか、または現在のノードがMTTノードであり、MTTルートノードではなく、現在のノードが三元分割モードで取得された非中間子ノードである場合、現在のノードの二元深さDbは、現在のノードの直接の親ノードの二元深さ+2である。
一実装形態において、エントロピー復号ユニット304は、現在の量子化グループにおける残差を有する第1のCUのQP差分値が0に等しくない場合、現在の量子化グループにおける残差を有する第1のCUのコーディングシーケンスよりも前にコーディングシーケンスがあるすべてのCUの輝度QPを残差を有する第1のCUの輝度QPに修正するようにさらに構成される。これに対応して、現在のCUが、現在の量子化グループにおいて残差を有する第1のCUよりも前のCUである場合、逆量子化ユニット310は、残差を有する第1のCUの輝度QPに基づき現在のCUの量子化解除された係数を取得するように特に構成される。
本発明の一実施形態は、前述の方法のうちのいずれか1つを行うように構成されている実行回路を含む、ビデオデコーダをさらに提供する。
本発明の一実施形態は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合されている不揮発性コンピュータ可読記憶媒体とを備えるビデオデコーダをさらに提供する。不揮発性コンピュータ可読記憶媒体は、少なくとも1つのプロセッサによって実行できるコンピュータプログラムを記憶し、コンピュータプログラムが少なくとも1つのプロセッサによって実行されたときに、ビデオデコーダは、前述の方法のいずれか1つを実行するように構成される。
本発明の一実施形態は、少なくとも1つのプロセッサによって実行できるコンピュータプログラムを記憶するように構成されている、コンピュータ可読記憶媒体をさらに提供する。コンピュータプログラムが少なくとも1つのプロセッサによって実行されたときに、前述の方法のうちのいずれか1つが実行される。
本発明の一実施形態は、コンピュータプログラムをさらに提供する。コンピュータプログラムが実行されたときに、前述の方法のうちのいずれか1つが行われる。
1つまたは複数の例において、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せによって実装され得る。ソフトウェアによって実装される場合、これらの機能は、1つまたは複数の命令もしくはコードとして、コンピュータ可読媒体上に記憶されるか、または伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、コンピュータ可読記憶媒体を含むものとしてよく、これは、データ記憶媒体または通信媒体などの有形の媒体に対応する。通信媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの伝送を円滑にする任意の媒体を含む。この方式では、コンピュータ可読媒体は、一般的に、(1)非一時的な有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本発明の実施形態において説明されている技術を実装するために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ、命令、コード、および/またはデータ構造体を取り出すことができる任意の使用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
たとえば、限定はしないが、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは別の光ディスクストレージ、磁気ディスクストレージもしくは別の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造体の形態で必要なプログラムコードを記憶するために使用され得る、コンピュータによってアクセスできる、任意の他の媒体を含み得る。それに加えて、任意の接続は、コンピュータ可読媒体と適切に称され得る。たとえば、命令が同軸ケーブル、光ファイバケーブル、ツイストペア線、デジタル加入者回線(digital subscriber line、DSL)、または赤外線、電波、およびマイクロ波などのワイヤレス技術を使用することによってウェブサイト、サーバ、または別のリモートソースから伝送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア線、DSL、または赤外線、電波、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、実際には、非一時的な有形の記憶媒体を意味することは理解されるべきである。本明細書において使用されているように、ディスク(disk)およびディスク(disc)は、コンパクトディスク(compact disc、CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(digital versatile disc、DVD)、フロッピーディスク、およびブルーレイディスクを含む。ディスク(disk)は、通常、磁気的にデータを再現するが、ディスク(disc)は、レーザーを使用することによって光学的にデータを再現する。前述の項目の組合せも、コンピュータ可読媒体の範囲内に含められるべきである。
命令は、1つまたは複数のプロセッサによって実行され得る。1つまたは複数のプロセッサは、たとえば、1つもしくは複数のデジタルシグナルプロセッサ(digital signal processor、DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルロジックアレイ(field programmable logic array、FPGA)、または他の同等の集積もしくはディスクリート論理回路である。したがって、本明細書において使用される「プロセッサ」という術語は、前述の構造または本明細書において説明されている技術を実装するのに適している任意の他の構造のうちのいずれかであってよい。それに加えて、いくつかの態様において、本明細書で説明されている機能性は、符号化および復号を行うように構成されている専用のハードウェアおよび/またはソフトウェアモジュール内に実現されるか、または組み合わされたコーデックに組み込まれてもよい。それに加えて、これらの技術は、1つもしくは複数の回路または論理素子ですべて実装され得る。
本開示の技術は、ワイヤレスハンドセット、集積回路(integrated circuit、IC)、または一組のIC(たとえば、チップセット)を含む、様々なデバイスもしくは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を行うように構成されているデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによって必ずしも実装されない。正確には、上で説明されているように、様々なユニットが、好適なソフトウェアおよび/もしくはファームウェアと組み合わせてコーデックハードウェアユニット内に組み合わされるか、または一組の相互運用ハードウェアユニットによって提供され得る。ハードウェアユニットは、上で説明されている1つまたは複数のプロセッサを含む。