(57)【要約】      （修正有）【課題】埋め込みコーデック回路のアーチファクトを抑え、メモリ使用率を最適にする技術を提供する。【解決手段】埋め込みコーデック（ＥＢＣ）回路が、１Ｄ画像ブロックの量子化変換残差レベルの複数の一次元（１Ｄ）サブブロックを記憶するメモリと、複数の１Ｄサブブロックの各１Ｄサブブロックについて一連のサブブロックカテゴリからサブブロックカテゴリを決定するエンコーダ回路とを含む。エンコーダ回路は、エントロピー符号化スキームの適用によって複数の１Ｄサブブロックを符号化して複数の符号化１Ｄサブブロックを生成する。エンコーダ回路は、対応する１Ｄサブブロックの決定されたサブブロックカテゴリに基づいて、複数の符号化１Ｄサブブロックのうちの１つの符号化１Ｄサブブロックの符号化量子化変換残差レベルに対応するビットプレーンのビット位置において複数の精緻化ビットを割り当てる。【選択図】図３
2020141394.tif 000002
【特許請求の範囲】
【請求項１】
埋め込みコーデック（ＥＢＣ）回路であって、
１Ｄ画像ブロックの量子化変換残差レベルの複数の一次元（１Ｄ）サブブロックを記憶するように構成されたメモリと、
エンコーダ回路と、
を備え、前記エンコーダ回路は、
前記複数の１Ｄサブブロックの各１Ｄサブブロックにおける複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値に基づいて、前記複数の１Ｄサブブロックの各１Ｄサブブロックについて、各サブブロックカテゴリが前記複数の１Ｄサブブロックのうちの対応する１Ｄサブブロックの異なる平坦度及び複雑度を示す一連のサブブロックカテゴリから１つのサブブロックカテゴリを決定し、
エントロピー符号化スキームの適用によって前記複数の１Ｄサブブロックを符号化して複数の符号化１Ｄサブブロックを生成し、
前記複数の符号化１Ｄサブブロックのうちの第１の符号化１Ｄサブブロックに対応する、前記複数の１Ｄサブブロックのうちの第１の１Ｄサブブロックの前記サブブロックカテゴリに基づいて、前記第１の符号化１Ｄサブブロックにおける一連の符号化量子化変換残差レベルに対応する一連のビットプレーンのビット位置において複数の精緻化ビットを割り当てる、
ように構成される、
ことを特徴とするＥＢＣ回路。
【請求項２】
前記エンコーダ回路は、逐次符号化スキームによって前記１Ｄ画像ブロックを符号化して前記複数の符号化１Ｄサブブロックを生成するようにさらに構成され、
前記逐次符号化スキームは、１Ｄ変換の後に量子化、残差予測及びエントロピー符号化スキームを逐次適用することを含む、
請求項１に記載のＥＢＣ回路。
【請求項３】
前記エンコーダ回路は、前記１Ｄ画像ブロックに１Ｄ変換を適用して前記複数の１Ｄサブブロックを生成するようにさらに構成され、前記複数の１Ｄサブブロックの各１Ｄサブブロックは、ＤＣ量子化変換残差レベルと、前記複数のＡＣ量子化変換残差レベルとを含む、
請求項１に記載のＥＢＣ回路。
【請求項４】
前記１Ｄ変換のタイプは、前記複数の１Ｄサブブロックの各１Ｄサブブロックのサイズに基づき、
前記複数の１Ｄサブブロックの各１Ｄサブブロックの前記サイズは、前記１Ｄ画像ブロックの符号化前に指定される、
請求項３に記載のＥＢＣ回路。
【請求項５】
前記複数の符号化１Ｄサブブロックの各符号化１Ｄサブブロックは、複数の符号化量子化変換残差レベルを含む、
請求項３に記載のＥＢＣ回路。
【請求項６】
前記複数の符号化量子化変換残差レベルの各符号化量子化変換残差レベルは、規定のビット深度に対応する一連のビットを含み、前記複数の精緻化ビットを割り当てるための精緻化ビットの数は、前記規定のビット深度及び前記一連のビットに基づく、
請求項５に記載のＥＢＣ回路。
【請求項７】
前記複数の符号化量子化変換残差レベルは、前記ＤＣ量子化変換残差レベルに対応するＤＣ量子化変換残差符号化レベルと、前記複数のＡＣ量子化変換残差レベルに対応する複数のＡＣ量子化変換残差符号化レベルとを含み、
前記一連の符号化量子化変換残差レベルは、前記ＤＣ量子化変換残差符号化レベルと、前記複数のＡＣ量子化変換残差符号化レベルのうちの少なくとも１つとを含む、
請求項５に記載のＥＢＣ回路。
【請求項８】
前記エンコーダ回路は、前記複数の１Ｄサブブロックの各１Ｄサブブロックの前記サブブロックカテゴリに基づいて前記複数の１Ｄサブブロックの各１Ｄサブブロックに一連のシグナリングビットを割り当てるようにさらに構成される、
請求項１に記載のＥＢＣ回路。
【請求項９】
前記エンコーダ回路は、前記第１の符号化１Ｄサブブロックに対応する前記第１の１Ｄサブブロックに割り当てられた前記一連のシグナリングビットに基づいて、前記第１の符号化１Ｄサブブロックにおける前記一連の符号化量子化変換残差レベルを選択するようにさらに構成される、
請求項８に記載のＥＢＣ回路。
【請求項１０】
前記一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、前記第１の符号化１Ｄサブブロックに対応する前記第１の１Ｄサブブロックの前記決定されたサブブロックカテゴリに依存する、
請求項１に記載のＥＢＣ回路。
【請求項１１】
前記一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、前記一連のサブブロックカテゴリのサブブロックカテゴリ毎に異なる、
請求項１に記載のＥＢＣ回路。
【請求項１２】
前記エンコーダ回路は、前記複数の１Ｄサブブロックの各１Ｄサブブロックの前記ＡＣ量子化変換残差レベルの前記最大値を第１の基準値及び第２の基準値と比較するようにさらに構成され、
前記ＡＣ量子化変換残差レベルの前記最大値は、０以上の絶対最大値である、
請求項１に記載のＥＢＣ回路。
【請求項１３】
前記第１の基準値は０であり、前記第２の基準値は１である、
請求項１２に記載のＥＢＣ回路。
【請求項１４】
前記一連のサブブロックカテゴリは、第１のサブブロックカテゴリ、第２のサブブロックカテゴリ及び第３のサブブロックカテゴリを含む、
請求項１２に記載のＥＢＣ回路。
【請求項１５】
前記エンコーダ回路は、前記比較に基づいて、前記第１の１Ｄサブブロックの前記サブブロックカテゴリを前記第１のサブブロックカテゴリとして決定するようにさらに構成され、前記第１の１Ｄサブブロックにおける前記ＡＣ量子化変換残差レベルの前記最大値は、前記第１の基準値に等しい、
請求項１４に記載のＥＢＣ回路。
【請求項１６】
前記エンコーダ回路は、前記比較に基づいて、前記第１の１Ｄサブブロックの前記サブブロックカテゴリを前記第２のサブブロックカテゴリとして決定するようにさらに構成され、前記第１の１Ｄサブブロックにおける前記ＡＣ量子化変換残差レベルの前記最大値は、前記第２の基準値に等しい、
請求項１４に記載のＥＢＣ回路。
【請求項１７】
前記エンコーダ回路は、前記比較に基づいて、前記第１の１Ｄサブブロックの前記サブブロックカテゴリを前記第３のサブブロックカテゴリとして決定するようにさらに構成され、前記第１の１Ｄサブブロックにおける前記ＡＣ量子化変換残差レベルの前記最大値は、前記第２の基準値よりも大きい、
請求項１４に記載のＥＢＣ回路。
【請求項１８】
前記第２のサブブロックカテゴリの前記一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第１の数は、前記第１のサブブロックカテゴリの前記一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第２の数以上であり、
前記第３のサブブロックカテゴリの前記一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第３の数は、前記第１の数及び前記第２の数よりも大きい、
請求項１４に記載のＥＢＣ回路。
【請求項１９】
前記エンコーダ回路は、前記第１の１Ｄサブブロックの前記サブブロックカテゴリに基づいて前記第１の符号化１Ｄサブブロックにおける精緻化順を決定するようにさらに構成され、
前記精緻化順は、前記一連のビットプレーン内の前記ビット位置における前記複数の精緻化ビットの割り当て順を定める、
請求項１に記載のＥＢＣ回路。
【請求項２０】
前記エンコーダ回路は、前記一連の符号化量子化変換残差レベルに対応する前記一連のビットプレーン内の第１のビット位置において前記複数の精緻化ビットのうちの第１の精緻化ビットを割り当てた後に、前記一連のビットプレーン内の後続の位置において前記複数の精緻化ビットのうちの後続の精緻化ビットを割り当てるようにさらに構成され、
前記割り当ては、前記決定された精緻化順に基づき、前記第１のビット位置は、前記一連の符号化量子化変換残差レベルにおける第１の符号化量子化変換残差レベルに対応する、
請求項１９に記載のＥＢＣ回路。
【請求項２１】
メモリとエンコーダ回路とを備えた埋め込みコーデック（ＥＢＣ）回路において、
前記メモリが、１Ｄ入力画像ブロックの量子化変換残差レベルの複数の一次元（１Ｄ）サブブロックを記憶するステップと、
前記エンコーダ回路が、前記複数の１Ｄサブブロックの各１Ｄサブブロックにおける複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値に基づいて、前記複数の１Ｄサブブロックの各１Ｄサブブロックについて、各サブブロックカテゴリが前記複数の１Ｄサブブロックのうちの対応する１Ｄサブブロックの異なる平坦度及び複雑度を示す一連のサブブロックカテゴリから１つのサブブロックカテゴリを決定するステップと、
前記エンコーダ回路が、エントロピー符号化スキームの適用によって前記複数の１Ｄサブブロックを符号化して複数の符号化１Ｄサブブロックを生成するステップと、
前記エンコーダ回路が、前記複数の符号化１Ｄサブブロックのうちの第１の符号化１Ｄサブブロックに対応する、前記複数の１Ｄサブブロックのうちの第１の１Ｄサブブロックの前記サブブロックカテゴリに基づいて、前記第１の符号化１Ｄサブブロックにおける一連の符号化量子化変換残差レベルに対応する一連のビットプレーンのビット位置において複数の精緻化ビットを割り当てるステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願との相互参照／引用による組み入れ〕
なし。
【０００２】
本開示の様々な実施形態は、画像及びビデオの圧縮又は解凍のための埋め込みコーデックに関する。具体的には、本開示の様々な実施形態は、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路に関する。
【背景技術】
【０００３】
最近のイメージング技術の進歩と共に、（例えば、低解像度画像／ビデオから高解像度画像／ビデオに至るまでの）様々な画像解像度の異なる画像又はビデオの圧縮及び記憶に対処できる画像取り込み及び表示装置内のオンチップコーデックの需要が高まっている。現在では、画像又はビデオに、例えば変換符号化、残差予測、量子化、エントロピー符号化などの複数の符号化法を適用して所望の圧縮を達成することができる。通常、エントロピー符号化後には、符号化画像ブロックのビット配分内でビットプレーンにおいて利用できる未だ符号化されていない非符号化ビットが存在することがある。シナリオによっては、各符号化画像ブロック内で等しい数の精緻化ビットを所定の順序で割り当てることによって、これらの非符号化ビットを精緻化することができる。このようなシナリオでは、各符号化画像ブロック内で等しい数の精緻化ビットを割り当てると、特にオンチップメモリの使用量を最小限に抑えながらスループットに対する面積効率を達成することが望ましいオンチップコーデックにおいて目に見える画像アーチファクトが生じるだけでなく、圧縮が非効率的になってメモリ使用率が最適でなくなることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
当業者には、説明したシステムと、本出願の残り部分において図面を参照しながら示す本開示のいくつかの態様とを比較することにより、従来の慣習的方法のさらなる制限及び不利点が明らかになるであろう。
【課題を解決するための手段】
【０００５】
少なくとも１つの図に実質的に示し、及び／又はこれらの図に関連して説明し、特許請求の範囲にさらに完全に示す、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック（ＥＢＣ）回路及び方法を提供する。
【０００６】
全体を通じて同じ要素を同じ参照符号によって示す添付図面を参照しながら本開示の以下の詳細な説明を検討することにより、本開示のこれらの及びその他の特徴及び利点を理解することができる。
【図面の簡単な説明】
【０００７】
【図１】本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック（ＥＢＣ）回路及びその他の回路を含む例示的なメディア装置を示すブロック図である。
【図２】本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための様々な周辺コンポーネントを含む図１のＥＢＣ回路を示すブロック図である。
【図３】本開示の実施形態による、図２のＥＢＣ回路による量子化変換残差レベルに基づくサブブロックの分類を示す。
【図４】本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための、図２のＥＢＣ回路による１Ｄ画像ブロックへの例示的な逐次符号化スキームの適用を示す図である。
【図５Ａ】本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための例示的な方法を示すフローチャートである。
【図５Ｂ】本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【０００８】
本開示の様々な実施形態は、サブブロックに基づく精緻化ビット割り当てのための方法及び埋め込みコーデック（ＥＢＣ）回路において見出すことができる。ＥＢＣ回路は、１Ｄ画像ブロックの符号化ビットストリームの生成に対処するメモリ及びエンコーダ回路を含むことができる。開示するＥＢＣ回路は、１Ｄ画像ブロックの異なるサブブロックを、異なるサブブロックの複雑度及び平坦度に基づいて異なるサブブロックカテゴリに分類する。さらに、開示するＥＢＣ回路は、対応する１Ｄサブブロックに関連するサブブロックカテゴリに基づいて、非符号化ビット位置においてサブブロックレベルで精緻化ビットを割り当てる。さらに、サブブロックレベルでの差別化により、サブブロックへの精緻化ビットの割り当てを、サブブロックレベルで表される複雑度に基づいて適応的に低減する機会をもたらす。例えば、平坦なサブブロック、すなわち全てのＡＣ係数がゼロである１Ｄサブブロックは、全ての非符号化ビット位置を精緻化する必要がないのに対し、複雑なサブブロック、すなわちさらに大きな値（例えば、−２、−１、０、１、２などのゼロよりも大きい又はゼロに近い値）のＡＣ係数を有する１Ｄサブブロックは、全ての非符号化ビット位置を精緻化する必要があり得る。精緻化ビットをサブブロックレベルで選択的に割り当てると、より大きなＡＣ係数値を表すためにより多くのビット数を必要とする画像サブブロック（複雑なレベルのサブブロック）に最大数の精緻化ビットが割り当てられるので、画質が改善される。このように精緻化ビットをサブブロックレベルで選択的に割り当てた結果、符号化画像の品質に悪影響を与えることなく圧縮効率が大幅に改善される。さらに、開示するＥＢＣ回路のスループットに対する面積効率が向上してオンチップメモリの使用率が最適化される。
【０００９】
図１は、本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック（ＥＢＣ）回路及びその他の回路を含む例示的なメディア装置を示すブロック図である。図１に示すメディア装置１０２は、プロセッサ１０６と、埋め込みコーデック（ＥＢＣ）回路１０８と、外部メモリ１１０をと含む。いくつかの実施形態では、プロセッサ１０６、ＥＢＣ回路１０８及び外部メモリ１１０にイメージセンサ１０４を通信可能に結合することができる。さらに、イメージセンサ１０４、プロセッサ１０６、ＥＢＣ回路及び外部メモリ１１０を相互接続するシステムバス１１２も示す。
【００１０】
メディア装置１０２は、未圧縮のＲＡＷ画像及び／又はビデオを符号化（すなわち、圧縮）画像及び／又はビデオとして外部メモリ１１０に記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。メディア装置１０２は、メディアコンテンツ（例えば、符号化画像及び／又はビデオ）の符号化及び復号を管理するとともに、メディア装置１０２における復号メディアコンテンツの再生を管理するようにさらに構成することができる。メディア装置１０２は、画像／ビデオの（インターネット／ネットワークを必要としない）オフライン処理及び圧縮／解凍のための（ＥＢＣ回路１０８などの）専用オンチップコーデックを含むことができる。いくつかの実施形態では、メディア装置１０２が、未圧縮ファイルフォーマットであるＲＡＷ画像ファイルフォーマットで画像を取り込む（イメージセンサ１０４などの）１又は２以上のイメージセンサを含むこともできる。このような場合には、メディア装置１０２のＥＢＣ回路１０８が取り込み画像を符号化することができる。メディア装置１０２の例としては、以下に限定するわけではないが、デジタルカメラ、ポータブル通信装置（例えば、ラップトップ、スマートホン、タブレット、ファブレット、スマートウォッチ、スマートグラスなど）、メディアサーバ、ワークステーション、デスクトップコンピュータ、拡張現実／仮想現実／混合現実（ＡＲ／ＶＲ／ＭＲ）装置を挙げることができる。
【００１１】
図１には示していないが、メディア装置１０２は、通信ネットワーク（やはり図示せず）を介した符号化及び／又は未圧縮ＲＡＷ画像及び／又はビデオの他の周辺装置又はピア接続装置との共有を管理するように構成できるネットワークインターフェイスを含むこともできる。ネットワークインターフェイス及び通信ネットワークの詳細な説明は、簡潔にするために本開示から省いている。
【００１２】
イメージセンサ１０４は、イメージセンサ１０４の視野（ＦＯＶ）内のシーンの１つ又は一連の未圧縮ＲＡＷ画像を取り込むように構成できる好適なロジック、回路及びインターフェイスを含むことができる。イメージセンサ１０４は、相補型金属酸化物半導体（ＣＭＯＳ）センサなどのアクティブピクセルセンサとして実装することができる。このような実装では、イメージセンサ１０４を、ＣＭＯＳセンサのセンサコア上で画素の各行又は列（一次元（１Ｄ）画素配列又は１Ｄ画像ブロック）を（一行ずつ）逐次走査するように構成することができる。逐次走査は、垂直（列方向）走査又は水平（行方向）走査とすることができる。いくつかの実施形態では、イメージセンサ１０４を、アクティブピクセルセンサの代わりに、（電荷結合素子（ＣＣＤ）センサなどの）パッシブピクセルセンサ、オーバーサンプルドバイナリイメージセンサ（ｏｖｅｒｓａｍｐｌｅｄ  ｂｉｎａｒｙ  ｉｍａｇｅ  ｓｅｎｓｏｒ）、平坦フーリエキャプチャアレイ（ｐｌａｎａｒ  Ｆｏｕｒｉｅｒ  ｃａｐｔｕｒｅ  ａｒｒａｙ：ＰＦＣＡ）、及び裏面照射型（ＢＳＩ又はＢＩ）センサなどのうちの１つとして実装することもできる。図示してはいないが、イメージセンサ１０４は、イメージセンサ１０４からの画像データに従って動作するように構成された専用マイクロプロセッサ（又はマイクロコントローラ）、フレームバッファに記憶された画像を処理するための画像処理装置（ＧＰＵ）、及び／又はイメージセンサ１０４と一体化されたメモリを含むこともできる。
【００１３】
プロセッサ１０６は、専用メモリ（例えば、外部メモリ１１０、又はＥＢＣ回路１０８内のオンチップメモリ）に記憶された命令セットを実行するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。プロセッサ１０６は、当業で周知の複数のプロセッサ技術に基づいて実装することができる。プロセッサ１０６の例としては、以下に限定するわけではないが、画像処理装置（ＧＰＵ）、プロセッサのための（専用画像コプロセッサなどの）コプロセッサ、専用デジタルシグナルプロセッサ、中央処理装置（ＣＰＵ）、ｘ８６ベースのプロセッサ、ｘ６４ベースのプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）プロセッサ、特定用途向け集積回路（ＡＳＩＣ）プロセッサ、複合命令セットコンピューティング（ＣＩＳＣ）プロセッサを挙げることができる。
【００１４】
ＥＢＣ回路１０８は、特定の圧縮係数に従って１Ｄ画像ブロック（例えば、１６×１又は８×１の画像ブロック）を符号化するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。ＥＢＣ回路１０８は、ＥＢＣ回路１０８において受け取られた命令に応答して、符号化１Ｄ画像ブロックを精緻化するようにさらに構成することができる。いくつかの実施形態では、１Ｄ画像ブロックを、入力画像（すなわち、未圧縮ＲＡＷ画像）の一部、或いはイメージセンサ１０４による行方向また又は列方向の走査後にイメージセンサ１０４の読み出しレジスタから直接取り出される画素配列（行又は列）とすることができる。ＥＢＣ回路１０８は、符号化１Ｄ画像ブロックのビットストリームの外部メモリ１１０への記憶、或いは専用通信ネットワークを介した他のメディア装置への転送をさらに管理することができる。
【００１５】
ＥＢＣ回路１０８は、メディア装置１０２の他の計算回路と連動する専用ハードウェアエンコーダ／デコーダとして実装することができる。このような実装では、ＥＢＣ回路１０８が、特定の計算回路上の特定のフォームファクタに関連することができる。特定の計算回路の例としては、以下に限定するわけではないが、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジック装置（ＰＬＤ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルＡＳＩＣ（ＰＬ−ＡＳＩＣ）、特定用途向け集積部品（ＡＳＳＰ）、及び標準的なマイクロプロセッサ（ＭＰＵ）又はデジタルシグナルプロセッサ（ＤＳＰ）に基づくシステムオンチップ（ＳＯＣ）を挙げることができる。別の実施形態によれば、ＥＢＣ回路１０８は、画像処理装置（ＧＰＵ）と連動してＥＢＣ回路１０８の動作を並列化することもできる。さらに別の実施形態によれば、ＥＢＣ回路１０８は、メモリに記憶されたプログラム可能命令と、メディア装置１０２のハードウェア回路上の論理装置（又はプログラマブル論理装置）との組み合わせとして実装することもできる。
【００１６】
外部メモリ１１０は、１つ又は一連の入力画像（未圧縮ＲＡＷ画像又は符号化画像）を記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。外部メモリ１１０は、イメージセンサ１０４から直接取り出された未圧縮１Ｄ  ＲＡＷ画像ブロックを記憶するイメージバッファとして機能するようにさらに構成することができる。また、外部メモリ１１０は、ＥＢＣ回路１０８が符号化１Ｄ画像ブロックのビットストリームを生成するために適用できる逐次符号化／復号スキームに関連する命令を記憶することもできる。例示的な実施形態では、外部メモリ１１０を、ＥＢＣ回路１０８と外部的に連動できる永続的ストレージメモリ又はダイナミックランダムアクセスメモリ（ＤＲＡＭ）とすることができる。別の例示的な実施形態では、外部メモリ１１０を、ＥＢＣ回路１０８と外部的に連動できるスタティックランダムアクセスメモリ（ＳＲＡＭ）回路とすることができる。外部メモリ１１０のさらなる実装例としては、以下に限定するわけではないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的消去可能でプログラム可能なリードオンリメモリ（ＥＥＰＲＯＭ）、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、ＣＰＵキャッシュ、又はセキュアデジタル（ＳＤ）カードを挙げることができる。
【００１７】
いくつかの実施形態では、ＥＢＣ回路１０８が、アドバンストビデオコーデック（ＡＶＣ）／メディアエキスパートグループ（ＭＰＥＧ−４／ＡＶＣ）又はＨ．２６４、ＭＰＥＧ−４／ＨＥＶＣ又はＨ．２６５などを含むことができる他の異なるコーデック規格（例えば、後方互換性）をサポートすることもできる。また、ビデオコーデックは、ＦＦｍｐｅｇ、Ｘｖｉｄ、ＤＩＶｘ、ＶＰ１−９、Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｃｏｄｅｃ、ＦＦａｖｓなどを含むことができる他のコーデックライブラリによってサポートすることもできる。
【００１８】
システムバス１１２は、メディア装置１０２の異なるコンポーネントへの一連のデータチャネル（又は導電経路）を含むことができるハードウェアバスとすることができる。換言すれば、システムバス１１２は、メディア装置１０２の異なるコンポーネントの少なくともデータポート、アドレスポート及び制御信号ポートを相互接続することができる。例えば、システムバス１１２は、イメージセンサ１０４、プロセッサ１０６、ＥＢＣ回路１０８、外部メモリ１１０及びその他の回路を相互接続することができる。システムバス１１２は、メディア装置１０２に搭載された異なるコンポーネント間の直列データ通信又は並列データ通信を容易にするように構成することができる。システムバス１１２の例としては、８ビットパラレルシングルシステムバス、１６ビットパラレルシングルシステムバス、３２ビットパラレルシングルシステムバス、６４ビットパラレルシングルシステムバス、シリアルデータバスなどを挙げることができる。
【００１９】
動作時には、メディア装置１０２が、１つ又は一連の１Ｄ画像ブロックを受け取ることができる。いくつかの実施形態では、１つ又は一連の１Ｄ画像ブロックを、（イメージセンサ１０４などの）オンチップイメージセンサの読み出しレジスタから、又はメディア装置１０２と連動するカメラ装置から直接取り出すことができる。他の実施形態では、１つ又は一連の１Ｄ画像ブロックを、メディア装置１０２の外部メモリ１１０などの永続的ストレージに記憶された未圧縮ＲＡＷ入力画像から取り出し、或いはカメラ、データサーバなどの他のメディア記憶装置から外部的に受け取ることができる。
【００２０】
ＥＢＣ回路１０８は、１つ又は一連の１Ｄ画像ブロックを外部メモリ１１０から、又はイメージセンサ１０４の読み出しレジスタから直接取り出すように構成することができる。ＥＢＣ回路１０８は、これらの１Ｄ画像ブロックに対して逐次符号化スキームを実行して、符号化１Ｄ画像ブロックのビットストリームを生成するように構成することができる。符号化１Ｄ画像ブロックのビットストリームは、この符号化１Ｄ画像ブロックのビットストリームを取得するために１Ｄ画像ブロックの符号化において適用された逐次符号化スキームを示すことができるヘッダ情報を含むことができる。１つの実装では、逐次符号化スキームが、１Ｄ変換の後に、量子化、残差予測及びエントロピー符号化スキームを逐次適用することを含むことができる。
【００２１】
逐次符号化スキームでは、ＥＢＣ回路１０８を、例えば「１６×１」の画像ブロックなどの１Ｄ画像ブロックを複数の１Ｄ画像サブブロックに分割するように構成することができる。複数の１Ｄ画像サブブロックは、１Ｄ画像ブロックをエッジにおいて画素値が急激に変化する領域に論理分割したものに対応することができる。例えば、「１６×１」画像ブロックは、４つの「４×１」１Ｄ画像サブブロックに分割することができ、各「４×１」１Ｄ画像サブブロックは強エッジを含むことができ、すなわち２つの連続する「４×１」１Ｄ画像サブブロックのエッジでは画素値が大きく異なる。
【００２２】
ＥＢＣ回路１０８は、複数の１Ｄ画像サブブロックの各１Ｄ画像サブブロックに個別に１Ｄ順方向変換を適用して複数の１Ｄ変換係数を生成するようにさらに構成することができる。ある実施形態によれば、この１Ｄ順方向変換が、（正規直交基底群又は固有ベクトル群を含む）正弦波ユニタリ変換群に基づくことができる。１Ｄ順方向変換の例としては、以下に限定するわけではないが、タイプＩ−ＶＩＩＩ離散コサイン変換（ＤＣＴ）、タイプＩ−ＶＩＩＩ離散サイン変換（ＤＳＴ）、離散ウェーブレット変換（ＤＷＴ）、及びデュアルツリー複素ウェーブレット変換（ＤＣＳＴ）を挙げることができる。
【００２３】
例えば、「１６×１」画像ブロックの各「４×１」画像サブブロックには、「４×１」１Ｄ  ＤＣＴ変換を適用することができる。同様に、「１６×１」画像ブロックの各「８×１」画像サブブロックには、「８×１」１Ｄ  ＤＣＴ変換を適用することができる。従って、結果として１Ｄ画像ブロックに適用される１Ｄ変換のタイプは、１Ｄ画像ブロックの各１Ｄ画像サブブロックのサイズに基づくことができる。複数の１Ｄ画像サブブロックの各１Ｄ画像サブブロックのサイズは、１Ｄ画像ブロックの符号化前に指定することができる。
【００２４】
ＥＢＣ回路１０８は、各１Ｄ画像サブブロックの複数の１Ｄ変換係数を量子化して複数の量子化変換レベルを生成するようにさらに構成することができる。複数の量子化変換レベルは、複数の離散化された量子化ビンによって互いに分離することができる。さらに、これらの複数の量子化ビンの刻み幅を適応的に又は均一に選択して、変換係数の１Ｄサブブロックを複数の量子化変換レベルに効率的に量子化することもできる。各量子化変換レベルは、量子化ビンの上限及び下限からの中央値とすることができ、例えば「（１５５、１７５）」の量子化ビンは、「（１５５＋１７５）／２」、すなわち「１６５」という量子化変換レベルを含むことができる。ＥＢＣ回路１０８は、量子化を使用して、変換領域データ（すなわち、複数の１Ｄサブブロックの各１Ｄサブブロックの複数の変換係数）から、視覚的に顕著な品質低下を伴わずに冗長な係数情報を削除することができる。
【００２５】
複数の量子化ビンは、メディアコンテンツを符号化又は復号する適応的量子化スキームに従う規定の割合によって変化し得る量子化パラメータ（ＱＰ）に基づいて決定することができる。ＱＰは、０から符号化１Ｄ画像ブロックのビットストリームのビット深度まで変化することができる。例えば、圧縮１Ｄ画像ブロックの８ビットのビットストリームのＱＰを、変換係数の第１の１Ｄサブブロックについて「７」として選択し、変換係数の第２のブロックについて「０」として選択することにより、変換係数の第１の１Ｄサブブロックを第２のブロックと比べて細かい刻み幅で量子化することができ、第２のブロックを全く量子化しないことができる旨を示すことができる。いくつかの実施形態では、複数の１Ｄサブブロックの各１Ｄサブブロックの複数の変換係数に対して実行される量子化スキームが、ビットプレーン量子化スキームである。
【００２６】
ＥＢＣ回路１０８は、それぞれが複数の量子化変換レベルを含むことができる量子化変換レベルの複数の１Ｄサブブロックに残差予測スキームを適用するようにさらに構成することができる。残差予測スキームの適用後には、量子化変換レベルの複数の１Ｄサブブロックから、量子化変換残差レベルの複数の１Ｄサブブロックを取得することができる。１Ｄ画像ブロックの量子化変換残差レベルの複数の１Ｄサブブロックは、外部メモリ１１０、又はＥＢＣ回路１０８内のオンチップメモリ（例えば、専用ＳＲＡＭ又はオンチップキャッシュ）などのメモリに記憶することができる。残差予測スキームの例としては、以下に限定するわけではないが、パルス符号化変調（ＰＣＭ）スキーム、差分パルス符号変調（ＤＰＣＭ）スキーム、又は適応的ＤＰＣＭ（ＡＤＰＣＭ）スキームを挙げることができる。ＤＰＣＭ及びＡＤＰＣＭスキームでは、各量子化変換レベルを利用する代わりに基準量子化レベルから残差を予測する。
【００２７】
例えば「４×１」サブブロックなどの各１Ｄサブブロックは、ＤＣ量子化変換残差レベル及び複数のＡＣ量子化変換残差レベルをさらに含むことができる複数の量子化変換残差レベルを含むことができる。ここでの「ＤＣ」は、画像ブロック又はサブブロックの第１の項である直流（ＤＣ）項を表し、従ってゼロ周波数を示し、残りの要素は、非ゼロの周波数を示す交流（ＡＣ）項（ＡＣ値又はＡＣ係数とも呼ばれる）として知られている。従って、ＡＣ量子化変換残差レベルは、ＡＣ係数（値）の量子化変換残差レベルに対応する。
【００２８】
ＥＢＣ回路１０８は、エントロピー符号化スキームを適用することによって量子化変換残差レベルの複数の１Ｄサブブロックを符号化するようにさらに構成することができる。この結果、複数のビットプレーンを含む複数の符号化１Ｄサブブロックを取得することができる。複数のビットプレーンは、符号化ビット位置と、精緻化ビットを割り当てることによって精緻化できる非符号化ビット位置とを含むことができる。エントロピー符号化スキームは、以下に限定するわけではないが、ハフマン符号化スキーム、指数ゴロム符号化スキーム、プログレッシブゴロム符号化スキーム、ゴロムライス符号化スキーム、及びハフマン符号化スキームと指数ゴロム符号化スキームとの組み合わせを含むことができる。
【００２９】
ＥＢＣ回路１０８は、符号化１Ｄサブブロックにおいて精緻化ビットを割り当てるために、エントロピー符号化前に各１Ｄサブブロックの平坦度又は複雑度の尺度を推定するようにさらに構成することができる。平坦度又は複雑度の尺度は、複数の１Ｄサブブロックの各１ＤサブブロックにおけるＡＣ量子化変換残差レベルの絶対値に基づいて定めることができる。従って、ＥＢＣ回路１０８は、各１Ｄサブブロックを複数のサブブロックカテゴリのうちの１つのサブブロックカテゴリに分類するように構成することができる。例えば、３つのサブブロックカテゴリ、すなわち第１のサブブロックカテゴリ、第２のサブブロックカテゴリ及び第３のサブブロックカテゴリが存在することができる。第１のサブブロックカテゴリは、低複雑度のＡＣ量子化変換残差レベルを表すことができる。第２のサブブロックカテゴリは、中複雑度のＡＣ量子化変換残差レベルを表すことができる。第３のサブブロックカテゴリは、高複雑度のＡＣ量子化変換残差レベルを表すことができる。
【００３０】
複数の１Ｄサブブロックのうちの１つの１Ｄサブブロックのサブブロックカテゴリへの分類は、この１Ｄサブブロックへの一連のシグナリングビットの割り当てに基づくことができる。従って、ＥＢＣ回路１０８は、複数の１Ｄサブブロックの各１Ｄサブブロックに、対応する１Ｄサブブロックの複雑度又は平坦度の尺度に従って一連のシグナリングビットを割り当てるように構成することができる。例えば、第１のサブブロックカテゴリに関連する１Ｄサブブロックの一連のシグナリングビットを「０」とすることができる。ＥＢＣ回路１０８は、量子化変換残差レベルの異なる１Ｄサブブロックに割り当てられた一連のシグナリングビットに基づいて、複数の精緻化ビットを選択して異なる符号化１Ｄサブブロックに割り当てるように構成することができる。ＥＢＣ回路１０８は、割り当てられた一連のシグナリングビットを精緻化段階で利用して、特定のサブブロックカテゴリの符号化１Ｄサブブロックにおいて割り当てるべき複数の精緻化ビットを決定することができる。
【００３１】
ＥＢＣ回路１０８は、符号化１Ｄ画像ブロックのビットストリームを生成するようにさらに構成することができる。生成されるビットストリームは、符号化ビットと、割り当てられる精緻化ビットとを含むことができる。割り当てられる精緻化ビットの数は、利用可能なビット配分と、圧縮後の符号化ビット数とに依存する。例えば、１０ビット深度を有する１６サンプルの入力画像ブロックでは、５ビット深度の出力を有することが望ましいと考えられる。符号化スキームの適用後には、出力が７４ビットしか占めないのに対し、ビット配分は１６×５＝８０ビットであることが分かる。存在する６つの非符号化ビットを使用して好適な精緻化方法で６つの精緻化ビットを割り当てることによって画質を高めることができる。
【００３２】
別の実施形態によれば、ＥＢＣ回路１０８のＥＢＣデコーダ回路（図１には図示せず）を、異なる符号化テーブル（例えば、ハフマン符号化スキーム、指数ゴロム符号化スキームのためのカスタム符号化テーブル、又はシグナリングビットテーブル）及び量子化テーブルを予め記憶しておくように構成することができる。従って、符号化１Ｄ画像ブロックのビットストリームが異なる符号化テーブル及び量子化テーブルを含まなくてもよくすることができる。
【００３３】
ある実施形態によれば、ＥＢＣ回路１０８は、異なる復号スキームを利用して符号化１Ｄ画像ブロックのビットストリームを復号できる異なる外部デコーダによって復号できるような符号化１Ｄ画像ブロックのビットストリームを生成するように構成することができる。このような場合には、ＥＢＣ回路１０８を、符号化１Ｄ画像ブロックのビットストリームに関連するヘッダ情報又は異なるメタストリームに異なる符号化テーブル（例えば、ハフマン符号化スキーム、指数ゴロム符号化スキームのためのカスタム符号化テーブル、又はシグナリングビットテーブル）及び量子化テーブルを追加するように構成することができる。ビットストリームにおいてこのようなカスタムテーブル及び量子化テーブルを追加することにより、他のデコーダ回路がＥＢＣ回路１０８の出力を復号できるようになる。
【００３４】
ある実施形態によれば、符号化１Ｄ画像ブロックのビットストリームは、外部メモリ１１０などのメモリ、又はＥＢＣ回路１０８内のオンチップメモリに（２Ｄ画像などの）入力画像の一部、完全な画像又はビデオ部分として記憶することができる。１つの実装では、プロセッサ１０６を、メディア装置１０２のシステムバス１１２と通信可能に連動する表示回路（例えば、ビデオカード）のフレームバッファ（又はフレームストア）にシステムバス１１２を介して符号化１Ｄ画像ブロックのビットストリームを転送するように構成することができる。このフレームバッファは、表示回路のための圧縮フレームバッファとして機能することができる。表示回路（図１には図示せず）は、１Ｄ画像ブロックの符号化ビットストリームのビットストリームを復号し、これをさらに利用してメディア装置１０２において画像パッチ（ｐａｔｃｈ  ｏｆ  ｉｍａｇｅ）を表示することができる。別の実装では、プロセッサ１０６を、メディア装置１０２内のビデオデコーダのデコーダピクチャバッファ（ＤＰＢ）などのデコーダバッファ、画像デコーダのバッファメモリ、又はビデオコーデックの符号化ピクチャバッファ（ＣＰＢ）にシステムバス１１２を介して符号化１Ｄ画像ブロックのビットストリームを転送するように構成することができる。
【００３５】
例示的な実装では、メディア装置１０２を、デジタルビデオカメラ又はデジタル画像カメラなどのカメラとすることができ、符号化１Ｄ画像ブロックのビットストリームは、カメラ内のＣＭＯＳセンサの読み出しレジスタから直接受け取られる画素値の１Ｄ配列に対応することができる。例示的な実施形態では、ＥＢＣ回路１０８をＣＭＯＳセンサ回路内に実装することができる。
【００３６】
図２は、本開示の実施形態による、サブブロックに基づく量子化変換残差レベルのエントロピー符号化のための様々な周辺コンポーネントを含む埋め込みコーデック（ＥＢＣ）回路を示すブロック図である。図２の説明は、図１の要素に関連して行う。図２には、ＥＢＣ回路１０８のブロック図２００を示す。ＥＢＣ回路１０８は、入力／出力（Ｉ／Ｏ）インターフェイス２０２と、オンチップメモリ２０４と、エンコーダ回路２０６と、デコーダ回路２０８とを含むことができる。ブロック図２００には、システムバス１１２を介してＥＢＣ回路１０８に通信可能に結合されたイメージセンサ１０４、プロセッサ１０６及び外部メモリ１１０も示す。いくつかの実施形態では、本開示の範囲から逸脱することなく、プロセッサ１０６及び外部メモリ１１０をＥＢＣ回路１０８内に実装することができる。
【００３７】
Ｉ／Ｏインターフェイス２０２は、複数のＩ／Ｏポートを管理して、例えば外部メモリ１１０、プロセッサ１０６又はイメージセンサ１０４などの他の周辺回路からのシステムバス１１２を介した通信データの交換を容易にするように構成できる好適なロジック、回路及びインターフェイスを含むことができる。この通信データは、符号化１Ｄ画像ブロックのビットストリーム、制御信号及びＣＰＵ命令などを含むことができる。Ｉ／Ｏポートの構成は、例えばＡＳＩＣ、ＦＰＧＡ又はＳｏＣチップ内の物理Ｉ／ＯピンなどのＥＢＣ回路１０８の仕様に依存することができる。
【００３８】
オンチップメモリ２０４は、ＥＢＣ回路１０８の異なるコンポーネントが１Ｄ画像ブロックを符号化するために利用できる異なる動作データ（例えば、変換領域データ、残差レベル、量子化レベル、エントロピー符号化ビットなど）を記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。オンチップメモリ２０４に記憶される動作データの例としては、以下に限定するわけではないが、符号化１Ｄ画像ブロックのビットストリーム、変換領域データ、量子化変換レベル、量子化変換残差レベル、計算変数、一時的処理データ、及び１Ｄ／２Ｄ画像ブロックを挙げることができる。オンチップメモリ２０４は、読み出し／書き込み速度、メモリサイズ及び製造因子などの規定のメモリ仕様を用いて設計された特定のメモリとして実装することができる。オンチップメモリ２０４の例としては、以下に限定するわけではないが、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックアクセスメモリ（ＤＲＡＭ）、及びスタティックダイナミックＲＡＭ（ＳＤ−ＲＡＭ）を挙げることができる。
【００３９】
エンコーダ回路２０６は、オンチップメモリ２０４又は外部メモリ１１０などのメモリに記憶された１Ｄ画像ブロックに逐次符号化スキームを適用した後に精緻化を行うことによって符号化１Ｄ画像ブロックのビットストリームを生成するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。エンコーダ回路２０６は、（量子化変換残差レベルの）異なる１Ｄサブブロックを異なるサブブロックカテゴリに分類し、この異なるサブブロックカテゴリに基づいて符号化１Ｄサブブロックに精緻化ビットを割り当てることもできる。一部のサブブロック（複雑レベル）は、他のサブブロック（比較的平坦なレベル）に比べて多くの細部を必要とするので、エンコーダ回路２０６は、サブブロックカテゴリに基づいて１Ｄサブブロックに精緻化ビットを割り当てることができる。複雑なレベルのサブブロックに平坦なレベルのサブブロックと比べて多くの数の精緻化ビットを割り当てることにより、複雑なレベルのサブブロックに対応する符号化画像の領域の細部を改善することができる。いくつかの実施形態では、エンコーダ回路２０６を、ＡＳＩＣ、プログラマブルロジック装置（ＰＬＤ）、ＳＯＣ、ＦＰＧＡ、デジタルシグナルプロセッサ（ＤＳＰ）、又はその他の専用回路のうちの１つに基づいて実装できるハードウェアエンコーダチップとすることができる。他の実施形態では、エンコーダ回路２０６を、ハードウェアと、オンチップメモリ２０４に記憶された命令セット（例えば、ＶＨＤＬ又はＨＤＬロジックに基づく命令）との組み合わせとして実装することができる。
【００４０】
デコーダ回路２０８は、（符号化１Ｄ画像ブロックに関連する）複数の１Ｄサブブロックの各１Ｄサブブロックに割り当てられた一連のシグナリングビットを含むヘッダ情報に基づいて符号化１Ｄ画像ブロックのビットストリームを復号するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。いくつかの実施形態では、デコーダ回路２０８が、符号化１Ｄ画像ブロックのビットストリームを復号するための基準として機能できる予め記憶された量子化テーブル及び符号化テーブルを有することができる。いくつかの実施形態では、デコーダ回路２０８を、ＡＳＩＣ、プログラマブルロジック装置（ＰＬＤ）、ＳＯＣ、ＦＰＧＡ、デジタルシグナルプロセッサ（ＤＳＰ）、又はその他の専用回路のうちの１つに基づいて実装できるハードウェアエンコーダチップとすることができる。いくつかの実施形態では、デコーダ回路２０８を、ハードウェアと、オンチップメモリ２０４内のプログラム命令（例えば、ＶＨＤＬ又はＨＤＬロジックに基づく命令）との組み合わせとして実装することができる。
【００４１】
動作時には、１Ｄ画像ブロックの量子化変換残差レベルの複数の１Ｄサブブロックを外部メモリ１１０又はオンチップメモリ２０４などのメモリに記憶することができる。量子化変換残差レベルの複数の１Ｄサブブロックは、これらを記憶する前に、１Ｄ画像ブロックの複数の１Ｄ画像サブブロックの１Ｄ順方向変換の後に、量子化及び残差予測を逐次適用することに基づいて生成することができる。例えば、「１６×１」画像ブロックには４つの「４×１」画像サブブロックが存在することができる。エンコーダ回路２０６は、各「４×１」サブブロックに対する「４×１」ＤＣＴ−ＩＩ変換、「７」の量子化パラメータのビットプレーン量子化、及び４つの「４×１」サブブロックの各「４×１」サブブロックにおけるＤＰＣＭ符号化スキームの逐次適用に基づいて、量子化変換残差レベルの４つの「４×１」サブブロックを生成するように構成することができる。
【００４２】
エンコーダ回路２０６は、量子化変換残差レベルの複数の１Ｄサブブロックをエントロピー符号化するために、外部メモリ１１０又はオンチップメモリ２０４などのメモリから、記憶された量子化変換残差レベルの複数の１Ｄサブブロックを取り出すように構成することができる。各１Ｄサブブロックは、ＤＣ量子化変換残差レベル及び複数のＡＣ量子化変換残差レベルとすることができ、例えば４×１サブブロックは、１つのＤＣ量子化変換残差レベルと３つのＡＣ量子化変換残差レベルとを有することができる。
【００４３】
各１Ｄサブブロック内のＤＣ及びＡＣ量子化変換残差レベルの位置は、１Ｄ順方向変換を適用するために選択される方向（例えば、１Ｄブロック又はサブブロックの左から右へ又は右から左への走査順）に基づくことができる。例えば、１Ｄ行ＤＣＴ変換を適用すると、１Ｄサブブロックの行内の最初の位置にＤＣ変換係数を生成し、後続の位置に残りのＡＣ変換係数を生成することができる。同様に、１Ｄ列ＤＣＴ変換を適用すると、１Ｄサブブロックの列内の最初の位置にＤＣ変換係数を生成し、後続の位置に残りのＡＣ変換係数を生成することができる。
【００４４】
量子化変換残差レベルの複数の１Ｄサブブロックにおける異なる１Ｄサブブロックは、異なる複雑度（又は平坦度）を示すことができる。これらの複雑度又は平坦度は、１Ｄサブブロックにおける連続する画素値の差分に対応することができる。例えば、画素値の大きな変動が見られる１Ｄサブブロックは複雑なサブブロックとみなすことができ、画素値が比較的似通ったサブブロックは平坦なサブブロックとみなすことができる。平坦なサブブロックは、各画素値が結果としての出力画像に大きな影響を与える複雑なサブブロックに比べて少数のビットを用いて表すことができる冗長画素値を含むことができる。
【００４５】
エンコーダ回路２０６は、複数のサブブロックカテゴリのうちの１つのサブブロックカテゴリに従って、１Ｄ画像ブロックの量子化変換残差レベルの複数の１Ｄサブブロックを分類するように構成することができる。一連のサブブロックカテゴリは、第１のサブブロックカテゴリ、第２のサブブロックカテゴリ及び第３のサブブロックカテゴリを含むことができる。一連のサブブロックカテゴリの各サブブロックカテゴリは、複数の１Ｄサブブロックのうちの対応する１Ｄサブブロックの異なる平坦度及び複雑度を示すことができる。具体的に言えば、第１のサブブロックカテゴリ、第２のサブブロックカテゴリ及び第３のサブブロックカテゴリは、複数の１Ｄサブブロックの各１ＤサブブロックにおけるＡＣ量子化変換残差レベルの（値の範囲などの）特定の変動を示すことができる。
【００４６】
エンコーダ回路２０６は、１Ｄサブブロックの精緻化時に、対応する１Ｄサブブロックのサブブロックカテゴリを識別するために、複数の１Ｄサブブロックの各１Ｄサブブロックに一連のシグナリングビットを割り当てるように構成することができる。一連のシグナリングビットは、複数の１Ｄサブブロックの各１Ｄサブブロックにおける複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値に基づいて割り当てることができる。割り当てられる一連のシグナリングビットは、複数の１Ｄサブブロックの各１Ｄサブブロックの一連のサブブロックカテゴリからの１つのサブブロックカテゴリを表すことができる。
【００４７】
ある実施形態によれば、エンコーダ回路２０６は、複数の１Ｄサブブロックの各１Ｄサブブロックの複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値を第１の基準値及び第２の基準値と比較するように構成することができる。この最大値は、０以上の絶対最大値とすることができ、この比較により、複数の１Ｄサブブロックの各１Ｄサブブロックの最大値が第１の基準値又は第２の基準値に等しいか、それとも第２の基準値よりも大きいかを判定することができる。
【００４８】
ある実施形態によれば、複数の１Ｄサブブロックのうちの１つの１Ｄサブブロックの複数のＡＣ量子化変換残差レベルの最大値が「０」などの第１の基準値に等しい場合、割り当てられる一連のシグナリングビットは、この１Ｄサブブロックの第１のサブブロックカテゴリを表すことができる。同様に、複数の１Ｄサブブロックのうちの１つの１Ｄサブブロックの複数のＡＣ量子化変換残差レベルの最大値が「１」などの第２の基準値に等しい場合、割り当てられる一連のシグナリングビットは、この１Ｄサブブロックの第２のサブブロックカテゴリを表すことができる。複数の１Ｄサブブロックのうちの１つの１Ｄサブブロックの複数のＡＣ量子化変換残差レベルの最大値が「１」などの第２の基準値よりも大きい場合、割り当てられる一連のシグナリングビットは、この１Ｄサブブロックの第３のサブブロックカテゴリを表すことができる。割り当てられる一連のシグナリングビットにおける第１のサブブロックカテゴリを表すシグナリングビットの数は、「１」ビットとすることができる。一連のシグナリングビットにおける第２のサブブロックカテゴリ及び第３のサブブロックカテゴリを表すシグナリングビットの数は、「２」ビットとすることができる。
【００４９】
いくつかの実施形態では、第１の基準値が「０」であり、第２の基準値が「１」である。従って、エンコーダ回路２０６は、各１ＤサブブロックにおけるＡＣ量子化変換残差レベルが「０」又は「１」に等しいか、それとも「１」よりも大きいかをチェックするように構成することができる。ある例では、量子化変換残差レベルの第１の「４×１」サブブロック（ＳＢ1）、第２の「４×１」サブブロック（ＳＢ2）及び第３の「４×１」サブブロック（ＳＢ3）を以下のように与えることができる。
ＳＢ1＝［−１３  ０  ０  ０］
ＳＢ2＝［−１３  １  １  ０］
ＳＢ3＝［−７  ６  ０  −２］
ここでは、サブブロックＳＢ1の全てのＡＣ量子化変換残差レベルが「０」であり、従ってサブブロックＳＢ1におけるＡＣ量子化変換残差レベルの絶対最大値は「０」である。サブブロックＳＢ2は、「１」のＡＣ量子化変換残差レベルを２つ有し、「０」のＡＣ量子化変換残差レベルを１つ有することができる。従って、サブブロックＳＢ2におけるＡＣ量子化変換残差レベルの絶対最大値は「１」である。サブブロックＳＢ3では、ＡＣ量子化変換残差レベルが「６」、「０」及び「−２」である。サブブロックＳＢ3におけるＡＣ量子化変換残差レベルの絶対最大値は「６」である。この例では、サブブロックＳＢ1におけるＡＣ量子化変換残差レベルの絶対最大値が「０」に等しく、この値は「０」という第１の基準値に等しい。従って、サブブロックＳＢ1には、一連のシグナリングビットの割り当ての一部として、サブブロックＳＢ1が（実質的な平坦度を表す）第１のサブブロックカテゴリによって識別されることを示すことができる「０」などの１つのシグナリングビット割り当てることができる。サブブロックＳＢ2におけるＡＣ量子化変換残差レベルの絶対最大値は「１」に等しく、この値は「１」という第２の基準値に等しい。従って、サブブロックＳＢ2には、一連のシグナリングビットの割り当ての一部として、サブブロックＳＢ2が（中程度の平坦度を表す）第２のサブブロックカテゴリによって識別されることを示すことができる「１０」などの２つのシグナリングビットを割り当てることができる。サブブロックＳＢ3におけるＡＣ量子化変換残差レベルの絶対最大値は「６」に等しく、この値は「０」という第１の基準値よりも大きく、「１」という第２の基準値よりも大きい。従って、サブブロックＳＢ3には、一連のシグナリングビットの割り当ての一部として、サブブロックＳＢ3が（低平坦度又は高複雑度を表す）第３のサブブロックカテゴリによって識別されることを示すことができる「１１」などの２つのシグナリングビットを割り当てることができる。
【００５０】
エンコーダ回路２０６は、エントロピー符号化スキームの適用によって複数の１Ｄサブブロックの各１Ｄサブブロック符号化して複数の符号化１Ｄサブブロックを生成するように構成することができる。エントロピー符号化スキームは、以下に限定するわけではないが、ハフマン符号化スキーム、指数ゴロム符号化スキーム、プログレッシブゴロム符号化スキーム、ゴロムライス符号化スキーム、又はハフマン符号化スキームと指数ゴロム符号化スキームとの組み合わせとすることができる。
【００５１】
複数の符号化１Ｄサブブロックは、複数の１Ｄサブブロックの量子化変換残差レベルに対応する符号化量子化変換残差レベル（ｅｎｃｏｄｅｄ  ｑｕａｎｔｉｚｅｄ−ｔｒａｎｓｆｏｒｍｅｄ  ｒｅｓｉｄｕａｌ  ｌｅｖｅｌｓ）を含むことができる。符号化量子化変換残差レベルは、ビットプレーンの複数のビットによって表される。ビットプレーンの数は、符号化前に指定されるビット深度に等しくすることができる。例えば、１０ビット深度の入力画像データでは、出力画像データの指定ビット深度を５ビット深度とすることができる。ここでの１０ビット深度及び５ビット深度は、入力画像データ及び出力画像データにおけるビットプレーンの数にそれぞれ対応する。エントロピー符号化後には、各符号化量子化変換残差レベルが５ビットを不要とすることができる。従って、ビットプレーン内の空きビット位置に精緻化ビットを割り当てて出力画像の品質を高めることができる。
【００５２】
ある実施形態によれば、エンコーダ回路２０６は、指定ビット深度と、符号化量子化変換残差レベルが占めるビットの数とに基づいて、割り当てるべき精緻化ビットの数を決定するように構成することができる。例えば、１６×１画像ブロックでは、指定ビット深度を５に等しくすることができる。符号化画像ブロックにおける総ビット数は「１６×５＝８０ビット」になるが、エントロピー符号化後には、符号化量子化変換残差レベルが７０ビットしか占めないことができる。従って、エンコーダ回路２０６は、精緻化ビットの数を、総ビット数と実際に占められているビット数との差分である「８０−７０＝１０ビット」として決定することができる。
【００５３】
エンコーダ回路２０６は、複数の１Ｄサブブロックの各１Ｄサブブロックのサブカテゴリに基づいて、複数の１Ｄサブブロックの１又は２以上のビットプレーンに決定された数の精緻化ビットを割り当てるように構成することができる。複数の１Ｄサブブロックのうちの１つの１Ｄサブブロックに割り当てられる精緻化ビットの数は、この１Ｄサブブロックのサブブロックカテゴリに依存することができる。割り当てられた一連のシグナリングビットは、対応する１Ｄサブブロックに割り当てられる精緻化ビットの数を決定するための決定因子として使用することができる。具体的に言えば、割り当てられた一連のシグナリングビットは、１Ｄサブブロックの複雑度又は平坦度をエンコーダ回路２０６に伝え、エンコーダ回路２０６は、精緻化ビットの数と、対応する１Ｄサブブロックの精緻化ビットの位置とを指定できる決定テーブル又は命令を記憶することができる。
【００５４】
ある実施形態によれば、第１のサブブロックカテゴリに関連する１Ｄサブブロックでは、ＤＣ量子化変換残差レベル及びＡＣ量子化変換残差レベルに対応するビット位置に「２つ」の精緻化ビットを割り当てることができる。第２のサブブロックカテゴリに関連する１Ｄサブブロックでは、ＤＣ量子化変換残差レベル、第１のＡＣ量子化変換残差レベル及び第２のＡＣ量子化変換残差レベルに対応するビット位置に「３つ」の精緻化ビットを割り当てることができる。第３のサブブロックカテゴリに関連する１Ｄサブブロックでは、精緻化ビットの数を、１ＤサブブロックにおけるＤＣ量子化変換残差レベル及びＡＣ量子化変換残差レベルの数に等しくすることができる。換言すれば、精緻化ビットは、ＤＣ量子化変換残差レベル及び各ＡＣ量子化変換残差レベルに対応するビット位置において割り当てることができる。なお、ここでの第１のサブカテゴリ及び第２のサブブロックカテゴリの精緻化ビットの数は、「２」及び「３」に限定されるものではない。各サブブロックカテゴリの精緻化ビットの数は、入力画像ブロックの画素値の分布解析、及び／又は実験に基づいて決定することができ、閾値は、サブブロックカテゴリ毎に設定することができる。しかしながら、第２のサブブロックカテゴリ（中程度に複雑なサブブロック）の精緻化ビットの数を第１のサブブロックカテゴリ（平坦なサブブロック）の精緻化ビットの数よりも少なくすることはできない。
【００５５】
例えば、Ｂ1＝［−１３  ０  ０  ０］によって与えられる「４×１」サブブロック（Ｂ1）では、全てのＡＣ量子化変換残差レベルが「０」であり、「４×１」サブブロック「Ｂ1」は、第１のサブブロックカテゴリに関連することができる。従って、「Ｂ1」では、ＤＣ量子化変換残差レベル（−１３）に対応する位置及び第１のＡＣ量子化変換残差レベル（０）に対応する位置において「２つ」の精緻化ビットを割り当てることができる。Ｂ2＝［−１３  １  １  ０］によって与えられる「４×１」サブブロック（Ｂ2）では、ＡＣ量子化変換残差レベルからの絶対最大値が全て「１」（−１３はＤＣ成分）であり、「Ｂ2」は、第２のサブブロックカテゴリに関連することができる。従って、「Ｂ2」では、ＤＣ量子化変換残差レベル（−１３）及び最初の２つのＡＣ量子化変換残差レベル（最初の２つの０）に対応する位置において「３つ」の精緻化ビットを割り当てることができる。Ｂ3＝［−７  ６  ０  −２］によって与えられる「４×１」サブブロック（Ｂ3）では、ＡＣ量子化変換残差レベルからの絶対最大値が全て「６」であり、「Ｂ3」は、第３のサブブロックカテゴリに関連することができる。従って、「Ｂ3」では、ＤＣ量子化変換残差レベル（−７）及び全てのＡＣ量子化変換残差レベル（６、０、−２）に対応する位置において「４つ」の精緻化ビットを割り当てることができる。
【００５６】
別の実施形態によれば、エンコーダ回路２０６は、複数の１Ｄサブブロックの各１Ｄサブブロックのサブカテゴリに基づいて精緻化順を決定するように構成することができる。精緻化順は、複数のビットプレーン（非符号化ビット位置を含むことができるビットプレーン）のうちの１つのビットプレーンにおける一連の位置に対応することができる。例えば、精緻化順［１、２、５、６、７、９、１０、１１、１２］は、精緻化ビットの割り当てが第１のビット位置から開始して第２のビット位置に進み、第１２のビット位置まで順番をたどることができる旨を定めることができる。精緻化順は、各１Ｄサブブロックのサブブロックカテゴリに対応する量子化変換残差レベルの位置として決定することができる。エンコーダ回路２０６は、決定された精緻化順に基づいて精緻化ビットを割り当てるようにさらに構成することができる。
【００５７】
ある実施形態によれば、最初の精緻化段階後にも依然として精緻化ビットを利用することができる。例えば、割り当てるべき合計「１０」個の精緻化ビットが存在するが、最初の精緻化段階（すなわち、サブブロックカテゴリに基づいて精緻化ビットを割り当てた）後に依然として「２つ」の精緻化ビットの割り当てが残っていることがある。このようなシナリオでは、エンコーダ回路２０６を、最初の精緻化段階で精緻化ビットが割り当てられていない可能性があるＡＣ量子化変換残差レベルに対応する位置において残りの精緻化ビットを割り当てるようにさらに構成することができる。
【００５８】
従来の精緻化方法では、最初に各１Ｄサブブロック内のＤＣ量子化変換残差レベルに対応する位置において精緻化ビットを割り当てることができる。最初の精緻化段階では、ＤＣ量子化変換残差レベルに対応する位置において１Ｄサブブロック当たり「１つ」の精緻化ビットしか割り当てられないものとすることができる。最初の段階後に依然として精緻化ビットを利用できる場合には、ＡＣ量子化変換残差レベルに対応する位置において残りの精緻化ビットを割り当てることができる。このような場合、１Ｄ画像ブロックがその平坦度又は複雑度に基づいて分類されず、これにより他のサブブロックに比べて多くの数の精緻化ビットを必要とするサブブロックに精緻化ビットが最適に割り当てられないことがある。例えば、割り当てるべき精緻化ビットが「４」であり、非符号化ビットを有するサブブロックの数も「４」とすることができる。従来の精緻化方法を使用した場合、最初の段階で各サブブロックに「１つ」の精緻化ビットしか割り当てられないことがある。これでは、（高複雑度を有する）サブブロックに（比較的平坦なレベルを有する）別のサブブロックと同じ数の精緻化ビットが割り当てられてしまうので、最適な精緻化ビットの利用ではない可能性がある。従って、本開示の実施形態による精緻化ビットの割り当ては、（高複雑度を有する）サブブロックに（比較的平坦なレベルを有する）サブブロックに比べて多くの数の精緻化ビットを割り当てることによって最適な精緻化ビットの利用を確実にすることができる。このような精緻化ビットの割り当ては、符号化画像の品質に悪影響を与えることなく圧縮効率を大幅に高める。さらに、複雑なサブブロックに多くの数の精緻化ビットが割り当てられるので、符号化アーチファクトも抑えられる。
【００５９】
図３に、本開示の実施形態による、図２のＥＢＣ回路による量子化変換残差レベルに基づくサブブロックの分類を示す。図３の説明は、図１及び図２の要素に関連して行う。図３にはフロー図３００を示す。フロー図３００には、（複数の１Ｄ画像サブブロックに分割された）１Ｄ画像ブロックに１Ｄ順方向変換、量子化及び残差予測を逐次適用した後に取得される量子化変換残差レベルの複数の１Ｄサブブロックを符号化している間にエンコーダ回路２０６が実行するいくつかの動作を示す。サブブロック３０２Ａ、サブブロック３０２Ｂ、サブブロック３０２Ｃ及びサブブロック３０２Ｄなどの一連の１Ｄサブブロックを示す。エンコーダ回路２０６は、サブブロック３０２Ａなどのサブブロックを逐次（又は並行して）選択し、例えば「簡単」、「中間」又は「複雑」などの、選択されたサブブロックのサブブロックカテゴリを決定するように構成することができる。
【００６０】
３０４において、エンコーダ回路２０６は、サブブロック３０２Ａの最大ＡＣ量子化変換残差レベル値を推定するように構成することができる。サブブロック３０２Ａでは、ＡＣ量子化変換残差レベルが、Ａ１、Ａ２及びＡ３である。エンコーダ回路２０６は、Ａ1、Ａ2及びＡ3から最大値を推定するように構成することができ、例えばＡ1を最大値とすることができる。
【００６１】
３０６において、エンコーダ回路２０６は、最大ＡＣ量子化変換残差レベルが「０」よりも大きいかどうかを判定するように構成することができる。サブブロック３０２Ａの最大ＡＣ量子化変換残差レベルが「０」よりも大きい場合には、最大ＡＣ量子化変換残差レベルが「１」に等しいか、それとも「１」よりも大きいかに基づいて、サブブロック３０２Ａを「中間」サブブロックカテゴリ、又は「複雑」サブブロックカテゴリのいずれかに分類することができる。「中間」サブブロックカテゴリは、第２のサブブロックカテゴリに対応することができ、「複雑」サブブロックカテゴリは、第３のサブブロックカテゴリに対応することができる。最大ＡＣ量子化変換残差レベルが「０」よりも大きい場合、制御は３０８に進む。それ以外の場合、制御は３１０に進む。
【００６２】
３０８において、エンコーダ回路２０６は、最大ＡＣ量子化変換残差レベルが「１」に等しいかどうかを判定するように構成することができる。この段階で、エンコーダ回路２０６は、サブブロック３０２Ａを「中間」サブブロックカテゴリ、又は「複雑」サブブロックカテゴリのいずれかに分類するように構成することができる。最大ＡＣ量子化変換残差レベルが「１」に等しい場合、制御は３１２に進む。それ以外の場合、制御は３１４に進む。
【００６３】
３１０において、エンコーダ回路２０６は、最大ＡＣ量子化変換残差レベルが「０」に等しいことに基づいて、サブブロック３０２Ａのサブブロックカテゴリを「簡単」サブブロックカテゴリとして決定するように構成することができる。エンコーダ回路２０６は、「簡単」サブブロックカテゴリに対応する「０」としてのシグナリングビットを割り当てるようにさらに構成することができる。制御は、サブブロック３０２Ａの分類後、サブブロック３０２Ｂなどの次のサブブロックに進むことができる。
【００６４】
３１２において、エンコーダ回路２０６は、最大ＡＣ量子化変換残差レベルが「１」に等しいことに基づいて、サブブロック３０２Ａのサブブロックカテゴリを「中間」サブブロックカテゴリとして決定するように構成することができる。エンコーダ回路２０６は、「中間」サブブロックカテゴリに対応する「１０」としてのシグナリングビットを割り当てるようにさらに構成することができる。制御は、サブブロック３０２Ａの分類後、サブブロック３０２Ｂなどの次のサブブロックに進むことができる。
【００６５】
３１４において、エンコーダ回路２０６は、最大ＡＣ量子化変換残差レベルが「１」よりも大きいことに基づいて、サブブロック３０２Ａのサブブロックカテゴリを「複雑」サブブロックカテゴリとして決定するように構成することができる。エンコーダ回路２０６は、「複雑」サブブロックカテゴリに対応する「１１」としてのシグナリングビットを割り当てるようにさらに構成することができる。制御は、サブブロック３０２Ａの分類後、サブブロック３０２Ｂなどの次のサブブロックに進むことができる。同様に、サブブロック３０２Ｂ、３０２Ｃ及び３０２Ｄなどの全てのサブブロックを処理することができる。いくつかの実施形態では、サブブロック３０２Ａ〜３０２Ｄの処理を同時に実行することができる。また、サブブロックカテゴリは、「簡単」、「中間」及び「複雑」サブブロックカテゴリに限定されるものではない。いくつかの実施形態では、例えば「簡単」、「中間１」、「中間２」及び「複雑」などの２又は３以上のサブブロックカテゴリが存在することができる。一例として、高画質の優先度が高い医療用途における画像／ビデオ圧縮では、ストレージ容量の優先度が高い用途における画像／ビデオ圧縮よりもサブブロックカテゴリの数を多くすることができる。換言すれば、複数のサブカテゴリを定めるためのルールは、用途又は最終目的に従って規定することができる。
【００６６】
図４に、本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための、図２のＥＢＣ回路による１Ｄ画像ブロックへの例示的な逐次符号化スキームの適用を示す。図４の説明は、図１、図２及び図３の要素に関連して行う。図４には、１６×１画像ブロックに逐次エントロピー符号化スキームを適用した後に精緻化ビットを割り当てる間のエンコーダ回路２０６の異なる段階における出力を示す図４００を示す。
【００６７】
最初に、エンコーダ回路２０６は、４つの画像サブブロックに分割できる１６×１画像ブロックを取り出すように構成することができる。例えば、１つの例では、第１のサブブロックＩＢ1が、４つのピクセル値Ｐ0、Ｐ1、Ｐ2及びＰ3を含むことができる。同様に、ＩＢ2＝［Ｐ4、Ｐ5、Ｐ6、Ｐ7］であり、ＩＢ3＝［Ｐ8、Ｐ9、Ｐ10、Ｐ11］であり、ＩＢ4＝［Ｐ12、Ｐ13、Ｐ14、Ｐ15］である。エンコーダ回路２０６は、ＩＢ1、ＩＢ2、ＩＢ3及びＩＢ4の各々に１Ｄ順方向変換を適用した後に、量子化スキーム及び残差予測スキームを適用して、量子化変換残差レベルの４つのサブブロックを取得するように構成することができる。例えば、１つの例では、第１のサブブロックＩＢ1から取得されたサブブロックＲＢ1が、ＤＣ量子化変換残差レベルＤＣ0と、ＡＣ量子化変換残差レベルＡ1、Ａ2及びＡ3とを含むことができる。同様に、ＲＢ2＝［ＤＣ1、Ａ4、Ａ5、Ａ6］であり、ＲＢ3＝［ＤＣ2、Ａ7、Ａ8、Ａ9］であり、ＲＢ4＝［ＤＣ3、Ａ10、Ａ11、Ａ12］である。その後、エンコーダ回路２０６は、量子化変換残差レベルの各サブブロック「ＲＢ1、ＲＢ2、ＲＢ3及びＲＢ4」を複数のサブブロックカテゴリ４０２のうちの１つのサブブロックカテゴリに分類するように構成することができ、これらのサブブロックカテゴリは、ＲＢ1、ＲＢ2、ＲＢ3及びＲＢ4についてそれぞれ「簡単」、「中間」、「複雑」及び「簡単」などとして示すことができる。量子化変換残差レベルの第１及び第４のサブブロック「ＲＢ1」及び「ＲＢ4」は、最大量子化変換残差レベル値として「０」を有することができ、従って「ＲＢ1」及び「ＲＢ4」のサブブロックカテゴリは「簡単」として決定することができる。量子化変換残差レベルの第２のサブブロック「ＲＢ2」は、最大量子化変換残差レベル値として「１」を有することができ、従ってＲＢ2のサブブロックカテゴリは「中間」として決定することができる。量子化変換残差レベルの第３のサブブロック「ＲＢ3」は、「１」よりも大きな最大量子化変換残差レベル値を有することができ、従ってＲＢ3のサブブロックカテゴリは「複雑」として決定することができる。
【００６８】
エンコーダ回路２０６は、ＲＢ1、ＲＢ2、ＲＢ3及びＲＢ4の各々にエントロピー符号化スキームを適用して４つの符号化サブブロックを取得するように構成することができる。例えば、１つの例では、サブブロックＲＢ1から取得された符号化サブブロックＥＢ1が、符号化量子化変換残差レベルＣ0、Ｃ1、Ｃ2及びＣ3を含むことができる。同様に、ＥＢ2＝［Ｃ4、Ｃ5、Ｃ6、Ｃ7］であり、ＥＢ3＝［Ｃ8、Ｃ9、Ｃ10、Ｃ11］であり、ＥＢ4＝［Ｃ12、Ｃ13、Ｃ14、Ｃ15］である。Ｃ0、Ｃ1、Ｃ2、．．．、Ｃ15の各々は、ＤＣ0、Ａ１、Ａ２、Ａ３、ＤＣ1、Ａ４、．．．、ＤＣ3、Ａ１０、Ａ１１、Ａ１２に対応するビットプレーン内の一連のビット、すなわちＢＰ1、ＢＰ2、ＢＰ3、ＢＰ4及びＢＰ5として表すことができる。ビットプレーンの数は、符号化演算前に指定されたビット深度（この場合は「５」）に等しくすることができる。図示のように、一例として、ビットプレーンＢＰ1、ＢＰ2、ＢＰ3及びＢＰ4は符号化ビット４０４を含むことができ、ビットプレーンＢＰ5は、精緻化ビットを割り当てることができる空き位置とすることができる非符号化ビット４０６を含むことができる。
【００６９】
エンコーダ回路２０６は、指定されたビット深度及び符号化ビット４０４の数に基づいて、割り当てるべき精緻化ビットの数を決定するように構成することができる。例えば、「１６」個の入力ピクセル値に指定されたビット深度は「５」であり、総ビット数は「１６×５」、すなわち８０ビットに等しくすることができる。符号化ビットを含むのはビットプレーンＢＰ1、ＢＰ2、ＢＰ3及びＢＰ4のみ（１６×４＝６４ビット）であるため、精緻化ビットの数は「８０−６４」、すなわち１６ビットとして決定することができる。別のシナリオでは、ビットプレーンＢＰ5も符号化ビット（例えば、「６」ビット）を含むことができ、この時の精緻化ビットの数は「１０」ビットに減少することができる。
【００７０】
図示のように、一例として、第５のビットプレーンＢＰ5は、全ての非符号化ビット４０４を含む。エンコーダ回路２０６は、第５のビットプレーンＢＰ5において精緻化ビットを、すなわちＲ1、Ｒ2、Ｒ3、．．．、Ｒ16を割り当てるように構成することができる。しかしながら、第１の精緻化段階４０８では、精緻化ビットＲ1、Ｒ2、Ｒ3、．．．、Ｒ11をサブブロックの数（この場合は「４」）及びサブブロックカテゴリに基づいて逐次割り当てることができる。第１の精緻化段階４０８後に依然として精緻化ビットを利用できる場合には、エンコーダ回路２０６を、第２の精緻化段階４１０においてビットプレーン内の残りの位置に残りの精緻化ビットを割り当てるように構成することができる。ここでは、精緻化ビットの数が「１６」として決定され、第１の精緻化段階４０８後には「１１」個の精緻化ビットが割り当てられている。従って、第２の精緻化段階４１０では、残りの「５つ」の精緻化ビットＲ12、Ｒ13、．．．、Ｒ16を割り当てることができる。
【００７１】
第１の精緻化段階４０８では、エンコーダ回路２０６を、符号化サブブロックＥＢ1、ＥＢ2、ＥＢ3及びＥＢ4の各々のビットプレーンＢＰ5にサブブロックカテゴリに基づいて精緻化ビットを逐次割り当てるように構成することができる。符号化サブブロックＥＢ1は「簡単」サブブロックカテゴリに属するので、ＤＣ0及びＡ1に対応する位置において「２つ」の精緻化ビット、すなわちＲ1及びＲ2を割り当てることができる。符号化サブブロックＥＢ2は「中間」サブブロックカテゴリに属するので、ＤＣ1、Ａ4及びＡ5に対応する位置において「３つ」の精緻化ビット、すなわちＲ3、Ｒ4及びＲ5を割り当てることができる。符号化サブブロックＥＢ3は「複雑」サブブロックカテゴリに属するので、ＤＣ2、Ａ7、Ａ8及びＡ9に対応する位置において（複雑なサブブロック内の各利用可能な位置において）「４つ」の精緻化ビット、すなわちＲ6、Ｒ7、Ｒ8及びＲ9を割り当てることができる。符号化サブブロックＥＢ4は「簡単」サブブロックカテゴリに属するので、ＤＣ3及びＡ10に対応する位置において「２つ」の精緻化ビット、すなわちＲ10及びＲ11を割り当てることができる。最初の精緻化段階で精緻化ビットを割り当てることができるビットプレーンＢＰ5の位置は、高優先度の位置に対応することができる。高優先度は、これらの位置における精緻化ビットの割り当てが他の位置における割り当てに比べて画質に大きな影響を与える旨を指定することができる。
【００７２】
第２の精緻化段階４１０では、エンコーダ回路２０６を、ビットプレーンＢＰ5の残りのＡＣ量子化変換残差レベルに対応する位置において残りの精緻化ビットを割り当てるようにさらに構成することができる。符号化サブブロックＥＢ1、ＥＢ2及びＥＢ4は、Ａ2、Ａ3、Ａ6、Ａ11及びＡ12に対応する位置を含むので、これらの位置において残りの精緻化ビット（Ｒ12、Ｒ13、．．．、Ｒ16）を逐次割り当てることができる。Ａ2、Ａ3、Ａ6、Ａ11及びＡ12に対応する位置は、低優先度の位置に対応することができる。低優先度は、これらの位置における精緻化ビットの割り当てが高優先度の位置における割り当てに比べて画質に与える影響が小さい旨を指定することができる。
【００７３】
図５Ａ及び図５Ｂに、本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための例示的な方法を示すフローチャートを集合的に示す。図５Ａ及び図５Ｂの説明は、図１、図２、図３及び図４の要素に関連して行う。図５Ａ及び図５Ｂには、ＥＢＣ回路１０８において実行されるフローチャート５００を示す。この方法は、５０２から開始して５０４に進む。
【００７４】
５０４において、１Ｄ画像ブロックを複数の１Ｄ画像サブブロックに分割することができる。エンコーダ回路２０６は、例えば「１６×１」画像ブロックなどの１Ｄ画像ブロックを複数の１Ｄ画像サブブロックに分割するように構成することができる。
【００７５】
５０６において、複数の１Ｄ画像サブブロックに対して１Ｄ変換の後に量子化、残差予測を逐次適用して、量子化変換残差レベルの複数の１Ｄサブブロックを生成することができる。エンコーダ回路２０６は、複数の１Ｄ画像サブブロックに対して１Ｄ変換の後に量子化、残差予測を逐次適用して、量子化変換残差レベルの複数の１Ｄサブブロックを生成するように構成することができる。
【００７６】
５０８において、１Ｄ画像ブロックの量子化変換残差レベルの複数の１Ｄサブブロックを記憶することができる。オンチップメモリ２０４又は外部メモリ１１０などのメモリは、１Ｄ画像ブロックの量子化変換残差レベルの複数の１Ｄサブブロックを記憶するように構成することができる。
【００７７】
５１０において、複数の１Ｄサブブロックの各１Ｄサブブロックの複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値を第１の基準値及び第２の基準値と比較することができる。エンコーダ回路２０６は、複数の１Ｄサブブロックの各１Ｄサブブロックについて複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値を第１の基準値と比較するように構成することができる。
【００７８】
５１２において、この比較に基づいて、複数の１Ｄサブブロックの各１Ｄサブブロックについて複数のサブカテゴリのうちの１つのサブブロックカテゴリを決定することができる。エンコーダ回路２０６は、この比較に基づいて、複数の１Ｄサブブロックの各１Ｄサブブロックについて複数のサブカテゴリのうちの１つのサブブロックカテゴリを決定するように構成することができる。
【００７９】
５１４において、複数の１Ｄサブブロックの各１Ｄサブブロックの対応するサブブロックカテゴリに基づいて、複数の１Ｄサブブロックの各１Ｄサブブロックに一連のシグナリングビットを割り当てることができる。エンコーダ回路２０６は、複数の１Ｄサブブロックの各１Ｄサブブロックの対応するサブブロックカテゴリに基づいて、複数の１Ｄサブブロックの各１Ｄサブブロックに一連のシグナリングビットを割り当てるように構成することができる。
【００８０】
５１６において、エントロピー符号化スキームを適用することにより、複数の１Ｄサブブロックの各１ＤサブブロックのＤＣ及びＡＣ量子化変換残差レベルを符号化して複数の符号化サブブロックを生成することができる。複数の符号化サブブロックは、複数のビットプレーンの複数の符号化ビットを含むことができる。エンコーダ回路２０６は、エントロピー符号化スキームを適用することにより、複数の１Ｄサブブロックの各１Ｄサブブロックを符号化して複数の符号化サブブロックを生成するように構成することができる。
【００８１】
５１８において、指定されたビット深度と、複数のビットプレーン内の複数のビットプレーンに対応する符号化ビット数とに基づいて、精緻化ビットの数を決定することができる。エンコーダ回路２０６は、指定されたビット深度と、複数のビットプレーン内の符号化ビット数とに基づいて、精緻化ビットの数を決定するように構成することができる。
【００８２】
５２０において、複数の１Ｄサブブロックの各１Ｄサブブロックに対応する割り当てられた一連のシグナリングビットに基づいて、複数の符号化サブブロックの非符号化ビット位置において精緻化ビットを割り当てることができる。エンコーダ回路２０６は、複数の１Ｄサブブロックの各１Ｄサブブロックに対応する割り当てられた一連のシグナリングビットに基づいて、複数のビットプレーンの非符号化ビット位置において精緻化ビットを割り当てるように構成することができる。
【００８３】
５２２において、決定された数の精緻化ビットのうちのいずれかの精緻化ビットを依然として割り当てに利用できるかどうかを判定することができる。エンコーダ回路２０６は、決定された数の精緻化ビットのうちのいずれかの精緻化ビットを依然として割り当てに利用できるかどうかを判定するように構成することができる。決定された数の精緻化ビットのうちのいずれかの精緻化ビットを依然として割り当てに利用できる場合、制御は５２４に進み、利用できなければ終了に進む。
【００８４】
５２４において、依然として割り当てに利用できる精緻化ビットを複数のビットプレーンの残りの非符号化ビット位置において逐次割り当てることができる。エンコーダ回路２０６は、依然として割り当てに利用できる精緻化ビットを複数のビットプレーンの残りの非符号化ビット位置において逐次割り当てるように構成することができる。制御は、終了に進むことができる。
【００８５】
本開示のいくつかの実施形態は、埋め込みコーデック（ＥＢＣ）回路（例えば、ＥＢＣ回路１０８（図１））において見出すことができる。本開示の様々な実施形態は、メモリ（例えば、オンチップメモリ２０４（図２））と、メモリに通信可能に結合されたエンコーダ回路（例えば、エンコーダ回路２０６（図２））とを含むことができるＥＢＣ回路を提供することができる。メモリは、一次元（１Ｄ）画像ブロックの量子化変換残差レベルの複数の１Ｄサブブロック（例えば、サブブロック３０２Ａ、３０２Ｂ、３０２Ｃ及び３０２Ｄ（図３））を記憶するように構成することができる。エンコーダ回路は、複数の１Ｄサブブロックの各１Ｄサブブロックについて、一連のサブブロックカテゴリ（例えば、サブブロックカテゴリ４０２（図４））から１つのサブブロックカテゴリを決定するように構成することができる。サブブロックカテゴリは、複数の１Ｄサブブロックの各１Ｄサブブロックにおける複数のＡＣ量子化変換残差レベルからのＡＣ量子化変換残差レベルの最大値に基づいて決定することができる。一連のサブブロックカテゴリの各サブブロックカテゴリは、複数の１Ｄサブブロックのうちの対応する１Ｄサブブロックの異なる平坦度及び複雑度を示すことができる。エンコーダ回路は、エントロピー符号化スキームの適用によって複数の１Ｄサブブロックを符号化して複数の符号化１Ｄサブブロック（例えば、符号化サブブロックＥＢ1、ＥＢ2、ＥＢ3及びＥＢ4（図４））を生成するようにさらに構成することができる。エンコーダ回路は、複数の符号化１Ｄサブブロックのうちの１つの符号化１Ｄサブブロックにおける一連の符号化量子化変換残差レベルに対応する一連のビットプレーンのビット位置において複数の精緻化ビット（例えば、精緻化ビットＲ1、Ｒ2、Ｒ3、．．．、Ｒ16（図４））を割り当てるようにさらに構成することができる。複数の精緻化ビットは、複数の１Ｄサブブロックのうちの符号化１Ｄサブブロックに対応する１Ｄサブブロックのサブブロックカテゴリに基づいて割り当てることができる。
【００８６】
ある実施形態によれば、エンコーダ回路は、逐次符号化スキームによって１Ｄ画像ブロックを符号化して複数の符号化１Ｄサブブロックを生成するようにさらに構成することができる。逐次符号化スキームは、１Ｄ変換の後に、量子化、残差予測及びエントロピー符号化スキームを逐次適用することを含むことができる。
【００８７】
ある実施形態によれば、エンコーダ回路は、１Ｄ画像ブロックに１Ｄ変換を適用して複数の１Ｄサブブロックを生成するようにさらに構成することができる。複数の１Ｄサブブロックの各１Ｄサブブロックは、ＤＣ量子化変換残差レベルと複数のＡＣ量子化変換残差レベルとを含むことができる。１Ｄ画像ブロックに適用される１Ｄ変換のタイプは、複数の１Ｄサブブロックの各１Ｄサブブロックのサイズに基づくことができる。複数の１Ｄサブブロックの各１Ｄサブブロックのサイズは、１Ｄ画像ブロックの符号化前に指定することができる。複数の符号化１Ｄサブブロックの各符号化１Ｄサブブロックは、複数の符号化量子化変換残差レベル（例えば、符号化量子化変換残差レベルＣ0、Ｃ1、Ｃ2、．．．、Ｃ15（図４））を含むことができる。複数の符号化量子化変換残差レベルの各符号化量子化変換残差レベルは、規定のビット深度に対応する一連のビット（例えば、符号化ビット４０４（図４））を含むことができる。複数の精緻化ビットを割り当てるための精緻化ビットの数は、規定のビット深度及び一連のビットに基づくことができる。複数の符号化量子化変換残差レベルは、ＤＣ量子化変換残差レベルに対応するＤＣ量子化変換残差符号化レベルと、複数のＡＣ量子化変換残差レベルに対応する複数のＡＣ量子化変換残差符号化レベルとを含むことができる。一連の符号化量子化変換残差レベルは、ＤＣ量子化変換残差符号化レベルと、複数のＡＣ量子化変換残差符号化レベルのうちの少なくとも１つとを含むことができる。
【００８８】
ある実施形態によれば、エンコーダ回路は、複数の１Ｄサブブロックの各１Ｄサブブロックのサブブロックカテゴリに基づいて、複数の１Ｄサブブロックの各１Ｄサブブロックに一連のシグナリングビットを割り当てるようにさらに構成することができる。エンコーダ回路は、符号化１Ｄサブブロックに対応する第１の１Ｄサブブロックに割り当てられた一連のシグナリングビットに基づいて、符号化１Ｄサブブロックの一連の符号化量子化変換残差レベルを選択するようにさらに構成することができる。
【００８９】
ある実施形態によれば、一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、第１の符号化１Ｄサブブロックに対応する第１の１Ｄサブブロックの決定されたサブブロックカテゴリに依存することができる。
【００９０】
ある実施形態によれば、一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、一連のサブブロックカテゴリのサブブロックカテゴリ毎に異なることができる。
【００９１】
ある実施形態によれば、エンコーダ回路は、複数の１Ｄサブブロックの各１ＤサブブロックのＡＣ量子化変換残差レベルの最大値を第１の基準値及び第２の基準値と比較するようにさらに構成することができる。この最大値は、０以上の絶対最大値とすることができる。いくつかの実施形態では、第１の基準値が０であり、第２の基準値が１である。一連のサブブロックカテゴリは、第１のサブブロックカテゴリ、第２のサブブロックカテゴリ及び第３のサブブロックカテゴリを含むことができる。１つの例では、複数の１Ｄサブブロックのうちの１つのサブブロックの複数のＡＣ量子化変換残差レベルの最大値が第１の基準値に等しい場合、この１Ｄサブブロックのサブブロックカテゴリを第１のサブブロックカテゴリとして決定することができる。第２の例では、複数の１Ｄサブブロックのうちの１つのサブブロックの複数のＡＣ量子化変換残差レベルの最大値が第２の基準値に等しい場合、この１Ｄサブブロックのサブブロックカテゴリを第２のサブブロックカテゴリとして決定することができる。第３の例では、複数の１Ｄサブブロックのうちの１つのサブブロックの複数のＡＣ量子化変換残差レベルの最大値が第２の基準値よりも大きい場合、この１Ｄサブブロックのサブブロックカテゴリを第３のサブブロックカテゴリとして決定することができる。いくつかの実施形態では、第２のサブブロックカテゴリの一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第１の数を、第１のサブブロックカテゴリの一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第２の数以上とすることができる。第３のサブブロックカテゴリの一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第３の数は、第１の数よりも多く、第２の数よりも少なくすることができる。
【００９２】
ある実施形態によれば、エンコーダ回路は、第１の１Ｄサブブロックのサブブロックカテゴリに基づいて、第１の符号化１Ｄサブブロックの精緻化順を決定するように構成することができる。精緻化順は、一連のビットプレーン内のビット位置において複数の精緻化ビットを割り当てる順番を定めることができる。エンコーダ回路は、一連の符号化量子化変換残差レベルに対応する一連のビットプレーンの第１のビット位置において複数の精緻化ビットのうちの第１の精緻化ビットを割り当てた後に、一連のビットプレーンの後続の位置において複数の精緻化ビットのうちの後続の精緻化ビットを割り当てるようにさらに構成することができる。複数の精緻化ビットの割り当ては、決定された精緻化順に基づくことができる。第１のビット位置は、一連の符号化量子化変換残差レベルにおける第１の符号化量子化変換残差レベルに対応することができる。
【００９３】
本開示は、ハードウェアで実現することも、又はハードウェアとソフトウェアの組み合わせで実現することもできる。本開示は、少なくとも１つのコンピュータシステム内で集中方式で実現することも、又は異なる要素を複数の相互接続されたコンピュータシステムにわたって分散できる分散方式で実現することもできる。本明細書で説明した方法を実行するように適合されたコンピュータシステム又はその他の装置が適することができる。ハードウェアとソフトウェアの組み合わせは、ロードされて実行された時に本明細書で説明した方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを含む汎用コンピュータシステムとすることができる。本開示は、他の機能を実行する集積回路の一部分を含むハードウェアで具現化することができる。
【００９４】
本開示は、本明細書で説明した方法の実装を可能にする全ての特徴を含み、コンピュータシステムにロードされた時にこれらの方法を実行できるコンピュータプログラム製品に組み込むこともできる。本文脈におけるコンピュータプログラムとは、情報処理能力を有するシステムに、特定の機能を直接的に、或いはａ）別の言語、コード又は表記法への変換、ｂ）異なる内容形態での複製、のいずれか又は両方を行った後に実行させるように意図された命令セットの、あらゆる言語、コード又は表記法におけるあらゆる表現を意味する。
【００９５】
いくつかの実施形態を参照しながら本開示を説明したが、当業者であれば、本開示の範囲から逸脱することなく様々な変更を行うことができ、同等物を代用することもできると理解するであろう。また、本開示の範囲から逸脱することなく、特定の状況又は内容を本開示の教示に適合させるように多くの修正を行うこともできる。従って、本開示は、開示した特定の実施形態に限定されるものではなく、添付の特許請求の範囲に該当する全ての実施形態を含むように意図されている。
【図１】
2020141394.tif 000003
【図２】
2020141394.tif 000004
【図３】
2020141394.tif 000005
【図４】
2020141394.tif 000006
【図５Ａ】
2020141394.tif 000007
【図５Ｂ】
2020141394.tif 000008
【外国語明細書】
2020141394000001.pdf