(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】動画像を符号化および復号する方法、並びに復号装置
(51)【国際特許分類】
H04N 19/44 20140101AFI20241106BHJP
H04N 19/61 20140101ALI20241106BHJP
【FI】
H04N19/44
H04N19/61
(21)【出願番号】P 2023017647
(22)【出願日】2023-02-08
(62)【分割の表示】P 2022019705の分割
【原出願日】2012-01-18
【審査請求日】2023-02-15
(32)【優先日】2011-01-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】510185767
【氏名又は名称】ドルビー・インターナショナル・アーベー
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】ケロフスキー ルイス ジョセフ
(72)【発明者】
【氏名】ミスラ キラン
(72)【発明者】
【氏名】シーガル クリストファー エー.
【審査官】坂東 大五郎
(56)【参考文献】
【文献】国際公開第2008/120433(WO,A1)
【文献】特開2007-079972(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
動画像を符号化
および復号する方法であって、
動画像のデータを、1または複数の動画像のブロックであって、それぞれが複数の画素を表す動画像のブロックに分割するステップと、
上記1または複数の動画像のブロックを符号化するステップであって、それぞれの動画像のブロックの、量子化係数のセットの生成を含むステップと、
ビットストリームに含まれる上記1または複数の動画像のブロックに対応する量子化係数のセットを復号装置に送信するステップと、を含み、
上記復号装置は、
デスケールされた係数を生成するために、量子化パラメータ、係数インデックス、および変換サイズに基づいて上記量子化係数をデスケールするステップと、
修正されデスケールされた係数を生成するために、上記デスケールされた係数を修正するステップであって、上記変換サイズに基づく変数
であって、量子化パラメータに基づかない変数の適用を含むステップと、
クリッピングされた係数を生成するために、上記修正されデスケールされた係数を所定のビット深度にクリッピングするステップと、
復号済み残差を出力するために、上記クリッピングされた係数を逆変換するステップと、
を含む処理を実行することで、上記動画像のデータを復号する、方法。
【請求項2】
復号済み残差を出力するために、上記クリッピングされた係数を逆変換するステップは、
第1の方向に逆変換された係数を生成するために、上記クリッピングされた係数を第1の方向に1次元逆変換するステップと、
上記第1の方向に逆変換された係数よりも小さいビット深度を有する第1のシフトされ逆変換された係数を生成するために、上記第1の方向に逆変換された係数を右にシフトさせるステップと、
第2のクリッピングされた係数を生成するために、上記第1のシフトされ逆変換された係数を上記所定のビット深度にクリッピングするステップと、
上記復号済み残差を決定するために、上記第2のクリッピングされた係数を第2の方向に1次元逆変換するステップと、
を含む、請求項1に記載の方法。
【請求項3】
上記第1の方向に逆変換された係数を右にシフトさせるステップは、
係数をどれだけシフトさせるかの、複数の異なるビット数の中から、動画像のブロックのサイズに基づいて、上記第1の方向に逆変換された係数をどれだけシフトさせるかの、特定のビット数を選択するステップと、
上記第1の方向に逆変換された係数を、上記特定のビット数、右にシフトさせるステップと、
を含む、請求項2に記載の方法。
【請求項4】
上記第1の方向は、水平方向である、請求項2に記載の方法。
【請求項5】
上記第1の方向は、垂直方向である、請求項2に記載の方法。
【請求項6】
上記第2の方向は、上記第1の方向に直交する、請求項2に記載の方法。
【請求項7】
第1のシフトされ逆変換された係数を生成するために、上記第1の方向に逆変換された係数を右にシフトさせるステップは、
係数をどれだけシフトさせるかの、複数の異なるビット数の中から、係数をどれだけシフトさせるかの、特定のビット数を選択するステップと、
第1のシフトされ逆変換された係数を生成するために、上記第1の方向に逆変換された係数を、上記特定のビット数、右にシフトさせるステップと、
を含む、請求項2に記載の方法。
【請求項8】
係数をどれだけシフトさせるかの、上記特定のビット数を選択するステップは、
動画像のブロックが特定のサイズであることを決定するステップと、
動画像のブロックの異なるサイズのそれぞれに対応する係数をどれだけシフトさせるかの、複数の異なるビット数の中から、上記動画像のブロックの特定のサイズに対応する係数をどれだけシフトさせるかの、特定のビット数を選択するステップと、
を含む、請求項7に記載の方法。
【請求項9】
上記第1の方向に逆変換された係数を右にシフトさせるステップは、上記第1の方向に逆変換された係数を、変換精度拡張パラメータに基づく量、右にシフトさせる、請求項2に記載の方法。
【請求項10】
動画像を復号する復号装置であって、
デスケールされた係数を生成するために、量子化パラメータ、係数インデックス、および変換サイズに基づいて、上記動画像のブロックの量子化係数をデスケールするステップと、
修正されデスケールされた係数を生成するために、上記デスケールされた係数を修正するステップであって、上記変換サイズに基づく変数であって、量子化パラメータに基づかない変数の適用を含むステップと、
クリッピングされた係数を生成するために、上記修正されデスケールされた係数を所定のビット深度にクリッピングするステップと、
復号済み残差を出力するために、上記クリッピングされた係数を逆変換するステップと、
を含む処理を実行することで、上記動画像のデータを復号する、復号装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照はない。
【0002】
本発明は、ダイナミックレンジを削減した画像復号に関する。
【背景技術】
【0003】
H.264/AVCなどのような現行の符号化規格は、一般的に、計算の複雑性が増大することを代償にして、比較的高い符号化効率を実現している。計算の複雑性が増加するにつれて、符号化および/または復号の速度は低下する傾向にある。また、より高い忠実度への要望は、時間と共に増加する傾向にあり、これにより、ますますより大きな必要メモリと、ますますより大きな必要メモリ帯域幅とが要求される傾向にある。特に、組み込みシステムの場合には、増加するメモリの要求および増加するメモリ帯域幅の要求は、結果として、ますますより高価で、計算的に複雑な回路を要求する傾向がある。
【0004】
図1を参照すれば、多くのデコーダは、画像のブロックについて符号化されたデータを受信する(いいかえれば、エンコーダは、画像のブロックについて符号化したデータを供給する)。典型的には、画像はブロックに分割され、各ブロックは離散コサイン変換(DCT)のような何らかの方法を用いて符号化され、デコーダに供給される。デコーダは符号化されたブロックを受け取り、各ブロックを逆離散コサイン変換のような何らかの方法を用いて復号する。多くの場合、画像ブロックの画像係数の復号は、行列の乗算によって行われる。行列の乗算は水平方向に対して行われてもよいし、垂直方向に対して行われてもよい。場合によっては、例えば、8ビット値が、第1の乗算によって16ビット値となり得、第2の乗算によって24ビット値となり得る。さらに、画像の各ブロックを符号化したものは、通常、量子化される。当該量子化では伝送に用いられる量子化係数の、より小さいセットに、符号化の値がマップされる。量子化は、デコーダによる逆量子化を要求し、逆量子化は適切な符号化値に、伝送に用いられる量子化係数のセットをマップする。逆量子化されたデータとして望ましいビット数は、設計パラメータである。行列の乗算および逆量子化演算によって、大きな値が生じ得ることは、特に組み込みシステムのように資源に制約のあるシステムに対しては問題がある。
【0005】
前述の、およびその他の、本発明の目的、特徴、および利点は、以下の本発明の詳細な説明を、添付図面を併用しながら考慮することによって、容易に理解されるであろう。
【発明の概要】
【0006】
好ましい実施の形態は、動画像を符号化する方法であって、
動画像のデータを、1または複数の動画像のブロックであって、それぞれが複数の画素を表す動画像のブロックに分割するステップと、
上記1または複数の動画像のブロックを符号化するステップであって、それぞれの動画像のブロックの、量子化係数のセットの生成を含むステップと、
ビットストリームに含まれる上記1または複数の動画像のブロックに対応する量子化係数のセットを復号装置に送信するステップと、を含み、
上記復号装置は、
デスケールされた係数を生成するために、量子化パラメータ、係数インデックス、および変換サイズに基づいて上記量子化係数をデスケールするステップと、
修正されデスケールされた係数を生成するために、上記デスケールされた係数を修正するステップであって、上記変換サイズに基づく変数の適用を含むステップと、
クリッピングされた係数を生成するために、上記修正されデスケールされた係数を所定のビット深度にクリッピングするステップと、
復号済み残差を出力するために、上記クリッピングされた係数を逆変換するステップと、
を含む処理を実行することで、上記動画像のデータを復号する。
【図面の簡単な説明】
【0007】
【
図2】逆量子化器と逆変換器とを備えるデコーダを示す図である。
【発明を実施するための形態】
【0008】
図2(従来技術)を参照すると、画像のブロックのためにエンコーダ(符号化装置)から受信した量子化係数を逆量子化および逆変換するデコーダ(復号装置)が、該当する箇所に示されている。デコーダは、量子化係数200を、逆量子化部(逆量子化器)210において受信する。逆量子化器210から出力される係数は、メモリ220に記憶される。メモリに記憶された係数220は、復号済み残差(decoded residue)310を求めるために、逆変換部230による変換の対(ペア)によって処理される。逆変換は、行列の乗算オペレータを用いて、変換領域からのデータを、空間領域へマップする。
【0009】
逆量子化器210は、デスケール部240によるデスケール処理(descaling process)を含む。デスケール部240によるデスケール処理は、量子化係数200のデスケールを行う。デスケール処理は、乗算レベル値(量子化係数200とも呼ばれる)と、量子化パラメータ(QP)、係数インデックス、および変換サイズ(N)に依存する1つの整数とを掛け合わしたものに対応する。デスケール部240によるデスケール処理の例としては、8×8逆変換の変換前に逆量子化器において用いられる「Level*IntegerValue(Remainder,Coefficient index) *16」、およびその他の変換サイズの変換前に逆量子化器において用いられる「Level*IntegerValue(Remainder,Coefficient index)」を含んでもよい。デスケール部240によるデスケール処理は、中間セット値250を求めるために、主に、剰余、変換サイズ(N)、および/または、係数インデックス(例えば、位置)、の関数に基づいていることが好ましい。剰余は量子化パラメータ(QP)と、P*BitIncrementとの和についてモジュロPを取ったものである((QP+P*BitIncrement)%P)である。モジュロは、H.264/AVC規格において定義されているように、xをx≧0の整数、yをy>0の整数とするとき、xをyで割ったときの余りとして、x%yとして定義される。一実施形態においてPは、6の値をとり得る。調整機構(adjustment mechanism)A 260は、値250に適用されてもよいし、変換サイズ(N)、および/または、受信したPeriod(周期)の関数に依存する変数であってもよい。Periodは、「BitIncrement」をビット深度の増分とするとき、量子化パラメータ(QP)とP*BitIncrementとの和をPで割った値((QP+P*BitIncrement)/P)である。「/」は、H.264/AVC規格において定義されているように、結果を0の方に切り詰めた(切り捨てた)整数除算、と定義される。例えば、7/4と-7/-4とは切り捨てられて1となり、-7/4と7/-4とは切り捨てられて-1となる。一実施形態においてPは、6の値をとり得る。得られる値250は、調整機構A 260によってさらに修正されてもよいが、修正部270によって2(Period+B)の因数を用いて修正されてもよい。Bは、変換サイズに依存した変数である。修正部270による修正の結果は、メモリ220に記憶される。逆変換部230は、逆水平変換部280により1次元逆水平変換を実行し得、その結果は、メモリ290に記憶され得る。逆変換部230は、また、逆垂直変換部300により1次元逆垂直変換を実行し得、復号済み残差310が求められる。変換部280と変換部300とは、必要に応じて、互いに順番を逆にしてもよい。
【0010】
「Part 10:Advanced Video Coding」、ISO Publication:ISO/IEC 14496‐10:2005‐Information Technology‐Coding Of Audio‐Visual Objects(参照により、本書に組み込まれる)(H.264/AVC規格)を実施する場合において、
図2に示された動画像のデコーダのメモリ帯域幅は、制約を用いることにより制限され得る。例えば、H.264/AVC規格の8.5.10節では、4×4輝度DC変換係数のためのメモリアクセスの幅は、以下のステートメントを含むことによって制限される。そのステートメントとは、「ビットストリームは、-2
(7+bitDepth)から2
(7+bitDepth)-1までの整数値の範囲を超える如何なる要素f
ij(f において i, j = 0..3)において得られるデータを含むべきではない。」、および、「ビットストリームは、-2
(7+bitDepth)から2
(7+bitDepth)-1までの整数値の範囲を超える如何なる要素dcY
ij(dcY において i, j = 0..3)において得られるデータを含むべきではない。」である。H.264/AVC規格は、他の残余ブロックのための同様のメモリ制限を含んでいる。複雑なメモリ帯域幅制限を含んでいることに加え、H.264/AVC規格は、この制限が強制されることを保証する機構を備えない。同様に、JCT-VC「Dradt Test Model Under Consideration」、JCTVC‐A205、JCT‐VC Meeting、Dresden、April 2010(JCT‐VC)(参照により、本書に組み込まれる)においても、メモリ帯域幅強制機構を含んでいない。ロバスト性のために、デコーダでは、準拠したビットストリームまたは非適合(non-conforming)エンコーダに損傷を与える伝送エラーに起因して生じる、これらの制限に違反するようなビットストリームを受け付ける準備がなされていなければならない。このような生じ得る制限を緩和するために、デコーダはしばしば、費用と複雑性とを追加することと引き換えに、供給される非準拠のビットストリームに適応するための追加のメモリ帯域幅を備える。
【0011】
メモリ帯域幅、および/または、メモリ記憶領域の要件が制限された、より計算的に、ロバストなデコーダを実現するために、デコーダは適切な方法で変更されるべきである。しかし、必要メモリを低減するためのデコーダの変更であっても、対応する動画像のレート歪特性(rate distortion performance)はあまり低下させるべきではない。さもなくば、必要メモリが低減されたとしても、得られる動画像の質は視聴者の鑑賞には不適当なものになるであろう。修正部270による修正は、量子化パラメータにおける6ステップごとに係数値が倍増し、これにより必要メモリのサイズをかなり増加し得る。増加された値は、最下位側ビット(least significant bits)として含まれている1つまたは複数のゼロ(0)を生じる。
【0012】
逆量子化器210(
図2参照、従来技術)の動作の理解した上で、
図3Aを参照すれば、改良された逆量子化部(改良された逆量子化器、改善された逆量子化器)400(
図3Aおよび
図3B参照、非従来技術)は、量子化係数405を受信し、および、デスケール部410により量子化係数をデスケールして、中間セット値420を求める。量子化係数のデスケールは、剰余、変換サイズ(N)、および/または、係数インデックス(例えば、位置)の関数に基づいていることが好ましい。任意の調整機構C 430が適用されてもよい。得られるデータ440を決定するために、調整機構C 430は、変換サイズ(N)、または、受信した量子化パラメータ(QP)の関数に依存する変数であることが好ましい。量子化係数405から得られるデータ440は、問題のあるデータを含むか、さもなければ、規格に準拠しないことがある。そのため、改善された逆量子化器400は、得られるデータ440に、固定的な制限を課すべきである。得られるデータ440は、クリッピング部450により、所定のビット深度にクリッピングされることが好ましく、N×Nブロックのデータは、逆量子化器400の内部のメモリに記憶される。例えば、クリッピング部450によって所定のビット深度である16ビットにクリッピングされることにより、32,767より大きい任意の値は、最大の値、すなわち32,767にセットされる。同様に、所定のビット深度である16ビットに対して、-32,767より小さい任意の値は、最小の値、すなわち-32,767にセットされる。他のビット深度およびクリッピング値が、同様に用いられ得る。このようにして、要求される最大メモリ帯域幅は、入力された量子化係数405と独立したやり方で、システムによって制限される。これにより、システムの計算的な複雑性を低減するとともに必要メモリを低減する。このことは、特に組み込みシステムに適している。
【0013】
クリッピング部450によるクリッピングが施された後、最大の所定のビット深度となったデータは、修正部460によって2
(Period+B)の因数によって修正される。修正部460による修正の結果は、係数470として供給される。クリッピング部450によるクリッピング後に修正部460によって2
(Period+B)の因数によって修正を実行することにより、レート歪ロスが低減される。好ましくは、8×8変換係数に対して用いられる調整機構C 430は、2
(5-Period)であり、修正部460による2
(Period+B)は、2
(Period-6)である。修正部460による処理は、必要に応じて、変換サイズ(N)の関数、または、受信した量子化パラメータ(QP)の関数、に基づいていてもよい。また、ほかのサイズの変換係数(4×4、16×16、32×32など)に対して用いられる調整機構C 430は好ましくはゼロ(0)であり、修正部460による2
(Period+B)の値は2
(Period)である。また、BはNの関数であってもよく、CはNの関数であってもよい。
図3Bを参照すれば、
図3Aの具体的な実施形態が示されている。
【0014】
図4を参照すれば、逆量子化器400(
図3Aおよび
図3B参照)からの係数470は、許容可能なレート歪ロスを有する復号済み残差490を供給するように構成された逆変換部480に供給される。係数470は、1次元逆水平(または垂直)変換部500による1次元逆水平(または垂直)変換によって、好ましく変換され得る。許容しうるレート歪ロスを維持するために望ましい出力ビット数に基づいて、変換部500の出力は、ビットシフト部510によって、望ましいビット数に右ビットシフト処理されることで修正されてもよい。このように、選択された数の最下位側ビットは、システムの必要メモリを低減するために廃棄される。例えば、もし、逆変換部500から19ビットが得られる見込みであり、かつ、16ビットの結果を得ることが望ましい場合、ビットシフト部510による右ビットシフト処理が最下位側3ビットを取り除く。得られたシフトビットはクリッピング部520により所定の閾値にクリッピングされる。所定の閾値としては、例えば、16ビットが挙げられる。クリッピング部520によるクリッピングは、さらに、メモリ帯域幅制限を強制し、その結果はメモリ530に記憶される。メモリ530に記憶されたデータは、最下位(側)ビット(least significant bit(s))を除去するビットシフト部510によるシフトの結果、大幅に小さくなる。メモリ530に記憶されたデータは、ビットシフト部540による左ビットシフト処理によって、好ましくは、ビットシフト部510による右ビットシフト処理と同数のビットが左シフトされる。シフトの結果、最下位(側)ビットが、ゼロ(0)となる。シフトされたデータは、好ましくは、逆垂直(または、水平)変換部550による1次元逆垂直(または、水平)変換によって変換され、復号済み残差490が得られる。
【0015】
レート歪ロスは、処理に用いられるビット数およびデータブロックサイズに依存する。ビットシフト部510による右ビットシフト処理、およびビットシフト部540による左ビットシフト処理は、ブロックサイズN(画素の正方形のブロックについての水平画素数×垂直画素数)に依存することが好ましい。例えば、4×4ブロックに対するシフトは3であり、8×8ブロックに対するシフトは2であり、16×16ブロックに対するシフトは8であり、32×32ブロックに対するシフトは9である。また、ビットシフト部510による右ビットシフト処理、およびビットシフト部540による左ビットシフト処理は、量子化パラメータ(QP)のようなビットストリームから受け渡されるパラメータ、内部ビット深度増分(IBDI;internal bit-depth increment)、変換精度拡張(TPE;transform precision extension)パラメータ、またはその以外のデコーダによって選択可能なパラメータに基づいて決められてもよい。
【0016】
図5を参照すれば、他の実施形態において、デコーダは、任意の適切な逆量子化部(逆量子化器)600と、任意の適切な逆変換部610とによって処理される量子化係数を受け取る。クリッピング部620によるクリッピング機能を含むことにより好適に実現される高速(express)メモリ帯域幅制限を含むことが望ましい。クリッピング部620によるクリッピング機能の後、データはメモリ630に記憶される。そのデータはその後、逆変換部610による逆変換に用いられる。
【0017】
図6を参照すれば、他の実施形態において、デコーダは、任意の適切な逆量子化部(逆量子化器)700と、任意の適切な逆変換部710とによって処理される量子化係数を受け取る。例えば、逆変換部710による逆変換として、
図4に示されたものが挙げられる。計算の複雑性を軽減するため、クリッピング部720によるクリッピング機能を含むことにより好適に実現される高速(express)メモリ帯域幅制限を含むことが望ましい。クリッピング部720によるクリッピング機能の後、データはメモリ730に記憶される。そのデータはその後、逆変換部710による逆変換に用いられる。1次元変換の対の間に設けられたクリッピング部740によるクリッピング機能を含むことにより実現される明示的な(explicit)メモリ帯域幅制限を含むことが、さらに望ましい。1次元変換は、任意の順番で、かつ、任意の様式で行われ得る。クリッピング部740によるクリッピング機能の後、データはメモリ750に記憶される。
【0018】
上述の明細書において用いた用語および表現は、説明のための用語として、ここで用いているのであり、限定するためのものではない。また、このような用語および表現の使用において、図示および記載される特徴に等しいもの、またはその一部を排除することを意図するものでもない。本発明の範囲は、これに続く特許請求の範囲によってのみ、規定および限定されるものであることが理解されるであろう。