(57)【特許請求の範囲】
【請求項１】
動画像を復号する方法であって、
（ａ）動画像内の画素のブロックを示す量子化係数を受信するステップと、
（ｂ）デスケールされた係数を生成するために、上記量子化係数をデスケールするステップと、
（ｃ）上記デスケールされた係数に変換サイズに依存する値を加算して上記デスケールされた係数の値を修正することにより、デスケールされ修正された係数を生成するステップと、
（ｄ）クリッピングされた係数を生成するために、上記デスケールされ修正された係数を所定のビット深度にクリッピングするステップと、
（ｅ）第１の方向に逆変換された係数を生成するために、上記クリッピングされた係数を第１の方向に逆変換するステップと、
（ｆ）右ビットシフトされた第１の方向に逆変換された係数を生成するために、上記第１の方向に逆変換された係数を、特定のビット数、右ビットシフトさせるステップであって、上記特定のビット数が、上記ブロックのサイズに依存する、ステップと、
（ｇ）クリッピングされた逆変換係数を生成するために、上記シフトされた第１の方向に逆変換された係数を上記所定のビット深度にクリッピングするステップと、
（ｈ）復号済み残差を生成するために、上記クリッピングされた逆変換係数を第２の方向に逆変換するステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照はない。
【０００２】
本発明は、ダイナミックレンジを削減した画像復号に関する。
【背景技術】
【０００３】
Ｈ．２６４／ＡＶＣなどのような現行の符号化規格は、一般的に、計算の複雑性が増大することを代償にして、比較的高い符号化効率を実現している。計算の複雑性が増加するにつれて、符号化および／または復号の速度は低下する傾向にある。また、より高い忠実度への要望は、時間と共に増加する傾向にあり、これにより、ますますより大きな必要メモリと、ますますより大きな必要メモリ帯域幅とが要求される傾向にある。特に、組み込みシステムの場合には、増加するメモリの要求および増加するメモリ帯域幅の要求は、結果として、ますますより高価で、計算的に複雑な回路を要求する傾向がある。
【０００４】
図１を参照すれば、多くのデコーダは、画像のブロックについて符号化されたデータを受信する（いいかえれば、エンコーダは、画像のブロックについて符号化したデータを供給する）。典型的には、画像はブロックに分割され、各ブロックは離散コサイン変換（ＤＣＴ）のような何らかの方法を用いて符号化され、デコーダに供給される。デコーダは符号化されたブロックを受け取り、各ブロックを逆離散コサイン変換のような何らかの方法を用いて復号する。多くの場合、画像ブロックの画像係数の復号は、行列の乗算によって行われる。行列の乗算は水平方向に対して行われてもよいし、垂直方向に対して行われてもよい。場合によっては、例えば、８ビット値が、第１の乗算によって１６ビット値となり得、第２の乗算によって２４ビット値となり得る。さらに、画像の各ブロックを符号化したものは、通常、量子化される。当該量子化では伝送に用いられる量子化係数の、より小さいセットに、符号化の値がマップされる。量子化は、デコーダによる逆量子化を要求し、逆量子化は適切な符号化値に、伝送に用いられる量子化係数のセットをマップする。逆量子化されたデータとして望ましいビット数は、設計パラメータである。行列の乗算および逆量子化演算によって、大きな値が生じ得ることは、特に組み込みシステムのように資源に制約のあるシステムに対しては問題がある。
【０００５】
前述の、およびその他の、本発明の目的、特徴、および利点は、以下の本発明の詳細な説明を、添付図面を併用しながら考慮することによって、容易に理解されるであろう。
【発明の概要】
【０００６】
好ましい実施の形態は、動画像を復号する方法であって、
（ａ）動画像のブロックを示す量子化係数を受信するステップと、
（ｂ）上記量子化係数をデスケールするステップと、
（ｃ）上記デスケールされた係数に調整機構を適用して上記デスケールされた係数の値を修正することにより、デスケールされ修正された係数を生成するステップであって、上記調整機構は変数であり、上記変数は変換サイズの関数である、上記生成するステップと、
（ｄ）上記修正されデスケールされた係数を所定のビット深度にクリッピングするステップと、
（ｅ）上記クリッピングされた係数を逆変換し、復号済み残差を出力するステップと、
を含み、
上記ステップ（ｅ）における上記逆変換は、
（ｆ）上記クリッピングされた係数を第１の方向に１次元逆変換するステップと、
（ｇ）上記１次元逆変換された係数を右ビットシフトさせるステップと、
（ｈ）上記ビットシフトされた係数を上記所定のビット深度にクリッピングするステップと、
（ｉ）上記復号済み残差を生成するために、上記クリッピングされた係数を第２の方向に１次元逆変換するステップと、
を含んでいる。
【図面の簡単な説明】
【０００７】
【図１】エンコーダとデコーダとを示す図である。
【図２】逆量子化器と逆変換器とを備えるデコーダを示す図である。
【図３Ａ】変更された逆量子化器を示す図である。
【図３Ｂ】変更された逆量子化器を示す図である。
【図４】変更された逆変換器を示す図である。
【図５】他のデコーダを示す図である。
【図６】その他のデコーダを示す図である。
【発明を実施するための形態】
【０００８】
図２（従来技術）を参照すると、画像のブロックのためにエンコーダ（符号化装置）から受信した量子化係数を逆量子化および逆変換するデコーダ（復号装置）が、該当する箇所に示されている。デコーダは、量子化係数２００を、逆量子化部（逆量子化器）２１０において受信する。逆量子化器２１０から出力される係数は、メモリ２２０に記憶される。メモリに記憶された係数２２０は、復号済み残差（decoded residue）３１０を求めるために、逆変換部２３０による変換の対（ペア）によって処理される。逆変換は、行列の乗算オペレータを用いて、変換領域からのデータを、空間領域へマップする。
【０００９】
逆量子化器２１０は、デスケール部２４０によるデスケール処理（descaling process）を含む。デスケール部２４０によるデスケール処理は、量子化係数２００のデスケールを行う。デスケール処理は、乗算レベル値（量子化係数２００とも呼ばれる）と、量子化パラメータ（ＱＰ）、係数インデックス、および変換サイズ（Ｎ）に依存する１つの整数とを掛け合わしたものに対応する。デスケール部２４０によるデスケール処理の例としては、８×８逆変換の変換前に逆量子化器において用いられる「Level＊IntegerValue(Remainder,Coefficient index)＊16」、およびその他の変換サイズの変換前に逆量子化器において用いられる「Level＊IntegerValue(Remainder,Coefficient index)」を含んでもよい。デスケール部２４０によるデスケール処理は、中間セット値２５０を求めるために、主に、剰余、変換サイズ（Ｎ）、および／または、係数インデックス(例えば、位置）、の関数に基づいていることが好ましい。剰余は量子化パラメータ（ＱＰ）と、P＊BitIncrementとの和についてモジュロＰを取ったものである（（QP+P＊BitIncrement）％P）である。モジュロは、Ｈ．２６４／ＡＶＣ規格において定義されているように、ｘをｘ≧０の整数、ｙをｙ＞０の整数とするとき、ｘをｙで割ったときの余りとして、ｘ％ｙとして定義される。一実施形態においてＰは、６の値をとり得る。調整機構（adjustment mechanism）Ａ  ２６０は、値２５０に適用されてもよいし、変換サイズ（Ｎ）、および／または、受信したPeriod（周期）の関数に依存する変数であってもよい。Periodは、「BitIncrement」をビット深度の増分とするとき、量子化パラメータ（ＱＰ）とP＊BitIncrementとの和をＰで割った値（（QP+P＊BitIncrement）/P）である。「/」は、Ｈ．２６４／ＡＶＣ規格において定義されているように、結果を０の方に切り詰めた（切り捨てた）整数除算、と定義される。例えば、７/４と−７/−４とは切り捨てられて１となり、−７/４と７/−４とは切り捨てられて−１となる。一実施形態においてＰは、６の値をとり得る。得られる値２５０は、調整機構Ａ  ２６０によってさらに修正されてもよいが、修正部２７０によって２（Ｐｅｒｉｏｄ+Ｂ）の因数を用いて修正されてもよい。Ｂは、変換サイズに依存した変数である。修正部２７０による修正の結果は、メモリ２２０に記憶される。逆変換部２３０は、逆水平変換部２８０により１次元逆水平変換を実行し得、その結果は、メモリ２９０に記憶され得る。逆変換部２３０は、また、逆垂直変換部３００により１次元逆垂直変換を実行し得、復号済み残差３１０が求められる。変換部２８０と変換部３００とは、必要に応じて、互いに順番を逆にしてもよい。
【００１０】
「Ｐａｒｔ  １０：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」、ＩＳＯ  Ｐｕｂｌｉｃａｔｉｏｎ：ＩＳＯ／ＩＥＣ  １４４９６‐１０：２００５‐Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ‐Ｃｏｄｉｎｇ  Ｏｆ  Ａｕｄｉｏ‐Ｖｉｓｕａｌ  Ｏｂｊｅｃｔｓ（参照により、本書に組み込まれる）（Ｈ．２６４／ＡＶＣ規格）を実施する場合において、図２に示された動画像のデコーダのメモリ帯域幅は、制約を用いることにより制限され得る。例えば、Ｈ．２６４／ＡＶＣ規格の８．５．１０節では、４×４輝度ＤＣ変換係数のためのメモリアクセスの幅は、以下のステートメントを含むことによって制限される。そのステートメントとは、「ビットストリームは、−２（７＋ｂｉｔＤｅｐｔｈ）から２（７＋ｂｉｔＤｅｐｔｈ）−１までの整数値の範囲を超える如何なる要素ｆｉｊ（f において i, j = 0..3）において得られるデータを含むべきではない。」、および、「ビットストリームは、−２（７＋ｂｉｔＤｅｐｔｈ）から２（７＋ｂｉｔＤｅｐｔｈ）−１までの整数値の範囲を超える如何なる要素ｄｃＹｉｊ（dcY において i, j = 0..3）において得られるデータを含むべきではない。」である。Ｈ．２６４／ＡＶＣ規格は、他の残余ブロックのための同様のメモリ制限を含んでいる。複雑なメモリ帯域幅制限を含んでいることに加え、Ｈ．２６４／ＡＶＣ規格は、この制限が強制されることを保証する機構を備えない。同様に、ＪＣＴ-ＶＣ「Ｄｒａｄｔ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｕｎｄｅｒ  Ｃｏｎｓｉｄｅｒａｔｉｏｎ」、ＪＣＴＶＣ‐Ａ２０５、ＪＣＴ‐ＶＣ  Ｍｅｅｔｉｎｇ、Ｄｒｅｓｄｅｎ、Ａｐｒｉｌ  ２０１０（ＪＣＴ‐ＶＣ）（参照により、本書に組み込まれる）においても、メモリ帯域幅強制機構を含んでいない。ロバスト性のために、デコーダでは、準拠したビットストリームまたは非適合（non-conforming）エンコーダに損傷を与える伝送エラーに起因して生じる、これらの制限に違反するようなビットストリームを受け付ける準備がなされていなければならない。このような生じ得る制限を緩和するために、デコーダはしばしば、費用と複雑性とを追加することと引き換えに、供給される非準拠のビットストリームに適応するための追加のメモリ帯域幅を備える。
【００１１】
メモリ帯域幅、および／または、メモリ記憶領域の要件が制限された、より計算的に、ロバストなデコーダを実現するために、デコーダは適切な方法で変更されるべきである。しかし、必要メモリを低減するためのデコーダの変更であっても、対応する動画像のレート歪特性（rate distortion performance）はあまり低下させるべきではない。さもなくば、必要メモリが低減されたとしても、得られる動画像の質は視聴者の鑑賞には不適当なものになるであろう。修正部２７０による修正は、量子化パラメータにおける６ステップごとに係数値が倍増し、これにより必要メモリのサイズをかなり増加し得る。増加された値は、最下位側ビット（least significant bits）として含まれている１つまたは複数のゼロ（０）を生じる。
【００１２】
逆量子化器２１０（図２参照、従来技術）の動作の理解した上で、図３Ａを参照すれば、改良された逆量子化部（改良された逆量子化器、改善された逆量子化器）４００（図３Ａおよび図３Ｂ参照、非従来技術）は、量子化係数４０５を受信し、および、デスケール部４１０により量子化係数をデスケールして、中間セット値４２０を求める。量子化係数のデスケールは、剰余、変換サイズ（Ｎ）、および／または、係数インデックス（例えば、位置）の関数に基づいていることが好ましい。任意の調整機構Ｃ  ４３０が適用されてもよい。得られるデータ４４０を決定するために、調整機構Ｃ  ４３０は、変換サイズ（Ｎ）、または、受信した量子化パラメータ（ＱＰ）の関数に依存する変数であることが好ましい。量子化係数４０５から得られるデータ４４０は、問題のあるデータを含むか、さもなければ、規格に準拠しないことがある。そのため、改善された逆量子化器４００は、得られるデータ４４０に、固定的な制限を課すべきである。得られるデータ４４０は、クリッピング部４５０により、所定のビット深度にクリッピングされることが好ましく、Ｎ×Ｎブロックのデータは、逆量子化器４００の内部のメモリに記憶される。例えば、クリッピング部４５０によって所定のビット深度である１６ビットにクリッピングされることにより、３２，７６７より大きい任意の値は、最大の値、すなわち３２，７６７にセットされる。同様に、所定のビット深度である１６ビットに対して、−３２，７６７より小さい任意の値は、最小の値、すなわち−３２，７６７にセットされる。他のビット深度およびクリッピング値が、同様に用いられ得る。このようにして、要求される最大メモリ帯域幅は、入力された量子化係数４０５と独立したやり方で、システムによって制限される。これにより、システムの計算的な複雑性を低減するとともに必要メモリを低減する。このことは、特に組み込みシステムに適している。
【００１３】
クリッピング部４５０によるクリッピングが施された後、最大の所定のビット深度となったデータは、修正部４６０によって２（Ｐｅｒｉｏｄ+Ｂ）の因数によって修正される。修正部４６０による修正の結果は、係数４７０として供給される。クリッピング部４５０によるクリッピング後に修正部４６０によって２（Ｐｅｒｉｏｄ+Ｂ）の因数によって修正を実行することにより、レート歪ロスが低減される。好ましくは、８×８変換係数に対して用いられる調整機構Ｃ  ４３０は、２（５−Ｐｅｒｉｏｄ）であり、修正部４６０による２（Ｐｅｒｉｏｄ+Ｂ）は、２（Ｐｅｒｉｏｄ−６）である。修正部４６０による処理は、必要に応じて、変換サイズ（Ｎ）の関数、または、受信した量子化パラメータ（ＱＰ）の関数、に基づいていてもよい。また、ほかのサイズの変換係数（４×４、１６×１６、３２×３２など）に対して用いられる調整機構Ｃ  ４３０は好ましくはゼロ（０）であり、修正部４６０による２（Ｐｅｒｉｏｄ+Ｂ）の値は２（Ｐｅｒｉｏｄ）である。また、ＢはＮの関数であってもよく、ＣはＮの関数であってもよい。図３Ｂを参照すれば、図３Ａの具体的な実施形態が示されている。
【００１４】
図４を参照すれば、逆量子化器４００（図３Ａおよび図３Ｂ参照）からの係数４７０は、許容可能なレート歪ロスを有する復号済み残差４９０を供給するように構成された逆変換部４８０に供給される。係数４７０は、１次元逆水平（または垂直）変換部５００による１次元逆水平（または垂直）変換によって、好ましく変換され得る。許容しうるレート歪ロスを維持するために望ましい出力ビット数に基づいて、変換部５００の出力は、ビットシフト部５１０によって、望ましいビット数に右ビットシフト処理されることで修正されてもよい。このように、選択された数の最下位側ビットは、システムの必要メモリを低減するために廃棄される。例えば、もし、逆変換部５００から１９ビットが得られる見込みであり、かつ、１６ビットの結果を得ることが望ましい場合、ビットシフト部５１０による右ビットシフト処理が最下位側３ビットを取り除く。得られたシフトビットはクリッピング部５２０により所定の閾値にクリッピングされる。所定の閾値としては、例えば、１６ビットが挙げられる。クリッピング部５２０によるクリッピングは、さらに、メモリ帯域幅制限を強制し、その結果はメモリ５３０に記憶される。メモリ５３０に記憶されたデータは、最下位（側）ビット（least significant bit(s)）を除去するビットシフト部５１０によるシフトの結果、大幅に小さくなる。メモリ５３０に記憶されたデータは、ビットシフト部５４０による左ビットシフト処理によって、好ましくは、ビットシフト部５１０による右ビットシフト処理と同数のビットが左シフトされる。シフトの結果、最下位（側）ビットが、ゼロ（０）となる。シフトされたデータは、好ましくは、逆垂直（または、水平）変換部５５０による１次元逆垂直（または、水平）変換によって変換され、復号済み残差４９０が得られる。
【００１５】
レート歪ロスは、処理に用いられるビット数およびデータブロックサイズに依存する。ビットシフト部５１０による右ビットシフト処理、およびビットシフト部５４０による左ビットシフト処理は、ブロックサイズＮ（画素の正方形のブロックについての水平画素数×垂直画素数）に依存することが好ましい。例えば、４×４ブロックに対するシフトは３であり、８×８ブロックに対するシフトは２であり、１６×１６ブロックに対するシフトは８であり、３２×３２ブロックに対するシフトは９である。また、ビットシフト部５１０による右ビットシフト処理、およびビットシフト部５４０による左ビットシフト処理は、量子化パラメータ（ＱＰ）のようなビットストリームから受け渡されるパラメータ、内部ビット深度増分（ＩＢＤＩ；internal bit-depth increment）、変換精度拡張（ＴＰＥ；transform precision extension）パラメータ、またはその以外のデコーダによって選択可能なパラメータに基づいて決められてもよい。
【００１６】
図５を参照すれば、他の実施形態において、デコーダは、任意の適切な逆量子化部（逆量子化器）６００と、任意の適切な逆変換部６１０とによって処理される量子化係数を受け取る。クリッピング部６２０によるクリッピング機能を含むことにより好適に実現される高速（express）メモリ帯域幅制限を含むことが望ましい。クリッピング部６２０によるクリッピング機能の後、データはメモリ６３０に記憶される。そのデータはその後、逆変換部６１０による逆変換に用いられる。
【００１７】
図６を参照すれば、他の実施形態において、デコーダは、任意の適切な逆量子化部（逆量子化器）７００と、任意の適切な逆変換部７１０とによって処理される量子化係数を受け取る。例えば、逆変換部７１０による逆変換として、図４に示されたものが挙げられる。計算の複雑性を軽減するため、クリッピング部７２０によるクリッピング機能を含むことにより好適に実現される高速（express）メモリ帯域幅制限を含むことが望ましい。クリッピング部７２０によるクリッピング機能の後、データはメモリ７３０に記憶される。そのデータはその後、逆変換部７１０による逆変換に用いられる。１次元変換の対の間に設けられたクリッピング部７４０によるクリッピング機能を含むことにより実現される明示的な（explicit）メモリ帯域幅制限を含むことが、さらに望ましい。１次元変換は、任意の順番で、かつ、任意の様式で行われ得る。クリッピング部７４０によるクリッピング機能の後、データはメモリ７５０に記憶される。
【００１８】
上述の明細書において用いた用語および表現は、説明のための用語として、ここで用いているのであり、限定するためのものではない。また、このような用語および表現の使用において、図示および記載される特徴に等しいもの、またはその一部を排除することを意図するものでもない。本発明の範囲は、これに続く特許請求の範囲によってのみ、規定および限定されるものであることが理解されるであろう。
【図１】
0006364445.tif 000002
【図２】
0006364445.tif 000003
【図３Ａ】
0006364445.tif 000004
【図３Ｂ】
0006364445.tif 000005
【図４】
0006364445.tif 000006
【図５】
0006364445.tif 000007
【図６】
0006364445.tif 000008