(57)【特許請求の範囲】
【請求項１】
変換ユニットに対する係数を再構成することによってエンコードされたビデオのビットストリームをデコーダがデコードする方法であって、該ビットストリームは、該変換ユニットに対するサインビットの２つ以上のセットをエンコードし、サインビットの各セットは、該変換ユニットに対する係数のそれぞれのセットに対応しており、各サインビットは、該それぞれのセット内の対応する非ゼロ係数のサインを示しており、
該方法は、
サインビットの該２つ以上のセットの各々に対して、
サインビットの当該セットに対応する該それぞれのセットに対する係数の絶対値を合計して、パリティ値を取得することと、
該パリティ値が偶数であるか奇数であるかに基づいて、該それぞれのセット内の該係数のうちの１つにサインを割り当てることと
を含む、方法。
【請求項２】
係数の前記それぞれのセットの各々は、それぞれの４×４係数ブロックに対応している、請求項１に記載の方法。
【請求項３】
係数の前記それぞれのセットの各々は、それぞれの４×４係数ブロックのグループに対応しており、該グループの各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、請求項１に記載の方法。
【請求項４】
前記方法は、スキャン順序における第１非ゼロ係数と最終非ゼロ係数との間の係数の前記それぞれのセット内の係数の数が、閾値を超えていることを決定することをさらに含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
割り当てることは、前記パリティ値が奇数の場合には、前記係数のうちの１つを負にし、前記パリティ値が偶数の場合には、前記係数のうちの１つを正のままにすることを含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
変換ユニットに対する係数を再構成するようにエンコードされたデータのビットストリームをデコードするデコーダであって、
該デコーダは、
プロセッサと、
メモリと、
メモリ内に格納され、かつ請求項１〜５のいずれか一項に記載の方法を実行するように該プロセッサを構成するための命令を含むデコーディングアプリケーションと
を含む、デコーダ。
【請求項７】
変換ユニットに対する係数に対するサインビットをエンコードすることによってビデオのビットストリームをエンコーダがエンコードする方法であって、
該方法は、
該変換ユニットに対する係数の２つ以上のセットの各々に対して、
当該セットに対する係数の絶対値を合計して、パリティ値を取得することと、
当該セット内の係数のうちの１つのサインが該パリティ値に対応していないことを決定することと、
該係数のうちの１つのサインに対応するように該パリティ値を変化させるために、当該セット内の係数のレベルを１だけ調整することと
を含む、方法。
【請求項８】
係数の前記２つ以上のセットの各々に対して、該係数のうちの１つを除いて、当該セット内のすべての非ゼロ係数に対するサインビットをエンコードすることをさらに含む、請求項７に記載の方法。
【請求項９】
係数の前記２つ以上のセットの各々は、それぞれの４×４係数ブロックを含む、請求項７または請求項８に記載の方法。
【請求項１０】
係数の前記セットの各々は、それぞれの４×４係数ブロックのグループに対応しており、該グループの各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、請求項７または請求項８に記載の方法。
【請求項１１】
前記方法は、スキャン順序における第１非ゼロ係数と最終非ゼロ係数との間の係数のセット内の係数の数が閾値を超えていることを決定することをさらに含む、請求項７〜１０のいずれか一項に記載の方法。
【請求項１２】
レベルを調整することは、レート歪み最適化を用いて調整されるべき前記セット内の係数を選択することを含む、請求項７〜１１のいずれか一項に記載の方法。
【請求項１３】
前記レート歪み最適化は、レートコストを評価するために、予め定義されたコストメトリックを用いる、請求項１２に記載の方法。
【請求項１４】
変換ユニットに対する係数に対するサインデータをエンコードすることにより、ビデオのビットストリームをエンコードするエンコーダであって、
該エンコーダは、
プロセッサと、
メモリと、
メモリ内に格納され、かつ請求項７〜１３のいずれか一項に記載の方法を実行するように該プロセッサを構成するための命令を含むエンコーディングアプリケーションと
を含む、エンコーダ。
【請求項１５】
プロセッサ実行可能な命令を格納しているプロセッサ読み取り可能な記録媒体であって、該命令は、実行されたときに、請求項１〜５、７〜１３のうちのいずれか一項における方法を１つ以上のプロセッサに実行させる、プロセッサ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（著作権情報）
本文書および付随する題材の開示の一部分は、著作権の主張がなされる題材を含んでいる。著作権所有者は、特許文書または特許開示は特許商標庁のファイルまたは記録に現れているので、該特許文書または特許開示の何人による複製に対しても異議を有してはいないが、その他のすべての著作権については、どのようなものであっても留保している。
【０００２】
（分野）
本願は、概して、データ圧縮に関し、特に、残余ビデオデータをエンコードおよびデコードするときにサインビットを秘匿するための方法およびデバイスに関している。
【背景技術】
【０００３】
（背景）
データ圧縮は、多くのコンテキストにおいて行われる。データ圧縮は、情報を効率的に格納、伝送、再生するために、通信およびコンピュータネットワーキングにおいて、非常に一般的に用いられている。データ圧縮は、イメージ、オーディオ、ビデオのエンコーディングにおいて、特定の用途を見出している。ビデオは、各ビデオフレームに対して必要な大量のデータと、エンコーディングおよびデコーディングを行うためにしばしば必要とされるスピードとを理由として、データ圧縮に対する重大な挑戦を提示している。ビデオエンコーディングに対する現在の技術水準は、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣビデオコーディング規格である。該規格は、メインプロファイル、ベースラインプロファイル等を含む、異なる用途に対する多くの異なるプロファイルを定義している。次世代のビデオエンコーディング規格は、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｆｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）といわれるＭＰＥＧ−ＩＴＵの合同研究を通して現在開発中である。該研究は、最終的には、ＭＰＥＧ−Ｈと一般的に称されるビデオコーディング規格をもたらし得るものである。
【０００４】
ブロックベースのコーディングプロセスを用いるＨ．２６４を含む、イメージおよびビデオをエンコード／デコードするための多くの規格が存在する。これらのプロセスにおいて、イメージまたはフレームは、典型的には４×４または８×８であるブロックに分割され、該ブロックは、係数へとスペクトル的に変換され、量子化され、エントロピーエンコードされる。多くの場合においては、変換されるデータは、実際のピクセルデータではなく、予測オペレーションの後の残余データである。予測は、イントラフレーム、すなわちフレーム／イメージ内のブロックごとであり得、あるいはインターフレーム、すなわちフレームの間であり得る（動き予測とも称される）。ＭＰＥＧ−Ｈもまた、これらの特徴を有し得ることが期待されている。
【０００５】
残余データをスペクトル的に変換するときに、これらの規格のうちの多くは、離散コサイン変換（ＤＣＴ）またはそれに対するなんらかの変形の使用を記述する。結果としてのＤＣＴ係数は、その後、量子化器を用いて量子化され、量子化された変換ドメイン係数または指標を生成する。
【０００６】
量子化された変換ドメイン係数のブロックまたは行列（「変換ユニット」と称される場合がある）は、その後、特定のコンテキストモデルを用いて、エントロピーエンコードされる。Ｈ．２６４／ＡＶＣにおいて、そして、ＭＰＥＧ−Ｈに対する現在開発中の仕事において、量子化された変換係数は、（ａ）変換ユニットにおける最終非ゼロ係数の位置を示す最終有意係数位置をエンコードすることと、（ｂ）非ゼロ係数を含む変換ユニットにおける位置（最終有意係数位置以外）を示す有意マップをエンコードすることと、（ｃ）非ゼロ係数の大きさをエンコードすることと、（ｄ）非ゼロ係数のサイン（ｓｉｇｎ）をエンコードすることとにより、エンコードされる。量子化された変換係数のこのエンコーディングは、しばしば、ビットストリーム内のエンコードされたデータの３０〜８０％を占める。
【０００７】
変換ユニットは、典型的には、Ｎ×Ｎである。一般的なサイズは、４×４、８×８、１６×１６、３２×３２を含むが、その他のサイズも可能であり、いくつかの実施形態においては、例えば８×３２または３２×８等の非正方サイズを含む。ブロック内の各非ゼロ係数のサインは、各非ゼロ係数に対して１つのサインビットを用いてエンコードされる。
【発明の概要】
【課題を解決するための手段】
【０００８】
（概要）
本願は、サインビット秘匿を用いて残余ビデオデータをエンコードおよびデコードするための方法およびエンコーダ／デコーダを記載している。実施形態のうちのいくつかにおいては、エンコーダおよびデコーダは、有意係数フラグをエンコードするためにマルチレベル有意マップを用い得る。変換ユニット内の係数の各サブセットに対する少なくとも１つの係数のサインビットは、パリティ技術を用いて秘匿され得る。いくつかの場合においては、係数のサブセットは、例えば、有意マップエンコーディングおよびデコーディングにおいて用いられるマルチレベルマップにおいて用いられる係数グループに対応している。少なくとも１つの場合において、マルチレベルマップは、例えば１６×１６および３２×３２ＴＵのような、より大きな変換ユニットと共に用いられる。いくつかの場合においては、マルチレベルマップは、８×８  ＴＵ、非正方ＴＵ、およびその他のサイズのＴＵとともに用いられる。サインビット秘匿技術は、非ゼロ係数の閾値数よりも多くを含む係数のサブセットに対して用いられ得る。いくつかの場合においては、サブセットベースのサインビット秘匿技術は、それらがマルチレベル有意マップエンコーディングを用いない場合でさえも、特に、ＴＵの有意係数エンコーディングが、有意係数フラグのサブセットに対してモジュール式に実装される場合でさえも、ＴＵとともに用いられ得る。
【０００９】
一局面において、本願は、変換ユニットに対する係数を再構成することによって、エンコードされたビデオのビットストリームをエンコードするための方法を記載しており、該ビットストリームは、変換ユニットに対するサインビットの２つ以上のセットをエンコードし、各セットは、変換ユニットに対する係数のそれぞれのセットに対応しており、各サインビットは、それぞれのセット内の対応する非ゼロ係数のサインを示す。方法は、サインビットの２つ以上のセットの各々に対して、サインビットの当該セットに対応するそれぞれのセットに対する係数の絶対値を合計して、パリティ値を取得することと、該パリティ値が奇数または偶数であるかどうかに基づいて、それぞれのセット内の係数のうちの１つにサインを割り当てることを含む。
【００１０】
別の局面において、本願は、変換ユニットに対する係数に対するサインビットをエンコードすることにより、ビデオのビットストリームをエンコードするための方法を記載している。方法は、変換ユニットに対する係数の２つ以上のセットの各々に対して、当該セットに対する係数の絶対値を合計して、パリティ値を取得することと、当該セット内の係数のうちの１つのサインが、パリティ値に対応しないことを決定することと、係数のうちの１つの係数のサインに対応するように、パリティ値を変化させるために、１によって当該セット内の係数のレベルを調整することとを含む。
【００１１】
さらなる局面において、本願は、エンコードおよびデコードするためのこのような方法を実装するように構成されたエンコーダおよびデコーダを記載している。
【００１２】
なおもさらなる局面において、本願は、実行されたときに、エンコードおよび／またはデコードするための記載された方法を実行するようにプロセッサを構成するコンピュータ実行可能なプログラム命令を格納している持続性のコンピュータ読み取り可能な媒体を記載している。
【００１３】
本願のその他の局面および特徴は、当業者によって、添付図面と関連して以下の例の記載を参照することから、理解され得る。
【００１４】
本発明は、例えば、以下を提供する。
（項目１）
変換ユニットに対する係数を再構成することによってエンコードされたビデオのビットストリームをデコードする方法であって、該ビットストリームは、該変換ユニットに対するサインビットの２つ以上のセットをエンコードし、サインビットの各セットは、該変換ユニットに対する係数のそれぞれのセットに対応しており、各サインビットは、該それぞれのセット内の対応する非ゼロ係数のサインを示しており、
該方法は、
サインビットの該２つ以上のセットの各々に対して、
サインビットの当該セットに対応する該それぞれのセットに対する係数の絶対値を合計して、パリティ値を取得することと、
該パリティ値が偶数または奇数であるかどうかに基づいて、該それぞれのセット内の該係数のうちの１つにサインを割り当てることと
を含む、方法。
（項目２）
係数の前記それぞれのセットの各々は、それぞれの４×４係数ブロックに対応している、上記項目に記載の方法。
（項目３）
係数の前記それぞれのセットの各々は、それぞれの４×４係数ブロックのグループに対応しており、該グループ内の各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、上記項目のいずれか一項に記載の方法。
（項目４）
前記方法は、スキャン順序における第１非ゼロ係数と最終非ゼロ係数との間の係数の前記それぞれのセット内の係数の数が、閾値を超えていることを決定することをさらに含む、上記項目のいずれか一項に記載の方法。
（項目５）
割り当てることは、前記パリティ値が奇数の場合には、前記係数のうちの１つを負にし、前記パリティ値が偶数の場合には、前記係数のうちの１つを正のままにすることを含む、上記項目のいずれか一項に記載の方法。
（項目６）
変換ユニットに対する係数を再構成するようにエンコードされたデータのビットストリームをデコードするためのデコーダであって、
該デコーダは、
プロセッサと、
メモリと、
メモリ内に格納され、かつ上記項目のいずれか一項に記載の方法を実行するように該プロセッサを構成するための命令を含むデコーディングアプリケーションと
を含む、デコーダ。
（項目７）
変換ユニットに対する係数に対するサインビットをエンコードすることにより、ビデオのビットストリームをエンコードするための方法であって、
該方法は、
該変換ユニットに対する係数の２つ以上のセットの各々に対して、
当該セットに対する係数の絶対値を合計して、パリティ値を取得することと、
当該セット内の係数のうちの１つのサインが該パリティ値に対応していないことを決定することと、
該係数のうちの１つのサインに対応するように該パリティ値を変化させるために、当該セット内の係数のレベルを１だけ調整することと
を含む、方法。
（項目８）
係数の前記２つ以上のセットの各々に対して、該係数のうちの１つを除いて、当該セット内のすべての非ゼロ係数に対するサインビットをエンコードすることをさらに含む、上記に記載の方法。
（項目９）
係数の前記２つ以上のセットの各々は、それぞれの４×４係数ブロックを含む、上記項目のいずれか一項に記載の方法。
（項目１０）
係数の前記セットの各々は、それぞれの４×４係数ブロックのグループに対応しており、該グループの各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、上記項目のいずれか一項に記載の方法。
（項目１１）
前記方法は、スキャン順序における第１非ゼロ係数と最終非ゼロ係数との間の係数のセット内の係数の数が閾値を超えていることを決定することをさらに含む、上記項目のいずれか一項に記載の方法。
（項目１２）
レベルを調整することは、レート歪み最適化を用いて調整されるべき前記セット内の係数を選択することを含む、上記項目のいずれか一項に記載の方法。
（項目１３）
前記レート歪み最適化は、レートコストを評価するために、予め定義されたコストメトリックを用いる、上記項目のいずれか一項に記載の方法。
（項目１４）
変換ユニットに対する係数に対するサインデータをエンコードすることにより、ビデオのビットストリームをエンコードするためのエンコーダであって、
該エンコーダは、
プロセッサと、
メモリと、
メモリ内に格納され、かつ上記項目のいずれか一項に記載の方法を実行するように前記プロセッサを構成するための命令を含むエンコーディングアプリケーションと
を含む、エンコーダ。
（項目１５）
プロセッサ実行可能な命令を格納している持続性のプロセッサ読み取り可能な媒体であって、該命令は、実行されたときに、上記項目のいずれか一項における方法を実行するように１つ以上のプロセッサを構成する、プロセッサ読み取り可能な媒体。
【００１５】
（摘要）
ビデオデータをエンコードおよびデコードするための方法が、変換ユニットに対するエンコーディング係数またはデコーディング係数に対して記載される。特に、非ゼロ係数に対するサインビットは、サインビット秘匿を用いてエンコードされる。係数の２つ以上のセットが、変換ユニットに対して定義され、サインビットは、各セットに対して秘匿され得、閾値テストを満たす対象となる。セットは、別様にマルチレベル有意マップエンコーディングおよびデコーディングにおいて用いられる係数グループに対応し得る。
【図面の簡単な説明】
【００１６】
ここで、例として、本願の例示的な実施形態を示す添付図面に対する参照がなされ得る。
【図１】図１は、ブロック図形式において、ビデオをエンコードするためのエンコーダを示している。
【図２】図２は、ブロック図形式において、ビデオをデコードするためのデコーダを示している。
【図３】図３は、１６×１６変換ユニットに対するマルチレベルスキャン順序の例を示している。
【図４】図４は、逆グループレベルスキャン順序において番号付けされた係数グループへと区画化される例示的な１６×１６変換ユニットを示している。
【図５】図５は、係数グループのうちの４つのグループがサインビット秘匿のために形成される変換ユニットの１つの例を示している。
【図６】図６は、サインビット秘匿のための係数グループのグルーピングの別の例を例示している。
【図７】図７は、サインビット秘匿のための係数グループのグルーピングのなおも別の例を示している。
【図８】図８は、サインビット秘匿のために係数のセットを動的に形成する例を例示している。
【図９】図９は、フローチャート形式において、サインビット秘匿のための例示的なプロセスを示している。
【図１０】図１０は、エンコーダの例示的な実施形態の簡略化されたブロック図を示している。
【図１１】図１１は、デコーダの例示的な実施形態の簡略化されたブロック図を示している。
【００１７】
異なる図面において用いられ得る類似した参照番号は、類似した構成要素を示している。
【発明を実施するための形態】
【００１８】
（例示的な実施形態の記載）
以下の記載においては、ビデオコーディングのためのＨ．２６４規格および／または開発中のＭＰＥＧ−Ｈ規格に関連して、いくつかの実施形態が記載されている。当業者であれば、本願は、Ｈ．２６４／ＡＶＣ規格および／またはＭＰＥＧ−Ｈに限定されず、可能性のある将来の規格、マルチビューコーディング規格、スケーラブルビデオコーディング規格、および再構成可能ビデオコーディング規格を含む、その他のビデオコーディング／デコーディング規格に対して適用可能であり得ることを理解し得る。
【００１９】
以下の記載において、ビデオまたはイメージに言及するとき、フレーム、ピクチャ、スライス、タイル、および矩形スライスグループという用語は、いくぶん互換的に用いられ得る。当業者であれば、Ｈ．２６４規格の場合において、フレームは、１つ以上のスライスを含み得ることを理解し得る。また、適用可能なイメージまたはビデオコーディング規格の特定の要件または術語に依存して、特定のエンコーディング／デコーディングオペレーションが、フレームごとに実行されること、いくつかがスライスごとに実行されること、いくつかがピクチャごとに実行されること、いくつかがタイルごとに実行されること、およびいくつかが矩形スライスグループによることも、理解され得る。任意の特定の実施形態において、適用可能なイメージまたはビデオコーディング規格は、以下に記載されるオペレーションが、場合によって、フレームおよび／またはスライスおよび／またはピクチャおよび／またはタイルおよび／または矩形スライスグループに関連して実行されるかどうかを決定し得る。したがって、当業者であれば、本開示に照らして、本明細書中に記載されている特定のオペレーションまたはプロセス、ならびにフレーム、スライス、ピクチャ、タイル、矩形スライスグループに対する特定の言及が、所与の実施形態に対して、フレーム、スライス、ピクチャ、タイル、矩形スライスグループ、またはこれらのうちのいくつかまたはすべてに対して適用可能であるかどうかを理解し得る。また、これは、以下の記載に照らして明らかになり得るように、変換ユニット、コーディングユニット、コーディングユニットのグループ等に対しても当てはまる。
【００２０】
本願は、変換ユニットの非ゼロ係数に対してサインビットをエンコードおよびデコードするための例示的プロセスおよびデバイスを記載している。非ゼロ係数は、有意マップによって識別される。有意マップは、変換ユニットまたは係数の定義されたユニット（例えば、いくつかの変換ユニット、変換ユニットの一部分、またはコーディングユニット）にマップする、または該変換ユニットまたは係数の定義されたユニットに対応する、フラグのブロック、行列、グループまたはセットである。各フラグは、変換ユニットまたは特定のユニットにおける対応する位置が、非ゼロ係数を含むかどうかを示す。既存の規格においては、これらのフラグは、有意係数フラグと称され得る。既存の規格においては、スキャン順序において、ＤＣ係数から最終有意係数まで、係数ごとに１つのフラグが存在し、該フラグは、対応する係数がゼロである場合には、ゼロであるビットであり、対応する係数が非ゼロである場合には、１に設定される。本明細書中で用いられる際の用語「有意マップ」は、以下の記載から理解され得るような、変換ユニットに対する有意係数フラグの行列または順序付けられたセット、あるいは本願のコンテキストから明確であり得る、係数の定義されたユニットを意味することが意図されている。
【００２１】
以下の記載に照らして、マルチレベルエンコーディングおよびデコーディング構造が、特定の状況に対して適用可能であり得、これらの状況が、ビデオコンテンツタイプ等のサイド情報（シーケンス、ピクチャ、またはスライスヘッダ内で識別されるような自然なビデオまたはグラフィクス）から決定され得ることが、理解され得る。例えば、２つのレベルが自然なビデオに対して用いられ得、３つのレベルがグラフィクスに対して用いられ得る（これは、典型的には、遥かに希少である）。さらに別の可能性は、シーケンス、ピクチャ、またはスライスヘッダのうちの１つにおいてフラグを提供して、構造が１つ、２つ、または３つのレベルを有しているかどうかを示し、これにより、エンコーダに、現在のコンテンツに対する最も適切な構造を選択するフレキシビリティを可能にすることである。別の実施形態においては、フラグは、コンテンツタイプを表し得、これは、レベルの数に関連付けられ得る。例えば、コンテンツタイプ「グラフィック」は、３つのレベルを特徴とし得る。
【００２２】
ここで図１に対する参照がなされ、該図面は、ブロック図形式において、ビデオをエンコードするためのエンコーダ１０を示している。また、図２に対する参照もなされ、該図面は、ビデオをデコードするためのデコーダ５０のブロック図を示している。本明細書中に記載されているエンコーダ１０およびデコーダ５０が、それぞれ、１つ以上の処理要素およびメモリを含む、特定用途向けまたは汎用コンピューティングデバイス上に実装され得ることが理解され得る。エンコーダ１０またはデコーダ５０によって実行されるオペレーションは、場合によって、例えば、特定用途向け集積回路によって実装され得るか、あるいは汎用プロセッサによって実行可能な格納されたプログラム命令によって実装され得る。デバイスは、例えば、基本デバイス機能を制御するためのオペレーティングシステムを含む、付加的ソフトウェアを含み得る。その内部でエンコーダ１０またはデコーダ５０が実装され得るデバイスまたはプラットフォームの範囲は、以下の記載に接した当業者によって理解され得る。
【００２３】
エンコーダ１０は、ビデオソース１２を受信し、かつエンコードされたビットストリーム１４を生成する。デコーダ５０は、エンコードされたビットストリーム１４を受信し、かつデコードされたビデオフレーム１６を出力する。エンコーダ１０およびデコーダ５０は、多くのビデオ圧縮規格に準拠して動作するように構成され得る。例えば、エンコーダ１０およびデコーダ５０は、Ｈ．２６４／ＡＶＣ準拠であり得る。その他の実施形態においては、デコーダ１０およびエンコーダ５０は、ＭＰＥＧ−Ｈ等のＨ．２６４／ＡＶＣの規格の進化型を含む、その他のビデオ圧縮規格に準拠し得る。
【００２４】
エンコーダ１０は、空間予測器２１、コーディングモード選択器２０、変換プロセッサ２２、量子化器２４、およびエントロピーエンコーダ２６を含む。当業者によって理解され得るように、コーディングモード選択器２０は、例えば、対象フレーム／スライスがＩタイプ、ＰタイプまたはＯタイプであるかどうか、ならびにフレーム／スライス内の特定のコーディングユニット（例えば、マクロブロック、コーディングユニット等）が、インターコードまたはイントラコードされるかどうか等、ビデオソースに対する適切なコーディングモードを決定する。変換プロセッサ２２は、空間ドメインデータに基づいて、変換を実行する。特に、変換プロセッサ２２は、ブロックベースの変換を適用して、空間ドメインデータを空間成分に変換する。例えば、多くの実施形態においては、離散コサイン変換（ＤＣＴ）が用いられる。例えば離散サイン変換等のその他の変換が、いくつかの場合においては、用いられ得る。ブロックベースの変換は、コーディングユニット上で、マクロブロックまたはサブブロックベースで、マクロブロックまたはコーディングユニットのサイズに依存して、実行される。Ｈ．２６４規格においては、例えば、典型的な１６×１６マクロブロックは、１６個の４×４変換ブロックを含み、ＤＣＴプロセスが該４×４ブロックに対して実行される。いくつかの場合においては、変換ブロックは、８×８であり得、これは、マクロブロックごとに４つの変換ブロックが存在することを意味している。なおも他の場合においては、変換ブロックは、その他のサイズであり得る。いくつかの場合においては、１６×１６マクロブロックは、４×４および８×８マクロブロックの非重複組み合わせを含み得る。
【００２５】
ブロックベースの変換をピクセルデータのブロックに適用することは、変換ドメイン係数のセットをもたらす。このコンテキストにおける「セット」とは、係数が係数位置を有する順序付けられたセットのことである。いくつかの場合においては、変換ドメイン係数のセットは、係数の「ブロック」または行列として考慮され得る。本明細書中の記載において、フレーズ「変換ドメイン係数のセット」または「変換ドメイン係数のブロック」は、互換的に用いられており、かつ変換ドメイン係数の順序付けられたセットを示すことが意図されている。
【００２６】
変換ドメイン係数のセットは、量子化器２４によって量子化される。量子化された係数および関連付けられた情報は、その後、エントロピーエンコーダ２６によってエンコードされる。
【００２７】
量子化された変換ドメイン係数のブロックまたは行列は、本明細書中では、「変換ユニット」（ＴＵ）と称され得る。いくつかの場合においては、ＴＵは、非正方であり得、例えば、ｎｏｎ−ｓｑｕｒｅ  ｑｕａｄｒａｔｕｒｅ  ｔｒａｎｓｆｏｒｍ（ＮＳＱＴ）であり得る。
【００２８】
イントラコードされたフレーム／スライス（すなわち、タイプＩ）は、その他のフレーム／スライスを参照せずに、エンコードされる。換言すると、これらは、時間的予測を採用していない。しかしながら、イントラコードされたフレームは、空間予測器２１によって図１内に例示されているような、フレーム／スライス内の空間予測に依拠していない。すなわち、特定のブロックをエンコードするときに、ブロック内のデータは、そのフレーム／スライスに対して既にエンコードされているブロック内の近隣のピクセルのデータと比較され得る。予測アルゴリズムを用いることにより、ブロックのソースデータは、残余データに変換され得る。変換プロセッサ２２は、その後、残余データをエンコードする。例えば、Ｈ．２６４は、４×４変換ブロックに対して９つの空間予測モードを記述する。いくつかの実施形態においては、９つのモードのそれぞれは、ブロックを独立的に処理するために用いられ得、レート歪み最適化が、その後、最良モードを選択するために用いられる。
【００２９】
また、Ｈ．２６４規格は、時間予測を活用するために、動き予測／補償の使用を記述している。したがって、エンコーダ１０は、逆量子化器２８、逆変換プロセッサ３０、およびデブロッキングプロセッサ３２を含むフィードバックループを有する。デブロッキングプロセッサ３２は、デブロッキングプロセッサおよびフィルタリングプロセッサを含み得る。これらの要素は、フレーム／スライスを再生するために、デコーダ５０によって実装されるデコーディングプロセスを反映している。フレーム格納３４が、再生されたフレームを格納するために用いられる。このように、動き予測は、何がデコーダ５０において再構成されるフレームであり得るかに基づいており、エンコーディング／デコーディング内に含まれる損失性のある圧縮に起因して再構成されたフレームとは異なり得るオリジナルフレームに基づいてはいない。動き予測器３６は、類似したブロックを識別するという目的のために、現在のフレームに対する比較のためのソースフレーム／スライスとして、フレーム格納３４に格納されるフレーム／スライスを用いる。したがって、それに対して動き予測が適用されるマクロブロックまたはコーディングユニットに対して、変換プロセッサ２２がエンコードする「ソースデータ」は、動き予測プロセスに由来する残余データである。例えば、これは、基準フレーム、空間変位または「動きベクトル」、および基準ブロックと現在のブロックとの間の（もしあれば）相違を表す残余ピクセルデータに関する情報を含み得る。基準フレームおよび／または動きベクトルに関する情報は、変換プロセッサ２２および／または量子化器２４によって処理されないことがあり得るが、その代りに、量子化された係数とともに、ビットストリームの一部分としてエンコードするために、エントロピーエンコーダ２６に供給され得る。
【００３０】
当業者であれば、ビデオエンコーダを実装するための詳細および可能性のある変形を理解し得る。
【００３１】
デコーダ５０は、エントロピーデコーダ５２、逆量子化器５４、逆変換プロセッサ５６、空間補償器５７、およびデブロッキングプロセッサ６０を含む。デブロッキングプロセッサ６０は、デブロッキングおよびフィルタリングプロセッサを含み得る。フレームバッファ５８は、動き補償を適用する際における、動き補償器６２による使用のために、再構成されたフレームを供給する。空間補償器５７は、既にデコードされたブロックから特定のイントラコードされたブロックに対するビデオデータを復元するオペレーションを表す。
【００３２】
ビットストリーム１４は、エントロピーデコーダ５２によって受信され、かつデコードされて、量子化された係数を復元する。また、サイド情報が、エントロピーデコーディングプロセスの間に復元され得、そのうちの一部は、（もしあれば）動き補償における使用のために、動き補償ループに供給され得る。例えば、エントロピーデコーダ５２は、イントラコードされたマクロブロックに対して、動きベクトルおよび／または基準フレーム情報を復元し得る。
【００３３】
量子化された係数は、その後、逆量子化器５４によって逆量子化されて、変換ドメイン係数を生成し、該係数は、その後、逆変換プロセッサ５６による逆変換の対象となり、「ビデオデータ」を再形成する。理解され得るように、例えばイントラコードされたマクロブロックまたはコーディングユニットの場合等のいくつかの場合においては、再形成された「ビデオデータ」は、フレーム内の既にデコードされたブロックに対する空間補償における使用のための残余データである。空間補償器５７は、既にデコードされたブロックからの残余データおよびピクセルデータからビデオデータを生成する。例えばイントラコードされたマクロブロックまたはコーディングユニット等のその他の場合においては、逆変換プロセッサ５６からの再形成された「ビデオデータ」は、異なるフレームからの基準ブロックに対する動き補償における使用のための残余データデある。空間補償および動き補償の両方は、本明細書中では、「予測オペレーション」として称され得る。
【００３４】
動き補償器６２は、特定のインターコードされたマクロブロックまたはコーディングユニットに対して特定されたフレームバッファ５８内に基準ブロックを配置する。該補償器は、インターコードされたマクロブロックまたはコーディングユニットに対して特定された基準フレーム情報および動きベクトルに基づいて、これを行う。該補償器は、その後、残余データとの組み合わせのために、基準ブロックピクセルデータを供給して、コーディングユニット／マクロブロックに対する再構成されたビデオデータに到達する。
【００３５】
デブロッキングプロセッサ６０によって示されているように、ブロッキング／フィルタリングプロセスが、その後、再構成されたフレーム／スライスに対して適用され得る。デブロッキング／フィルタリングの後、フレーム／スライスは、例えば、ディスプレイデバイス上の表示のために、デコードされたビデオフレーム１６として出力される。例えばコンピュータ、セットトップボックス、ＤＶＤまたはブルーレイプレーヤー、および／またはモバイルハンドヘルドデバイス等のビデオ再生機は、出力デバイス上の表示の前にメモリ内にデコードされたフレームをバッファし得るということが理解され得る。
【００３６】
ＭＰＥＧ−Ｈ準拠エンコーダおよびデコーダは、これらと同じまたは類似した特徴の多くを有し得ることが期待されている。
【００３７】
（量子化された変換ドメイン係数のエンコーディングおよびデコーディング）
上述したように、量子化された変換ドメイン係数のブロックまたはセットのエントロピーコーディングは、量子化された変換ドメイン係数のブロックまたはセットに対する有意マップ（例えば、有意係数フラグのセット）をエンコードすることを含む。有意マップは、どの位置（ＤＣ位置から最終有意係数位置まで）に非ゼロ係数が現れるかを示すブロックのバイナリマッピングである。有意マップは、スキャン順序（該順序は、適用可能なコーディング規格によって記述されている垂直、水平、対角線、ジグザグ、またはその他の任意の順序であり得る）にしたがって、ベクトルに変換され得る。スキャンは、典型的には、「逆」順序で行われ、すなわち、最終有意係数から出発し、［０，０］における左上コーナーにおける有意係数フラグに到達するまで、逆方向に、有意マップを通って、逆行して機能する。本記載においては、用語「スキャン順序」は、（場合によって）フラグ、係数、またはグループが処理される順序を意味することが意図されており、口語的に「逆スキャン順序」として称される順序を含み得る。
【００３８】
各有意係数フラグは、その後、適用可能なコンテキスト適応コーディングスキームを用いてエントロピーエンコードされる。例えば、多くの用途においては、ｃｏｎｔｅｘｔ−ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）スキームが用いられ得る。
【００３９】
１６×１６および３２×３２有意マップの場合、有意係数フラグに対するコンテキストは、隣接する有意係数フラグ値に（ほとんどの場合には）基づいている。１６×１６および３２×３２有意マップに対して用いられるコンテキストの中で，［０，０］におけるビット位置に対して専用である、そして（いくつかの例示的な実装においては）隣接するビット位置に対して専用である、特定のコンテキストが存在するが、有意係数フラグのうちのほとんどは、隣接する有意係数フラグの累積値に依存する４つまたは５つのコンテキストのうちの１つをとる。これらの場合においては、有意係数フラグに対する正確なコンテキストの決定は、隣接する位置（典型的には５つの位置であるが、いくつかの場合においては、より多くまたはより少ないことがあり得る）における有意係数フラグの値を決定し、かつ合計することに依存している。
【００４０】
これらの非ゼロ係数に対する有意係数レベルは、その後に、エンコードされ得る。１つの例示的な実装においては、レベルは、１よりも大きい絶対値を有するこれらの非ゼロ係数のマップを最初にエンコーディングすることにより、エンコードされ得る。別のマップは、その後に、２よりも大きいレベルを有するこれらの非ゼロ係数のエンコードされたものであり得る。２よりも大きい絶対値を有する係数のうちのいずれかの値またはレベルは、その後に、エンコードされる。いくつかの場合においては、エンコードされた値は、実際の値マイナス３であり得る。
【００４１】
非ゼロ係数のサインもまた、エンコードされる。各非ゼロ係数は、非ゼロ係数のレベルが負または正であるかどうかを示すサインビットを有している。変換ユニット内の第１係数に対するサインビットを秘匿するための提案がなされてきた（Ｃｌａｒｅ，Ｇｏｒｄｏｎ，ｅｔ  ａｌ．，“Ｓｉｇｎ  Ｄａｔａ  Ｈｉｄｉｎｇ”，ＪＣＴＶＣ−Ｇ２７１，７ｔｈ  Ｍｅｅｔｉｎｇ，Ｇｅｎｅｖａ，２１−３０  Ｎｏｖｅｍｂｅｒ，２０１１）。この提案のもとで、変換ユニット内の第１係数のサインは、変換ユニット内の量子化された係数の和のパリティを用いてエンコードされる。パリティが第１係数の実際のサインに対応しない場合には、エンコーダは、パリティを調整するために、係数のうちの１つのレベルを１だけ上下するように調整する必要がある。どの係数をどの方向に調整するかを決定するために、ＲＤＯＯが用いられるべきである。
【００４２】
いくつかの以前の仕事は、マルチレベル有意マップを用いることに焦点を当てていた。ここで図３に対する参照がなされ、該図面は、例示されているマルチレベル対角線スキャン順序を用いる１６×１６変換ユニット１００を示している。変換ユニット１００は、１６個の連続４×４係数グループまたは「有意係数フラグのセット」へと区画化される。各係数グループ内では、変換ユニット１００の全体にわたってではなく、対角線スキャン順序が該グループ内に適用される。セットまたは係数グループ自体は、スキャン順序において処理され、該順序もまた、この例示的な実装においては、対角線スキャン順序である。この例におけるスキャン順序は、「逆」スキャン順序において例示されているということ、すなわち、スキャン順序は、右下係数グループから、左下向き対角線方向に、左上対角線グループに向けて進行して示されているということに留意されたい。いくつかの実装においては、同じスキャン順序が、その他の方向において定義され得、すなわち、エンコーディングの間に適用されるときに、右上向き対角線方向に進行し、あるいはデコーディングが「逆」スキャン順序において適用され得る。
【００４３】
マルチレベル有意マップの使用は、どの係数グループが非ゼロ有意係数フラグを含むと期待され得、かつどの係数グループがすべてのゼロ有意係数フラグを含むかを示す、Ｌ１またはより高レベルの有意マップのエンコーディングを含む。非ゼロ有意係数フラグを含むことが期待され得る係数グループは、それらの有意係数フラグをエンコードさせるが、その一方ですべてのゼロ有意係数フラグを含む係数グループは、（それらが少なくとも１つの非ゼロ有意係数フラグを含むと想定されることによる特別な場合の例外を理由としてエンコードされるグループであるときを除いて）エンコードされない。各係数グループは、（例えば最終有意係数を含むグループ、左上グループ等の、係数グループが想定値のフラグを有する特別な場合に該当するときを除いて）有意係数グループフラグを有する。
【００４４】
マルチレベル有意マップの使用は、エンコーディングおよびデコーディングのための残余データのモジュール式処理を容易にする。
【００４５】
より大きいＴＵは、複数サインビットを秘匿する機会を提示する。ＴＵは、非ゼロ係数のセットへと分割または区画化され得、サインビットは、当該セット内の非ゼロ係数の和のパリティを用いて、非ゼロ係数の各セットに対して秘匿され得る。一実施形態において、非ゼロ係数のセットは、マルチレベル有意マップに対して定義された係数グループに対応させられ得る。
【００４６】
単一の閾値が、データタイプに関わらず、非ゼロ係数の特定のセットに対してサインビットを秘匿するかどうかを決定するために用いられ得る。一例においては、閾値テストは、セット内の第１非ゼロ係数と最終非ゼロ係数との間の係数の数に基づいている。すなわち、セット内の第１非ゼロ係数と最終非ゼロ係数との間に、少なくとも閾値数の係数が存在するかどうかに基づいている。別の例においては、テストは、セット内に少なくとも閾値数の非ゼロ係数が存在していることに基づき得る。なおも別の実施形態においては、テストは、閾値を超えるセット内の非ゼロ係数の絶対値の和に基づき得る。なおもさらなる実施形態においては、これらのテストの組み合わせが、適用され得る。すなわち、セット内には少なくとも最小数の係数が存在するはずであり、係数の累積絶対値は、閾値を超える必要がある。これらの閾値テストに対する変形もまた、採用され得る。
【００４７】
ここで図４に対する参照がなされ、該図面は、例示的な１６×１６変換ユニット１２０を示している。変換ユニット１２０は、４×４係数グループに分割される、すなわち、係数の１６個のセットに分割される。係数グループは、例えば逆対角スキャン順序等の、それらが処理される順序において、１，２，３，…１６に番号付けされる。
【００４８】
第１実施形態において、各係数グループは、サインビット秘匿という目的のための係数のセットである。すなわち、各係数グループは、係数グループがサインビット秘匿のために適切であるかどうかを決定するために、閾値に対してテストされる。上述したように、テストは、係数グループが、当該係数グループ内の第１非ゼロ係数と最終非ゼロ係数との間に少なくとも最小数の係数を含んでいるかどうかというものであり得る。
【００４９】
第２実施形態においては、サインビット秘匿のための係数のセットは、係数グループをグルーピングすることによって形成される。図５は、１６×１６  ＴＵ１４０を示しており、該図面においては、係数の４つのセットへの係数グループの例示的なグルーピングが例示されている。この例においては、サインビット秘匿という目的のための係数の各セットは、４つの係数グループを含む。各セットにおける４つの係数グループは、スキャン順序における連続グループである。例えば、係数の第１セット１４２は、係数グループ１６、１５、１４、および１３を含む。係数の第２セット１４４は、係数グループ１２、１１、１０、および９を含む。係数の第３セット１４６は、係数グループ８、７、６、および５を含む。最後に、係数の第４セット１４８は、係数グループ４、３、２、および１を含む。この実施形態においては、サインビットは、係数の各セットに対して秘匿され得る。すなわち、４までのサインビットが、ＴＵ１４０ごとに秘匿され得る。
【００５０】
係数の各セット１４２、１４４、１４６、１４８に対して、第１非ゼロ係数と最終非ゼロ係数との間の係数の数（または非ゼロ係数の数、またはこれらの係数の累積合計値）は、当該セットに対してサインビットを秘匿するかどうかを決定するために、閾値に対してテストされる。セット内のこれらの係数の絶対値の和のパリティは、それを介してサインビットが秘匿される機構である。パリティが秘匿されるべきサインに対応しない場合には、パリティは、セット内の係数のうちの１つのレベルを調整することによって、調整される。
【００５１】
図６は、１６×１６  ＴＵ１５０の場合のサインビット秘匿のための係数のセットの第３実施形態を例示している。この実施形態においては、セットは、再度、係数グループに基づいて形成されるが、セットは、必ずしも同じ数の係数または係数グループを含むわけではない。例えば、この例示においては、係数の５つのセットが定義されている。第１セット１５２は、係数グループ１〜６を含む。第２セット１５４は、４つの係数グループ７、８、９、および１０を含む。第３セット１５６は、係数グループ１１、１２、および１３を含む。第４セット１５８は、係数グループ１４および１５を含む。第５セット１５９は、左上係数グループ１６だけを含む。この実施形態は、それに対してより少ない非ゼロ係数が存在する可能性のある変換ユニット１５０の領域内に係数のより大きなセットを提供すること、ならびに、それにおいて非ゼロ係数がより一般的である変換ユニット１５０内の領域内に係数のより小さなセットを提供することが、理解され得る。上述した実施形態は、３２×３２またはより大きなＴＵサイズならびに８×８ＴＵサイズに対しても当てはまり得、係数グループ構造が、これらのＴＵに対して適用されるということに留意されたい。
【００５２】
図７は、第４実施形態を例示しており、該図面においては、８×８変換ユニット１６０内のサインビット秘匿のための係数のセットが、係数グループ構造に固着することなく形成される。８×８変換ユニットは、有意マップエンコーディングの目的のための係数グループ区画化を有し得ることも、有しないこともあり得る。いずれの場合においても、この実施形態においては、変換ユニットベースの対角線スキャンが、サインビットのエンコーディングおよび秘匿のために係数を処理するために用いられる。この場合においては、係数のセットは、スキャン順序において、連続係数をグルーピングするために形成される。例えば、この例示においては、変換ユニット１６０は、係数の４つのセットにグルーピングされ、各セットは、スキャニング順序において、１６個の連続係数を含んでいる。グループは、図７においては、１６２、１６４、１６６、および１６８にラベル付けされている。
【００５３】
なおも別の実施形態においては、係数のセットは、スキャン順序に固着しないものであり得る。すなわち、各セットは、変換ユニット内のより高い頻度位置からのいくつかの係数と、変換ユニット内のより低い頻度位置からのいくつかの係数とを含み得る。これらのセット内の全ての係数は、必ずしも、スキャン順序において隣接してはいないことがあり得る。
【００５４】
図８は、第５実施形態を示しており、該図面においては、１６×１６変換ユニット１７０内のサインビット秘匿のための係数のセットが、係数グループ構造およびスキャン順序を用いて、動的に形成される。この実施形態においては、係数の固定されたセットが変換ユニットサイズおよびスキャン順序に基づいて予め定義されているというよりもむしろ、スキャン順序をたどり、かつ閾値が満たされるまで閾値に対して何らかの量が測定されているかどうかを追跡することにより、エンコーダおよびデコーダが、セットを形成する。いったん閾値が満たされると、その後にエンコーダまたはデコーダが処理する係数グループに対して、サインビットが秘匿される。
【００５５】
例えば、図８は、係数グループ［２，２］内の最終有意係数を例示している。スキャン順序において、エンコーダおよびデコーダは、その後に、係数グループ［１，３］，［３，０］，および［２，１］へと順に移る。係数グループ［２，１］における係数を処理している間に、閾値が満たされる。したがって、係数グループ［２，１］において逆スキャン順序において処理されるべき最終非ゼロ係数に対するサインビット（グループ内の最も左上の非ゼロ係数）は、最終有意係数から、現在の係数グループ［２，１］におけるすべての係数までの、そして該現在の係数グループ［２，１］におけるすべての係数を含む、係数の累積絶対値のパリティ内に秘匿される。この例における閾値テストは、最小数の非ゼロ係数が存在すること、または係数の絶対値がなんらかの閾値を超えることに基づき得る。参照番号１７４は、特定の係数グループにおける「最終」または最も左上の係数に対するサインビット秘匿オペレーションを示している。
【００５６】
第６実施形態において、サインビット秘匿は、係数グループに基づいて行われ、係数グループがサインビット秘匿のために適切であるかどうかを決定するために用いられる基準は、既にデコードされた係数グループにしたがって動的に調整される。例として、そのすぐ右の係数グループまたはそのすぐ下の係数グループのいずれかが非ゼロ係数を有している場合には、現在の係数グループは、それが２つの非ゼロ係数の最小値を含んでいる限り、サインビット秘匿のために適切であると決定される。また、上述した実施形態のうちのいくつかにおいて記載されているように、係数グループは、それが、当該係数グループ内の第１非ゼロ係数と最終非ゼロ係数との間に少なくとも最小数の係数を含んでいる場合には、適切であると決定され得る。
【００５７】
上述した実施形態のうちのいくつかにおいて理解され得るように、サインビットは、別の係数グループにおける係数に依存するパリティ値に基づいて、１つの係数グループ内に秘匿され得る。換言すると、１つの係数グループ内の係数のサイン値は、別の係数グループにおける係数へのレベル変化により、パリティ内に秘匿され得る。
【００５８】
さらに、上述した実施形態のうちのいくつかにおいて理解され得るように、係数のセット内に秘匿されたサインビットは、動きベクトル相違フラグ（例えば、ｍｖｄ＿ｓｉｇｎ＿ｆｌｇ）等の異なるシンタックス要素からのものであり得る。
【００５９】
エンコーダ側においては、パリティ値がサインに対応しない場合において、サインビットを秘匿するために、どの係数を調整するかに関する決定がなされる。パリティ値が調整される必要がある場合には、パリティを変化させるために、係数レベルが、１だけ増加または減少される必要がある。
【００６０】
一実施形態においては、係数レベルを調整するためのプロセスにおける第１ステップは、検索範囲を決定すること、すなわちスキャン順序における開始位置および終了位置を決定することである。この範囲内の係数は、その後に評価され、１つのものが、変化させられるように選択される。１つの例示的な実施形態においては、検索範囲は、スキャニング順序における、第１非ゼロ係数から最終係数までであり得る。
【００６１】
マルチレベル有意マップの使用により、サブセットに対する検索範囲に対する終了位置は、ブロックレベル情報を利用するために、変化させられ得る。特に、１つのサブセットが、全体のＴＵ内のまさに最終の非ゼロ係数を含んでいる場合（大域的最終または最終有意係数と称される）には、検索範囲は、第１非ゼロ係数から最終非ゼロ係数までとして確立され得る。その他のサブセットに対しては、検索範囲は、第１非ゼロ係数から現在のサブブロックの終了までの範囲に拡張され得る。
【００６２】
一実施形態において、開始位置は、第１非ゼロ量子化係数よりも前の非量子化係数を条件的に含むように拡張され得る。特に、量子化の前のすべての係数を考慮する。秘匿されるべきサインと同じサインを有する非量子化係数は、検索内に含まれ得る。位置ゼロから第１非ゼロ量子化係数の位置までの非量子化係数に対して、量子化係数をゼロから１に変化させるコストが、検索において評価され、テストされ得る。
【００６３】
係数レベルを調整するためのプロセスにおける別の問題は、調整の影響を評価するために用いられるコスト計算を定義することである。計算複雑性が問題となる場合には、コストは、歪みに基づき得、レートは考慮に入れられないことがあり得、この場合においては、検索は、歪みを最小化するものである。一方で、計算複雑性が優先的な問題ではない場合には、コストは、レート歪みコストを最小化するために、レートおよび歪みの両方を含み得る。
【００６４】
ＲＤＯＱが有効化された場合には、ＲＤＯＱは、レベルを調整するために用いられ得る。しかしながら、多くの場合においては、ＲＤＯＱの計算複雑性は、望ましくないことがあり得、ＲＤＯＱは、有効化されないことがあり得る。したがって、いくつかの実施形態においては、サインビット秘匿を実装するために、簡略化されたレート歪み解析が、エンコーダにおいて適用され得る。
【００６５】
セット内の第１非ゼロ係数とセット内の最終非ゼロ係数との間の各係数は、係数を１だけ増大させることから、そして係数を１だけ減少させることから、歪みを大雑把に計算することによってテストされ得る。一般的にいうと、ｕの係数値は、ｕ＋δの実際値を有する。歪みは、（δｑ）２によって与えられる。この係数ｕが１だけ増加してｕ＋１に調整された場合には、結果としての歪みは、
ｑ２（１−２δ）
と推定され得る。
【００６６】
係数ｕが１だけ減少してｕ−１に調整された場合には、結果としての歪みは、
ｑ２（１＋２δ）
と推定され得る。
【００６７】
インターコードされた場合に対して、量子化歪みδは、ＲＤＯＱがオフの場合には、［−１／６から＋５／６］の範囲に存在すると認識され得る。イントラコードされたブロックの場合には、量子化歪みδは、ＲＤＯＱがオフの場合には、［−１／３から＋２／３］の範囲に存在する。ＲＤＯＱがオンの場合には、δの範囲は、変動し得る。しかしながら、歪み増加の上述した計算は、δの範囲に関わらず、依然として有効である。
【００６８】
また、エンコーダは、論理規則のセット、すなわち予め定義されたレートコストメトリックを用いて、様々な係数に対するレートコストに関する大雑把な評価を行い得る。例えは、予め定義されたレートコストメトリックは、一実施形態においては、
【００６９】
【化１】
0005537681.tif 000002
を含み得る。
ここで、サインフラグのコストは、１ビットとして推定され、有意係数フラグのコストは、０．５ビットとして推定され、ｕからｕ＋１までのコスト増加は、０．５ビットとして推定される。
【００７０】
その他の規則または推定が、その他の実施形態において用いられ得る。
【００７１】
ここで図９に対する参照がなされ、該図面は、係数グループベースのサインビット秘匿を用いてビデオデータをデコードするための例示的なプロセス２００を示している。プロセス２００は、上述した第２実施形態に基づいている。本記載を読んだ後には、記載されているその他の実施形態を実行するためのプロセス２００に対する代替および改変が、当業者によって認識され得る。
【００７２】
閾値が、オペレーション２０２において設定される。いくつかの実施形態においては、この閾値は、デコーダ内で予め定義され得るか、または予め構成され得る。その他の実施形態においては、この値は、エンコードされたビデオデータのビットストリームから抽出され得る。例えば、閾値は、ピクチャヘッダにおいて、またはビットストリーム内の別の位置において存在し得る。
【００７３】
オペレーション２０４において、デコーダは、スキャン順序において、現在の係数グループ内の、すなわち係数のセット内の第１非ゼロ位置を識別し、そして現在の係数グループ内の最終非ゼロ位置を識別する。その後これは、係数グループ内の第１非ゼロ係数と最終非ゼロ係数との間において、スキャン順序において、係数の数を決定する。
【００７４】
オペレーション２０６において、デコーダは、ビットストリームからサインビットをデコードする。デコーダは、係数グループ内の最も左上の非ゼロ係数（逆スキャン順序における最終非ゼロ係数）を除いて、係数グループ内のすべての非ゼロ係数に対して、サインビットをデコードする。サインビットは、これらのそれぞれの非ゼロ係数に対して適用される。例えば、適用可能な規約が、ゼロのサインビットが正であり、かつ、１のサインビットが負であるというものである場合には、１に設定されたすべてのサインビットに対して、対応する係数レベルは、負にされる。
【００７５】
オペレーション２０８において、デコーダは、係数グループ内のスキャン順序における第１非ゼロ係数と最終非ゼロ係数との間の係数の数が、閾値を超えているかどうかを評価する。超えていない場合には、エンコーダにおいてサインビット秘匿は用いられないので、オペレーション２１０において、デコーダは、最も左上の非ゼロ係数（逆スキャン順序における最後）に対するサインビットをデコードし、かつそれを係数レベルに適用する。係数の数が閾値を満たさない場合には、オペレーション２１２において、デコーダは、係数グループ内の係数の和の絶対値が、偶数または奇数であるかどうか、すなわちそのパリティを見積もる。偶数である場合には、最も左上の非ゼロ係数のサインは、正であり、デコーダは、それを調整する必要はない。奇数の場合には、最も左上の非ゼロ係数のサインは、負であり、それゆえ、オペレーション２１４において、デコーダは、当該係数を負にする。
【００７６】
オペレーション２１６においては、デコーダは、係数グループを処理することが終了したかどうかを決定する。終了したと決定した場合には、プロセス２００は終了する。そうでない場合には、デコーダは、オペレーション２１８において、グループスキャン順序において次の係数グループに移り、オペレーション２０４に戻る。
【００７７】
その他の実施形態においては、係数のセットのサイズは、単一の係数まで低減され得る。すなわち、サインビット秘匿は、単一係数ベースのサイン秘匿であり得る。この実施形態においては、各係数は、それのサイン情報が秘匿されているかどうかを見るためにテストされる。１つの例示的なテストは、係数レベルの大きさと所与の閾値とを比較することである。閾値よりも大きいレベルを有する係数は、それらのサインビットを秘匿させ、そうでない場合には、規約サインビットエンコーディング／デコーディングが用いられる。
【００７８】
単一係数の場合においてサインビット秘匿を適用するために、サイン情報は、係数レベルのパリティと比較される。一例として、偶数のパリティは、正のサインに対応し得、奇数は、負に対応し得る。エンコーダは、その後に、レベルがサインに対応していない場合には、レベルを調整する。この技術は、閾値よりも上方ではすべての負のレベルは奇数であり、すべての正のレベルは偶数であるということを示唆していることが理解され得る。ある意味で、これは、事実上、閾値よりも大きい大きさを有する係数に対する量子化ステップサイズの改変であると考えられ得る。
【００７９】
サインビット秘匿を実装するための例示的なシンタックスの例が、以下に提供される。この例示的なシンタックスは、１つの可能性のある実装にすぎない。この例において、サインビット秘匿は、係数グループベースで適用され、閾値テストは、係数グループ内の第１非ゼロ係数から係数グループ内の最終非ゼロ係数までの係数の数に基づいている。ｓｉｇｎ＿ｄａｔａ＿ｈｉｄｉｎｇと記されたフラグは、サインビット秘匿がオンであるかどうかを示すために、ピクチャヘッダ内で送信される。これが有効な場合には、ヘッダはまた、パラメータｔｓｉｇをも含み、これは、閾値である。例示的なシンタックスは、以下のように設定される。
【００８０】
【化２】
0005537681.tif 000003
以下の擬似コードは、係数グループベースのサインビット秘匿の１つの例示的な実装を例示している。
【００８１】
【化３−１】
0005537681.tif 000004
【００８２】
【化３−２】
0005537681.tif 000005
ここで図１０に対する参照がなされ、該図面は、エンコーダ９００の例示的な実施形態の簡略化されたブロック図を示している。エンコーダ９００は、プロセッサ９０２、メモリ９０４、およびエンコーディングアプリケーション９０６を含んでいる。エンコーディングアプリケーション９０６は、メモリ９０４内に格納され、本明細書中に記載されているようなオペレーションを実行するようにプロセッサ９０２を構成するための命令を含んでいる、コンピュータプログラムまたはアプリケーションを含み得る。例えば、エンコーディングアプリケーション９０６は、本明細書中に記載されているプロセスにしたがって、エンコードし、エンコードされたビットストリームを出力し得る。エンコーディングアプリケーション９０６は、例えばコンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等のコンピュータ読み取り可能な媒体上に格納され得ることが理解され得る。
【００８３】
ここで図１１に対する参照がなされ、該図面は、デコーダ１０００の例示的な実施形態の簡略化されたブロック図を示している。デコーダ１０００は、プロセッサ１００２、メモリ１００４、およびデコーディングアプリケーション１００６を含む。デコーディングアプリケーション１００６は、メモリ１００４に格納され、本明細書中に記載されているようなオペレーションを実行するようにプロセッサ１００２を構成するための命令を含んでいる、コンピュータプログラムまたはアプリケーションを含み得る。デコーディングアプリケーション１００６は、少なくとも部分的に、本明細書中に記載されているように、有意係数フラグを再構成することに基づいて、残余を再構成するように構成されたエントロピーデコーダを含み得る。デコーディングアプリケーション１００６は、例えばコンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等のコンピュータ読み取り可能媒体上に格納され得るということが理解され得る。
【００８４】
本願にしたがうデコーダおよび／またはエンコーダは、サーバ、適切にプログラムされた汎用コンピュータ、オーディオ／ビデオエンコーディングおよび再生デバイス、セットトップテレビジョンボックス、テレビジョンブロードキャスト機器、およびモバイルデバイスを含むがこれらに限定されない、多くのコンピューティングデバイスにおいて実装され得るということが理解され得る。デコーダまたはエンコーダは、本明細書中に記載されている機能を実行するようにプロセッサを構成するための命令を含むソフトウェアによって実装され得る。ソフトウェア命令は、ＣＤ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等を含む、任意の適切な持続性コンピュータ読み取り可能メモリ上に格納され得る。
【００８５】
本明細書中に記載されているエンコーダ、およびエンコーダを構成するための記載された方法／プロセスを実装するモジュール、ルーチン、プロセス、スレッド、またはその他のソフトウェアコンポーネントは、標準的なコンピュータプログラミング技術および言語を用いて実現され得る。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング規約、データ構造、その他のこのような実装の詳細に限定されない。当業者は、記載されているプロセスが、特定用途向け集積チップ（ＡＳＩＣ）等の一部分として揮発性または不揮発性メモリに格納されたコンピュータ実行可能コードの一部分として実装され得ることを認識し得る。
【００８６】
記載された実施形態の特定の適応および改変がなされ得る。したがって、上述した実施形態は、例示的なものであり、限定的なものではないと考慮されるべきである。
【符号の説明】
【００８７】
１０  エンコーダ
１２  ビデオソース
１４  ビットストリーム
２０  コーディングモード選択器
２１  空間予測器
２２  変換プロセッサ
２４  量子化器
２６  エントロピーコーダ
２８  逆量子化器
３０  逆変換プロセッサ
３２  デブロッキングプロセッサ
３４  フレーム格納
３６  動き予測器
【図１】
0005537681.tif 000006
【図２】
0005537681.tif 000007
【図３】
0005537681.tif 000008
【図４】
0005537681.tif 000009
【図５】
0005537681.tif 000010
【図６】
0005537681.tif 000011
【図７】
0005537681.tif 000012
【図８】
0005537681.tif 000013
【図９】
0005537681.tif 000014
【図１０】
0005537681.tif 000015
【図１１】
0005537681.tif 000016