(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】従属スカラー量子化との組み合わせに使用する又はそれに適する変換係数の効率的な符号化
(51)【国際特許分類】
H04N 19/70 20140101AFI20241022BHJP
H04N 19/124 20140101ALI20241022BHJP
H04N 19/129 20140101ALI20241022BHJP
H04N 19/13 20140101ALI20241022BHJP
H04N 19/60 20140101ALI20241022BHJP
【FI】
H04N19/70
H04N19/124
H04N19/129
H04N19/13
H04N19/60
(21)【出願番号】P 2021516639
(86)(22)【出願日】2019-09-24
(86)【国際出願番号】 EP2019075732
(87)【国際公開番号】W WO2020064745
(87)【国際公開日】2020-04-02
【審査請求日】2021-05-25
【審判番号】
【審判請求日】2023-06-27
(32)【優先日】2018-09-24
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】591037214
【氏名又は名称】フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】シュヴァルツ ハイコ
(72)【発明者】
【氏名】ウィーガント トーマス
(72)【発明者】
【氏名】グエン ファン ホアン トゥン
(72)【発明者】
【氏名】マルペ デトレフ
【合議体】
【審判長】畑中 高行
【審判官】圓道 浩史
【審判官】片岡 利延
(56)【参考文献】
【文献】特表2015-507424(JP,A)
【文献】Heiko Schwarz, et al., Non-CE7: Alternative Entropy Coding for Dependent Quantization, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-K0072-v2, 2018年07月16日
【文献】Heiko Schwarz, et al., CE7: Transform Coefficient Coding and Dependent Quantization (Tests 7.1.2, 7.2.1), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-K0071, 2018年07月11日
【文献】Jie Dong, et al., CE7-Related: TCQ with High Throughput Coefficient Coding, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting, JVET-K0319-v4, 2018年07月15日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
変換係数のブロックを復号するための装置であって、
前記変換係数の位置をスキャン順序に従ってスキャンするパスのシーケンス(60
1-60
5)において、
コンテキスト適応バイナリ算術復号を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから復号して、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ復号されるようにする、および、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続して復号されて、現在スキャンされている変換係数の位置(50)についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の前記値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が復号された場合、前記残余値は、前記現在スキャンされている変換係数の位置について少なくとも1つのフラグが復号されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置についてフラグが復号されていないときには前記初期値ドメインから、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示すように構成され、
前記装置は、
前記パスのシーケンスのうちの第1のパス(60
1)において、
前記データストリームから、第1の予め決定されたフラグタイプのフラグ(92)を、前記第1のパス(60
1)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる、予め決定された変換係数の位置(112)まで復号するように構成され、前記第1の予め決定されたフラグタイプのフラグ(92)は、前記現在スキャンされている変換係数の位置(50)についての前記量子化インデックスがゼロか否かを示し、
前記予め決定された変換係数の位置(112)までの変換係数の位置についての前記フラグのみを復号し、前記パスのシーケンスの別のパス(60
3,4)において、スキャン順序(62)で前記予め決定された変換係数の位置(112)以降の前記変換係数の位置の符号化されたセットのそれぞれについて、前記残余値のうちの1つを復号して、前記残余値のうちの1つが前記初期値ドメイン(90)のうちの前記それぞれの変換係数の位置についての前記量子化インデックスの前記絶対値を一意に示すように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も復号するように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを復号するように構成され、
前記第1のパスにおいて(60
1)、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記現在スキャンされている変換係数のパリティを示す第2の予め決定されたフラグタイプの前記フラグ(96)を復号するように構成される、装置。
【請求項2】
前記装置は、
現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセット(73)から1つの再構成レベルのセットを選択し(72)、前記量子化インデックスが前記再構成レベルのセットにおいて指し示す再構成レベルに前記量子化インデックスを逆量子化する(74)こと、および、
前記現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために、前記現在の変換係数の位置について想定される前記状態遷移の前記状態を更新する(76)こと、によって、前記スキャン順序に従った状態遷移を使用して連続的に逆量子化するように構成される、請求項1に記載の装置。
【請求項3】
4つの異なった状態の間で、前記状態遷移の移行を実行するように構成される、請求項2に記載の装置。
【請求項4】
前記状態遷移の前記状態を更新する際に、前記現在の変換係数の位置の前記量子化インデックス(80)に適用されるバイナリ関数(86)に依存して、第1の後続状態(84
1)および第2の後続状態(84
2)の間で決定することによって前記更新を実行するように構成され、ここで、前記第1の後続状態および前記第2の後続状態は前記現在の変換係数の位置の前記状態に依存する、請求項2または3に記載の装置。
【請求項5】
前記バイナリ関数はパリティまたはゼロを生じさせる、請求項4に記載の装置。
【請求項6】
前記複数(73)の再構成レベルセット(52)を予め決定された量子化ステップサイズによってパラメータ化し、前記データストリームから前記予め決定された量子化ステップサイズに関する情報を導出するように構成される、請求項2ないし5のいずれかに記載の装置。
【請求項7】
前記複数(73)の再構成レベルセット(52)のそれぞれは、現在の変換係数の位置についての前記複数(73)の再構成レベルセット(52)に対して一定である予め決定された量子化ステップサイズの整数倍からなる、請求項2ないし6のいずれかに記載の装置。
【請求項8】
前記複数(73)の再構成レベルセット(52)のうちの前記再構成レベルセット(52)の数は2であり、前記複数の再構成レベルセットは、
ゼロおよび予め決定された量子化ステップサイズの偶数倍を含む第1の再構成レベルセットと、
ゼロおよび予め決定された量子化ステップサイズの奇数倍を含む第2の再構成レベルセットと、を含む、請求項2ないし7のいずれかに記載の装置。
【請求項9】
前記予め決定されたアボート基準は、前記第1のパス(60
1)において復号される前記フラグの数が予め決定された閾値を超えるか否かに関連する、請求項1ないし8のいずれかに記載の装置。
【請求項10】
前記第1のパス(60
1)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、第2の予め決定されたフラグタイプのフラグ(96)の後に前記第3の予め決定されたフラグタイプの前記フラグ(98)を復号するように構成され、前記第2の予め決定されたフラグタイプの前記フラグは前記現在スキャンされている変換係数のパリティを示す、請求項1に記載の装置。
【請求項11】
非適応バイパスモードにおいて前記可変長符号のビンを復号するように構成される、請求項1ないし10のいずれかに記載の装置。
【請求項12】
前記現在スキャンされている変換係数の位置がスキャン順序において前記予め決定された変換係数の位置に先行するか、または前記予め決定された変換係数の位置であるか、もしくは前記予め決定された変換係数の位置に続くか否かに依存して、前記現在スキャンされている変換係数の位置についての前記残余値を異なって復号するために、可変長符号の予め定義されたセットから前記可変長符号を選択するように構成される、請求項1ないし11のいずれかに記載の装置。
【請求項13】
前記現在スキャンされている変換係数の位置が、前記予め決定された変換係数の位置(112)に先行するか、または前記予め決定された変換係数の位置(112)に等しい場合、
前記現在スキャンされている変換係数の位置についての前記残余値を復号するために、選択された可変長符号を示すパラメータを、予め決定された基準を満たす先行する変換係数の位置の前記量子化インデックスに徐々に変更することによって、および/または、前記現在スキャンされている変換係数の位置の近傍の変換係数の位置の前記量子化インデックスに依存して、可変長符号の予め定義されたセットから前記可変長符号を選択するように構成される、請求項1ないし12のいずれかに記載の装置。
【請求項14】
前記現在スキャンされている変換係数の位置が、スキャン順序において前記予め決定された変換係数の位置の後に続く場合、
前記現在スキャンされている変換係数の位置についての前記残余値を復号するために、
前記現在スキャンされている変換係数の位置の近傍の変換係数の位置の前記量子化インデックスに依存して、および、
状態遷移が前記現在スキャンされている変換係数の位置について想定する状態に依存して、可変長符号の予め定義されパラメータ化されたセットから前記可変長符号を選択するように構成される、請求項1ないし13のいずれかに記載の装置。
【請求項15】
前記装置は、
現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセットから1つの再構成レベルのセットを選択し、前記量子化インデックスが前記再構成レベルのセットにおいて指し示す再構成レベルに前記量子化インデックスを逆量子化すること、および、
前記現在の変換係数の位置についての前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数の位置に続く変換係数の位置のために、前記現在の変換係数の位置について想定される前記状態遷移の前記状態を更新すること、によって、前記スキャン順序に従った前記状態遷移を使用して連続的に逆量子化するように構成される、請求項1ないし14のいずれかに記載の装置。
【請求項16】
前記1つ以上のフラグタイプのセットのそれぞれについて、
前記パスのシーケンスのうちの1つにおいて、それぞれのフラグタイプの前記フラグを復号するように、前記復号を実行するように構成される、請求項1ないし15のいずれかに記載の装置。
【請求項17】
前記可変長符号は可変長符号の予め定義されたセットから選択され、単一のパラメータが1つの可変長符号を一意に識別する、請求項1ないし16のいずれかに記載の装置。
【請求項18】
前記可変長符号の予め定義されたセットはゴロム・ライス符号のセットである、請求項17に記載の装置。
【請求項19】
前記装置は、前記現在スキャンされている変換係数の位置についての前記残余値を復号するために、
選択された可変長符号を示すパラメータを、予め決定された基準を満たす先行する変換係数の位置の前記量子化インデックスに基づいて徐々に変更すること、および/または、
前記現在スキャンされている変換係数の位置の近傍の変換係数の位置の前記量子化インデックスに依存すること、によって、可変長符号の予め定義されたセットから前記可変長符号を選択するように構成される、請求項1ないし18のいずれかに記載の装置。
【請求項20】
スキャン順序において最初の非ゼロ量子化インデックスの前記位置(64)と予め定義された変換係数の位置(66)との間で、前記スキャン順序に従って存在する変換係数の位置の前記符号化されたセットを決定し、
前記データストリームに基づいて、前記最初の非ゼロ量子化インデックスの前記位置を特定するように構成される、請求項1ないし19のいずれかに記載の装置。
【請求項21】
それぞれの非ゼロ量子化インデックスについて、符号ビットを等確率バイパスモードを使用して前記データストリームから復号するように構成される、請求項1ないし20のいずれかに記載の装置。
【請求項22】
予め決定された変換係数の位置のための前記第1の予め決定されたフラグタイプの前記フラグ(92)を、
前記予め決定された変換係数の係数位置に依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし21のいずれかに記載の装置。
【請求項23】
前記予め決定された変換係数の位置(50)のまわりのローカルテンプレート(52)内の近傍の変換係数の位置のセットについて前記予め決定された変換係数の位置の予め決定されたフラグタイプの前記フラグ(92)の前に復号されたフラグのセットに基づいてローカルアクティビティを決定すること、および、
前記ローカルアクティビティに依存してコンテキストを選択すること、によって、予め決定された変換係数の位置のための前記第1の予め決定されたフラグタイプの前記フラグ(92)をコンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし22のいずれかに記載の装置。
【請求項24】
前記フラグのセットは、近傍の変換係数の位置の前記セットのために復号された前記第1の予め決定されたフラグタイプの前記フラグ(92)と、第2の予め決定されたフラグタイプの前記フラグ(96)と、第3の予め決定されたフラグタイプの前記フラグ(98)とを含み、前記装置は、前記近傍の変換係数の位置のそれぞれについての加数の合計に基づいて前記ローカルアクティビティを計算するように構成され、前記加数は、前記近傍の変換係数の位置のセットのために復号された前記第1の予め決定されたフラグタイプの前記フラグ(92)と、前記第2の予め決定されたフラグタイプの前記フラグ(96)と、前記第3の予め決定されたフラグタイプの前記フラグ(98)とに基づいて決定される、前記近傍の変換係数の位置についての前記量子化インデックスの最小想定絶対値、または最小想定絶対再構成レベルを示す、請求項23に記載の装置。
【請求項25】
前記装置は、
それぞれの変換係数の位置について、状態遷移が前記それぞれの変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセットから1つの再構成レベルセットを選択し、前記量子化インデックスが前記再構成レベルのセットにおいて指し示す再構成レベルに前記量子化インデックスを逆量子化すること、および、
現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために、前記現在の変換係数の位置について想定される前記状態遷移の前記状態を更新すること、によって、前記スキャン順序に従った状態遷移を使用して連続的に逆量子化するように構成され、
予め決定された変換係数の位置に対する前記第1の予め決定されたフラグタイプの前記フラグを、
前記状態遷移が前記予め決定された変換係数の位置について想定する前記状態、および/または、
前記予め決定された変換係数の位置のために選択された再構成レベルの前記セットに依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし24のいずれかに記載の装置。
【請求項26】
予め決定された変換係数の位置のための第2の予め決定されたフラグタイプの前記フラグ(96)を、
前記予め決定された変換係数の係数位置に依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし25のいずれかに記載の装置。
【請求項27】
予め決定された変換係数の位置のまわりのローカルテンプレート(52)内の近傍の変換係数の位置のセットについて、前記予め決定された変換係数の位置の第2の予め決定されたフラグタイプの前記フラグの前に復号されるフラグのセットに基づいて、ローカルアクティビティ、および/または、前記予め決定された変換係数の位置のまわりの前記ローカルテンプレート(52)内の前記量子化インデックスがゼロではない変換係数の数を決定すること、および、
前記ローカルアクティビティ、および/または、非ゼロ量子化インデックスの数に依存して、コンテキストを選択すること、によって、前記予め決定された変換係数の位置のための前記第2の予め決定されたフラグタイプの前記フラグ(96)を、コンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし26のいずれかに記載の装置。
【請求項28】
前記ローカルアクティビティと前記非ゼロ量子化インデックスの数との間の差に依存して前記コンテキストを選択するように構成される、請求項27に記載の装置。
【請求項29】
前記フラグのセットは、近傍の変換係数の位置の前記セットのために復号された前記第1の予め決定されたフラグタイプの前記フラグ(92)と、前記第2の予め決定されたフラグタイプの前記フラグ(96)と、第3の予め決定されたフラグタイプの前記フラグ(98)とを含み、前記装置は、前記近傍の変換係数の位置のそれぞれについての加数の合計に基づいてローカルアクティビティを計算するように構成され、前記加数は、前記近傍の変換係数の位置のために復号された前記第1の予め決定されたフラグタイプの前記フラグ(92)と、前記第2の予め決定されたフラグタイプの前記フラグ(96)と、前記第3の予め決定されたフラグタイプの前記フラグ(98)とに基づいて決定される前記近傍の変換係数の位置(51)についての前記量子化インデックスの最小想定絶対値、または、最小想定絶対再構成レベルを示す、請求項26または27に記載の装置。
【請求項30】
予め決定された変換係数の位置のための第3の予め決定されたフラグタイプの前記フラグ(98)を、
前記予め決定された変換係数の係数位置に依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし29のいずれかに記載の装置。
【請求項31】
前記予め決定された変換係数の位置のまわりのローカルテンプレート内の近傍の変換係数の位置のセットについての前記予め決定された変換係数の第3の予め決定されたフラグタイプの前記フラグの前に復号されたフラグのセットに基づいて、ローカルアクティビティ、および/または、前記予め決定された変換係数の位置のまわりの前記ローカルテンプレート内の、前記量子化インデックスがゼロではない変換係数の数を決定すること、および、
前記ローカルアクティビティ、および/または、非ゼロ量子化インデックスの数に依存してコンテキストを選択すること、によって、予め決定された変換係数の位置のための前記第3の予め決定されたフラグタイプの前記フラグ(98)を、コンテキスト適応エントロピー復号を使用して復号するように構成される、請求項1ないし30のいずれかに記載の装置。
【請求項32】
前記ローカルアクティビティと前記非ゼロ量子化インデックスの数との間の差に依存して前記コンテキストを選択するように構成される、請求項31に記載の装置。
【請求項33】
前記フラグのセットは、近傍の変換係数の位置の前記セットのために復号された前記第1の予め決定されたフラグタイプの前記フラグと、第2の予め決定されたフラグタイプの前記フラグと、前記第3の予め決定されたフラグタイプの前記フラグとを含み、前記装置は、前記近傍の変換係数の位置のそれぞれについての加数の合計に基づいて前記ローカルアクティビティを計算するように構成され、前記加数は前記近傍の変換係数の位置のために復号された前記第1の予め決定されたフラグタイプの前記フラグと、前記第2の予め決定されたフラグタイプの前記フラグと、前記第3の予め決定されたフラグタイプの前記フラグとに基づいて決定される前記近傍の変換係数の位置についての前記量子化インデックスについての最小想定絶対値、または、最小想定絶対再構成レベルを示す、請求項31または32に記載の装置。
【請求項34】
変換係数ブロック(10)を復号するためのデコーダであって、
前記変換係数ブロック(10)が分割されたサブブロック(14)のうちの少なくとも1つのセットのそれぞれについて、それぞれのサブブロック(14)が、量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数(12)を含むか否かを示すサブブロック重大フラグを復号し、また、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が少なくとも1つの存在することを前記サブブロック重大フラグが示すそれぞれのサブブロック(14)内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
それぞれの変換係数の値ドメインを2つの部分に帰納的に二分割し、前記それぞれの変換係数の量子化インデックスが前記2つの部分のうちのどちらに存在するかを示す1つ以上のフラグのシーケンスを連続的に復号するとともに、前記値ドメインが単に1つの値または絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの復号を停止すること、および、
前記値ドメインが前記絶対的な意味で異なる値を依然として1つ以上含む場合、前記値ドメインにおける前記それぞれの変換係数の前記量子化インデックスの前記絶対値を示す残余値を連続的に復号することによって、ならびに、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
前記1つ以上のフラグの前記シーケンスを連続的に復号するとともに、前記値ドメインが前記非ゼロ閾値を超えない1つの値のみ、単に1つの値または単に絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの復号を停止することによって、前記変換係数ブロックの変換係数を復号するように構成される、デコーダ。
【請求項35】
前記フラグのシーケンスの第1のフラグは、前記第1のフラグが復号される前記変換係数がゼロであるか否かを示す有意フラグである、請求項34に記載のデコーダ。
【請求項36】
前記予め決定された非ゼロ閾値は1であり、かつ、
前記デコーダは、
前記量子化インデックスの前記絶対値が1より大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
前記第1のフラグを連続的に復号するように構成される、請求項35に記載のデコーダ。
【請求項37】
前記変換係数ブロックが分割された前記サブブロックのうちの少なくとも1つの別のセットのそれぞれについて、前記それぞれのサブブロックがゼロに等しくない変換係数を含むか否かを示す別のサブブロック重大フラグを復号し、
第1のサブブロック重大フラグが復号され、ゼロに等しくない少なくとも1つの変換係数を含むことを前記別のサブブロック重大フラグが示す前記サブブロックをなすサブブロックの前記セットを決定し、
非ゼロ変換係数が存在しないことを前記別のサブブロック重大フラグが示すそれぞれのサブブロック内では、
前記変換係数ブロックの変換係数が、すべてゼロであると推定するように構成される、請求項34ないし36のいずれかに記載のデコーダ。
【請求項38】
変換係数のブロック(10)を復号するための装置であって、
前記ブロック(10)の変換係数の位置(12)をスキャン順序(62)に従ってスキャンするパスのシーケンス(60)において、
コンテキスト適応バイナリ算術復号を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから復号して、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ復号されるようにする、および、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続して復号されて、現在スキャンされている変換係数の位置についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の前記値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が復号された場合、前記残余値は、前記現在スキャンされている変換係数の位置について少なくとも1つのフラグが復号されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置についてフラグが復号されていないときには前記初期値ドメイン(90)から、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示すように構成され、
前記装置は、
前記変換係数の位置の符号化されたセットの前記変換係数の位置の前記量子化インデックスを、
現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセット(73)から1つの再構成レベルのセットを選択し(72)、前記量子化インデックスが前記再構成レベルのセットにおいて指し示す再構成レベルに前記量子化インデックスを逆量子化する(74)こと、および、
前記現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために、前記現在の変換係数の位置について想定される前記状態遷移の前記状態を更新する(76)こと、によって、前記スキャン順序に従った状態遷移を使用して、連続的に逆量子化するように構成され、
前記装置は、
前記パスのシーケンスのうちの第1のパスにおいて、
第1の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグが、スキャン順序(62)において前記第1の変換係数の位置に続く第2の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグの前に復号されるように、第1の予め決定されたフラグタイプのフラグ(92)および第2の予め決定されたフラグタイプのフラグ(96)を前記データストリームから復号し、ここで、前記第1の予め決定されたフラグタイプのフラグおよび前記第2の予め決定されたフラグタイプのフラグの前記復号は、前記第1のパス(60
1)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる予め決定された変換係数の位置(112)まで、および、それを含むように実行され、前記第1の予め決定されたフラグタイプの前記フラグ(92)は前記現在スキャンされている変換係数の前記量子化インデックスがゼロであるか否かを示し、
前記第2の予め決定されたフラグタイプの前記フラグ(96)は前記現在スキャンされている変換係数についての前記量子化インデックスのパリティを示し、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も復号するように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを復号するように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第2の予め決定されたフラグタイプの前記フラグ(96)の後に前記第3の予め決定されたフラグタイプの前記フラグ(98)を復号するように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグ(96)を復号するように構成される、装置。
【請求項39】
4つの異なった状態の間で、前記状態遷移の移行を実行するように構成される、請求項38に記載の装置。
【請求項40】
前記状態遷移の前記状態を更新する際に、前記現在の変換係数の位置の前記量子化インデックス(80)に適用されるバイナリ関数(86)に依存して、第1の後続状態(84
1)および第2の後続状態(84
2)の間で決定することによって前記更新を実行するように構成され、ここで、前記第1の後続状態および前記第2の後続状態は前記現在の変換係数の位置の前記状態に依存する、請求項38または39に記載の装置。
【請求項41】
前記バイナリ関数はパリティまたはゼロを生じさせる、請求項40に記載の装置。
【請求項42】
前記複数(73)の再構成レベルセット(52)を予め決定された量子化ステップサイズによってパラメータ化し、前記データストリームから前記予め決定された量子化ステップサイズに関する情報を導出するように構成される、請求項38ないし41のいずれかに記載の装置。
【請求項43】
前記複数(73)の再構成レベルセット(52)のそれぞれは、現在の変換係数の位置についての前記複数(73)の再構成レベルセット(52)に対して一定である予め決定された量子化ステップサイズの整数倍からなる、請求項38ないし42のいずれかに記載の装置。
【請求項44】
前記複数(73)の再構成レベルセット(52)のうちの前記再構成レベルセット(52)の数は2であり、前記複数の再構成レベルセットは、
ゼロおよび予め決定された量子化ステップサイズの偶数倍を含む第1の再構成レベルセットと、
ゼロおよび予め決定された量子化ステップサイズの奇数倍を含む第2の再構成レベルセットと、を含む、請求項38ないし43のいずれかに記載の装置。
【請求項45】
前記第1のパス(60
1)において、前記第1の予め決定されたフラグタイプの前記フラグ(92)が前記現在スキャンされている変換係数の前記量子化インデックスが非ゼロであることを示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグ(96)を復号するように構成される、請求項38に記載の装置。
【請求項46】
前記予め決定されたアボート基準は、前記第1のパス(60
1)において復号される前記フラグの数が予め決定された閾値を超えるか否かに関連する、請求項38に記載の装置。
【請求項47】
第2のパスに続く1つ以上の追加のパスにおいて、前記残余値を復号するように構成される、請求項38に記載の装置。
【請求項48】
前記第1のパスに続く1つ以上のパス(60
3,60
4)において、前記残余値を復号するように構成される、請求項38ないし47のいずれかに記載の装置。
【請求項49】
最後のパス(60
5)において、非ゼロ変換係数の符号を復号するように構成される、請求項38ないし48のいずれかに記載の装置。
【請求項50】
前記装置は、
前記状態遷移において、
前記現在の変換係数の位置が、スキャン順序において前記予め決定された変換係数の位置(112)に先行する、または、前記予め決定された変換係数の位置(112)に等しい場合には、
前記現在の変換係数の位置の前記第2の予め決定されたフラグタイプの前記フラグ(96)に依存して、
前記現在の変換係数の位置が、スキャン順序において前記予め決定された変換係数の位置(112)に続く場合には、
前記現在の変換係数の位置の前記第1の予め決定されたフラグタイプの前記フラグ(92)に依存して、前記状態遷移の前記状態の前記更新を実行するように構成され、
コンテキスト適応エントロピー復号において、前記状態遷移が前記現在のスキャンされている変換係数の位置について想定する前記状態に依存して、前記第1の予め決定された変換係数の位置(112)に先行する、それを含むおよびそれに続くすべての前記変換係数の位置に対して、前記現在のスキャンされている変換係数についての前記第1の予め決定されたフラグタイプのフラグを復号するためのコンテキストを決定するように構成される、請求項38ないし49のいずれかに記載の装置。
【請求項51】
前記装置は、
コンテキスト適応エントロピー復号において、前記予め決定された変換係数の位置(112)に先行するおよびそれを含む前記変換係数の位置については前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態に依存して、ならびに、前記予め決定された変換係数の位置(112)に続く前記変換係数の位置については前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態とは独立して、前記現在スキャンされている変換係数の位置についての前記第1の予め決定されたフラグタイプのフラグ(92)を復号するためのコンテキストを決定するように構成される、請求項38ないし50のいずれかに記載の装置。
【請求項52】
前記装置は、
コンテキスト適応エントロピー復号においては、前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態に依存して、前記予め決定された変換係数の位置(112)に先行する、それを含むおよびそれに続くすべての前記変換係数の位置に対して、前記現在スキャンされている変換係数の位置についての前記第1の予め決定されたフラグタイプのフラグ(92)を復号するためのコンテキストを決定するように構成され、
前記状態遷移においては、前記現在の変換係数の位置の前記第1の予め決定されたフラグタイプの前記フラグ(92)に依存して、前記スキャン順序において前記それぞれの変換係数の位置に続く変換係数の位置について、前記現在の変換係数の位置について想定される前記状態遷移の前記状態の前記更新を実行するように構成される、請求項38ないし51のいずれかに記載の装置。
【請求項53】
変換係数のブロックを符号化するための装置であって、
前記変換係数の位置をスキャン順序に従ってスキャンするパスのシーケンス(60
1-60
5)において、
コンテキスト適応バイナリ算術符号化を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから符号化して、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ符号化され、且つ、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続して符号化されて、現在スキャンされている変換係数の位置(50)についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の前記値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が符号化される場合、前記残余値は、前記現在スキャンされている変換係数の位置について少なくとも1つのフラグが符号化されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置についてフラグが符号化されていないときには前記初期値ドメインから、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示すように構成され、
前記装置は、
前記パスのシーケンスのうちの第1のパス(60
1)において、
第1の予め決定されたフラグタイプのフラグ(92)を、前記第1のパス(60
1)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる、予め決定された変換係数の位置(112)まで前記データストリームに符号化するように構成され、前記第1の予め決定されたフラグタイプのフラグ(92)は、前記現在スキャンされている変換係数の位置(50)についての前記量子化インデックスがゼロか否かを示し、
前記予め決定された変換係数の位置(112)までの変換係数の位置についての前記フラグのみを符号化し、前記パスのシーケンスの別のパス(60
3,4)において、スキャン順序(62)で前記予め決定された変換係数の位置以降の前記変換係数の位置の符号化されたセットのそれぞれについて、前記残余値のうちの1つを符号化して、前記残余値のうちの1つが前記初期値ドメイン(90)のうちの前記それぞれの変換係数の位置についての前記量子化インデックスの前記絶対値を一意に示すように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も
符号化するように構成され、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを
符号化するように構成され、
前記第1のパスにおいて(60
1)、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記現在スキャンされている変換係数のパリティを示す第2の予め決定されたフラグタイプの前記フラグ(96)を
符号化するように構成される、装置。
【請求項54】
変換係数ブロック(10)を符号化するためのエンコーダであって、
前記変換係数ブロック(10)が分割されたサブブロック(14)のうちの少なくとも1つのセットのそれぞれについて、それぞれのサブブロック(14)が、量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数(12)を含むか否かを示すサブブロック重大フラグを符号化し、また、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が少なくとも1つ存在することを前記サブブロック重大フラグが示すそれぞれのサブブロック(14)内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
それぞれの変換係数の値ドメインを2つの部分に帰納的に二分割し、前記それぞれの変換係数の量子化インデックスが前記2つの部分のうちのどちらに存在するかを示す1つ以上のフラグのシーケンスを連続的に符号化するとともに、前記値ドメインが単に1つの値または絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの符号化を停止すること、および、
前記値ドメインが前記絶対的な意味で異なる値を依然として1つ以上含む場合、前記値ドメインにおける前記それぞれの変換係数の前記量子化インデックスの前記絶対値を示す残余値を連続的に符号化すること、ならびに、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
前記1つ以上のフラグの前記シーケンスを連続的に符号化するとともに、前記値ドメインが前記非ゼロ閾値を超えない1つの値のみ、単に1つの値または単に絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの符号化を停止することによって、前記変換係数ブロックの変換係数を符号化するように構成される、エンコーダ。
【請求項55】
変換係数のブロック(10)を符号化するための装置であって、
前記ブロック(10)の変換係数の位置(12)をスキャン順序(62)に従ってスキャンするパスのシーケンス(60)において、
コンテキスト適応バイナリ算術符号化を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、 データストリームに符号化して、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ符号化され、且つ、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つが連続して符号化されて、現在スキャンされている変換係数の位置についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置に対して前記残余値が符号化された場合、前記残余値は、前記現在スキャンされている変換係数の位置について少なくとも1つのフラグが符号化されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置についてフラグが符号化されていないときには前記初期値ドメイン(90)から、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示すように構成され、
前記装置は、
現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセット(73)から1つの再構成レベルセットを選択し(72)、選択された前記再構成レベルのセットから再構成レベルを一意に示す量子化インデックスに前記現在の変換係数の位置についての前記変換係数を
量子化する(74)こと、および、
前記現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために、前記現在の変換係数の位置について想定される前記状態遷移の前記状態を更新する(76)こと、によって、前記スキャン順序に従った状態遷移を使用して、連続して
量子化するように構成され
、
前記装置は、
前記パスのシーケンスのうちの第1のパスにおいて、
第1の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグが、スキャン順序(62)において前記第1の変換係数の位置に続く第2の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグの前に符号化されるように、第1の予め決定されたフラグタイプのフラグ(92)および第2の予め決定されたフラグタイプのフラグ(96)を前記データストリームから符号化し、ここで、前記第1の予め決定されたフラグタイプのフラグおよび前記第2の予め決定されたフラグタイプのフラグの前記符号化は、前記第1のパス(60
1
)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる予め決定された変換係数の位置(112)まで、および、それを含むように実行され、前記第1の予め決定されたフラグタイプの前記フラグ(92)は前記現在スキャンされている変換係数の前記量子化インデックスがゼロであるか否かを示し、
前記第2の予め決定されたフラグタイプの前記フラグ(96)は前記現在スキャンされている変換係数についての前記量子化インデックスのパリティを示し、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も符号化するように構成され、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを符号化するように構成され、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第2の予め決定されたフラグタイプの前記フラグ(96)の後に前記第3の予め決定されたフラグタイプの前記フラグ(98)を符号化するように構成され、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグ(96)を符号化するように構成される、装置。
【請求項56】
変換係数のブロックを復号するための方法であって、
前記変換係数の位置をスキャン順序に従ってスキャンするパスのシーケンス(60
1-60
5)において、
コンテキスト適応バイナリ算術復号を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから復号するステップであって、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ復号され、且つ、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続して復号されて、現在スキャンされている変換係数の位置(50)についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の前記値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が復号された場合、前記残余値は、前記現在スキャンされている変換係数の位置について少なくとも1つのフラグが復号されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置についてフラグが復号されていないときには前記初期値ドメインから、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示すステップを含み、
前記方法は、
前記パスのシーケンスの第1のパス(60
1)において、
前記第1のパス(60
1)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる、予め決定された変換係数の位置(112)までを第1の予め決定されたフラグタイプのフラグ(92)を前記データストリームから復号するステップであって、前記第1の予め決定されたフラグタイプのフラグ(92)は、前記現在スキャンされている変換係数の位置(50)についての前記量子化インデックスがゼロか否かを示すステップと、
前記予め決定された変換係数の位置(112)まで変換係数の位置について前記フラグのみを復号し、前記パスのシーケンスの別のパス(60
3,4)において、スキャン順序(62)の前記予め決定された変換係数の位置以降(112)の前記変換係数の位置の符号化されたセットのそれぞれについて、前記残余値のうちの1つを復号して、前記残余値のうちの1つが前記初期値ドメイン(90)のうちの前記それぞれの変換係数の位置についての前記量子化インデックスの前記絶対値を一意に示すようにするステップと、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も復号するステップと、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを復号するステップと、
前記第1のパスにおいて(60
1)、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記現在スキャンされている変換係数のパリティを示す第2の予め決定されたフラグタイプの前記フラグ(96)を復号するステップと、を含む、方法。
【請求項57】
変換係数ブロック(10)を復号するための方法であって、
前記変換係数ブロック(10)が分割されたサブブロック(14)のうちの少なくとも1つのセットのそれぞれについて、それぞれのサブブロック(14)が、量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数(12)を含むか否かを示すサブブロック重大フラグを復号するステップと、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が少なくとも1つ存在することを前記サブブロック重大フラグが示すそれぞれのサブブロック(14)内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
それぞれの変換係数の値ドメインを2つの部分に帰納的に二分割し、前記それぞれの変換係数の量子化インデックスが前記2つの部分のうちのどちらに存在するかを示す1つ以上のフラグのシーケンスを連続的に復号するとともに、前記値ドメインが単に1つの値または絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの復号を停止すること、および、
前記値ドメインが前記絶対的な意味で異なる値を1つ以上依然として含む場合、前記値ドメインにおける前記それぞれの変換係数の前記量子化インデックスの前記絶対値を示す残余値を連続的に復号すること、ならびに、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
前記1つ以上のフラグの前記シーケンスを連続的に復号するとともに、前記値ドメインが前記非ゼロ閾値を超えない1つの値のみ、単に1つの値または単に絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの復号を停止することによって、前記変換係数ブロックの変換係数を復号するステップを含む、方法。
【請求項58】
変換係数のブロック(10)を復号するための方法であって、
前記ブロック(10)の変換係数の位置(12)をスキャン順序(62)に従ってスキャンするパスのシーケンス(60)において、
コンテキスト適応バイナリ算術複号を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから復号するステップであって、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ復号され、且つ、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続して復号されて、現在スキャンされている変換係数の位置についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が復号された場合、前記残余値は、前記現在スキャンされている変換係数の位置に対する少なくとも1つのフラグが復号されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置に対するフラグが復号されていないときには前記初期値ドメイン(90)から、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示す、ステップを含み、
前記方法は、
前記変換係数の位置の符号化されたセットの前記変換係数の位置の前記量子化インデックスを、
現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセット(73)から1つの再構成レベルのセットを選択し(72)、前記量子化インデックスが前記再構成レベルのセットにおいて差し示す再構成レベルに前記量子化インデックスを逆量子化する(74)こと、および、
前記現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために、前記現在の変換係数の位置について想定された前記状態遷移の前記状態を更新する(76)こと、によって、前記スキャン順序に従った状態遷移を使用して、連続して逆量子化するステップを含
み、
前記方法は、
前記パスのシーケンスのうちの第1のパスにおいて、
第1の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグが、スキャン順序(62)において前記第1の変換係数の位置に続く第2の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグの前に復号されるように、第1の予め決定されたフラグタイプのフラグ(92)および第2の予め決定されたフラグタイプのフラグ(96)を前記データストリームから復号するステップであって、前記第1の予め決定されたフラグタイプのフラグおよび前記第2の予め決定されたフラグタイプのフラグの前記復号は、前記第1のパス(60
1
)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる予め決定された変換係数の位置(112)まで、および、それを含むように実行され、前記第1の予め決定されたフラグタイプの前記フラグ(92)は前記現在スキャンされている変換係数の前記量子化インデックスがゼロであるか否かを示し、前記第2の予め決定されたフラグタイプの前記フラグ(96)は前記現在スキャンされている変換係数についての前記量子化インデックスのパリティを示す、ステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も復号するステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを復号するステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第2の予め決定されたフラグタイプの前記フラグ(96)の後に前記第3の予め決定されたフラグタイプの前記フラグ(98)を復号するステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグ(96)を復号するステップと、を含む、方法。
【請求項59】
変換係数のブロックを符号化するための方法であって、
前記変換係数の位置をスキャン順序に従ってスキャンするパスのシーケンス(60
1-60
5)において、
コンテキスト適応バイナリ算術符号化を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから符号化するステップであって、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ符号化され、且つ、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続的に符号化されて、現在スキャンされている変換係数の位置(50)についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の前記値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が符号化された場合、前記残余値は、前記現在スキャンされている変換係数の位置に対する少なくとも1つのフラグが符号化されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置に対するフラグが符号化されていないときには前記初期値ドメインから、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示す、ステップを含み、
前記方法は、
前記パスのシーケンスの第1のパス(60
1)において、
第1の予め決定されたフラグタイプのフラグ(92)を、前記第1のパス(60
1)において、予め決定されたアボート基準を前記スキャン順序(62)においてはじめて満たす、予め決定された変換係数の位置(112)まで前記データストリームに符号化するステップであって、前記第1の予め決定されたフラグタイプのフラグ(92)は、前記現在スキャンされている変換係数の位置(50)についての前記量子化インデックスがゼロか否かを示す、ステップと、
前記予め決定された変換係数の位置(112)まで変換係数の位置に対するフラグのみを符号化し、前記パスのシーケンスの別のパス(60
3,4)において、スキャン順序(62)で前記予め決定された変換係数の位置(112)以降の前記変換係数の位置の符号化されたセットのそれぞれについて、前記残余値のうちの1つを符号化して、前記残余値のうちの1つが前記初期値ドメイン(90)のうちの前記それぞれの変換係数の位置について前記量子化インデックスの前記絶対値を一意に示すようにするステップと、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も
符号化するステップと、
前記第1のパス(60
1)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを
符号化するステップと、
前記第1のパスにおいて(60
1)、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記現在スキャンされている変換係数のパリティを示す第2の予め決定されたフラグタイプの前記フラグ(96)を
符号化するステップと、を含む、方法。
【請求項60】
変換係数ブロック(10)を符号化するための方法であって、
前記変換係数ブロック(10)が分割されたサブブロック(14)のうちの少なくとも1つのセットのそれぞれについて、それぞれのサブブロック(14)が、量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数(12)を含むか否かを示すサブブロック重大フラグを符号化するステップ、また、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が少なくとも1つ存在することを前記サブブロック重大フラグが示すそれぞれのサブブロック(14)内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
それぞれの変換係数の値ドメインを2つの部分に帰納的に二分割し、前記それぞれの変換係数の量子化インデックスが前記2つの部分のうちのどちらに存在するかを示す1つ以上のフラグのシーケンスを連続的に符号化するとともに、前記値ドメインが単に1つの値または絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの符号化を停止すること、および、
前記値ドメインが前記絶対的な意味で異なる値を依然として1つ以上含む場合、前記値ドメインにおける前記それぞれの変換係数の前記量子化インデックスの前記絶対値を示す残余値を連続的に符号化すること、ならびに、
前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、
前記それぞれのサブブロック内の前記変換係数のそれぞれについて、
前記1つ以上のフラグの前記シーケンスを連続的に符号化するとともに、前記値ドメインが前記非ゼロ閾値を超えない1つの値のみ、単に1つの値または単に絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの符号化を停止することによって、前記変換係数ブロックの変換係数を符号化するステップを含む、方法。
【請求項61】
変換係数のブロック(10)を符号化するための方法であって、
前記ブロック(10)の変換係数の位置(12)をスキャン順序(62)に従ってスキャンするパスのシーケンス(60)において、
コンテキスト適応バイナリ算術符号化を使用して、
それぞれが1つ以上のフラグタイプのセットのうちの1つであるフラグ(92,96,98,104)を、および、
可変長符号を使用して、
残余値を、データストリームから符号化するステップであって、
それぞれのフラグおよびそれぞれの残余値が現在スキャンされている変換係数の位置(50)についてそれぞれ符号化され、且つ、
変換係数の位置の符号化されたセットのそれぞれの変換係数の位置について、前記フラグおよび1つの残余値のうちの少なくとも1つは連続的に符号化されて、現在スキャンされている変換係数の位置についての量子化インデックスの絶対値が存在する初期値ドメイン(90)を、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値のみを含むように連続的に制限し、ここで、それぞれのフラグは、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の値ドメインを、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの前記絶対値の前記値ドメインが二分割された第1のサブ部分または第2のサブ部分に制限し、前記現在スキャンされている変換係数の位置について残余値が符号化された場合、前記残余値は、前記現在スキャンされている変換係数の位置について少なくとも1つのフラグが符号化されているときには前記値ドメイン、または、前記現在スキャンされている変換係数の位置についてフラグが符号化されていないときには前記初期値ドメイン(90)から、前記現在スキャンされている変換係数の位置についての前記量子化インデックスの絶対値を一意に示す、ステップを含み、
前記方法は、
現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセット(73)から1つの再構成レベルセットを選択し(72)、選択された前記再構成レベルのセットから再構成レベルを一意に示す量子化インデックスに前記現在の変換係数の位置についての前記変換係数を
量子化する(74)こと、および、
前記現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために、前記現在の変換係数の位置について想定された前記状態遷移の前記状態を更新する(76)こと、によって、前記スキャン順序に従った状態遷移を使用して、連続して
量子化するステップを含
み、
前記方法は、
前記パスのシーケンスのうちの第1のパスにおいて、
第1の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグが、スキャン順序(62)において前記第1の変換係数の位置に続く第2の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグの前に符号化されるように、第1の予め決定されたフラグタイプのフラグ(92)および第2の予め決定されたフラグタイプのフラグ(96)を前記データストリームから符号化するステップであって、前記第1の予め決定されたフラグタイプのフラグおよび前記第2の予め決定されたフラグタイプのフラグの前記符号化は、前記第1のパス(60
1
)において、予め決定されたアボート基準が前記スキャン順序(62)においてはじめて満たされる予め決定された変換係数の位置(112)まで、および、それを含むように実行され、前記第1の予め決定されたフラグタイプの前記フラグ(92)は前記現在スキャンされている変換係数の前記量子化インデックスがゼロであるか否かを示し、前記第2の予め決定されたフラグタイプの前記フラグ(96)は前記現在スキャンされている変換係数についての前記量子化インデックスのパリティを示す、ステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグ(98)も符号化するステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを符号化するステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第2の予め決定されたフラグタイプの前記フラグ(96)の後に前記第3の予め決定されたフラグタイプの前記フラグ(98)を符号化するステップと、
前記第1のパス(60
1
)において、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグ(92)が示す変換係数の位置およびその後の変換係数の位置について、前記第3の予め決定されたフラグタイプの前記フラグ(98)が1よりも大きい大きさを示す変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグ(96)を符号化するステップと、を含む、方法。
【請求項62】
コンピュータ上で動作しているときに、請求項56ないし58のいずれかに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム。
【請求項63】
コンピュータ上で動作しているときに、請求項59ないし61のいずれかに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、画像またはビデオを符号化するような変換係数レベルの符号化に関する。
【背景技術】
【0002】
量子化パラメータを設定する際に、エンコーダは妥協しなければならない。量子化を粗くするとビットレートを下げるが、量子化歪みが大きくなり、量子化を細かくすると、歪みは小さくなるが、ビットレートを高める。利用可能な量子化レベルの所定のドメインに対して符号化効率を高めるという概念を手元に有することが好ましい。このような可能性の1つは、量子化が以前に量子化され符号化されたデータに依存して定常的に適応される従属量子化の使用である。しかしながら、量子化における依存性は符号化の複雑さの増大のような問題も生じ、依存性が量子化され符号化されるデータ項目の間の相互関係に影響を与え、そして、個々のシンタックス要素を符号化するためのコンテキスト導出についての情報の利用可能性に影響を与えるように、コンテキストモデリングを実行するために低減された情報を蓄積する。
【0003】
従属量子化およびコンテキスト適応エントロピー符号化の使用による変換ブロックの係数のより効率的な符号化を達成する、または、従属量子化の使用がコンテキスト適応エントロピー符号化の使用と組み合わされても、より効率的な符号化を可能にするように変換ブロックの係数の符号化を達成する概念を有することが好ましい。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、変換係数のブロックを符号化するためのこのような概念を提供することである。
【課題を解決するための手段】
【0005】
この目的は、本願の独立請求項の主題によって達成される。
【0006】
有利な態様は、従属請求項の主題である。本願の好ましい実施形態は、以下の図面を参照して説明される。
【図面の簡単な説明】
【0007】
【
図1】
図1は、以下に説明される実施形態のいずれかに従って動作するため、または、本明細書に記載の実施形態に係る機能性を組み込むために具体化されてもよい、画像エンコーダの例としての典型的なビデオエンコーダのブロック図を示す。
【
図2】
図2は、ブロックベースの変換符号化の基本的なアプローチを示す(a)変換エンコーダおよび(b)変換デコーダのブロック図を示す。
【
図3】
図3は、一様再構成量子化器を示す分布のヒストグラムを示す。
【
図4】
図4は、(a)サブブロックに再分割された変換ブロック、および、(b)変換係数レベルのスキャンのための例を説明するためのサブブロックの概略図を示し、ここで、典型的に、H.265| MPEG-H HEVCで使用され;特に、(a)は16×16変換ブロックから4×4サブブロックへの分割およびサブブロックの符号化順序を示し、(b)は4×4サブブロック内の変換係数レベルの符号化順序を示す。典型的に、細分化は、それらのフラグおよび残余を復号する際の係数のパスおよびそれを逆量子化する際の状態遷移に本願の実施形態において使用されてもよい。
【
図5】
図5は、変換係数ごとの1つの軸によって広げられた多次元出力スペース及び2つの変換係数の単純なケースのために許容可能な再構成ベクトルの位置の概略図を示す:(a)独立スカラー量子化、(b)従属スカラー量子化の例。
【
図6】
図6は、従属スカラー量子化を使用する変換デコーダのブロック図を示し、それによって、本願に係るメディアデコーダの実施形態を形成する。従来の変換符号化(独立スカラー量子化器を用いる)に対する修正は、
図2bと比較することによって導き出すことができる。同様に、従属スカラー量子化を使用して変換ブロックを符号化するための実施形態は
図2aのようなエンコーダを修正することによって得ることができる。
【
図7】
図7は、単一の量子化ステップサイズΔによって完全に決定される2セットの再構成レベルの従属量子化の実施形態を示す概略図であり、2つの利用可能な再構成レベルのセットは、セット0(上線)とセット1(下線)とで強調表示される。セット内の再構成レベルを示す量子化インデックスの例は、円の下の数によって与えられる。中空円および中が塗りつぶされた円は再構成レベルのセット内の2つの異なるサブセットを示す;サブセットは再構成順序における次の変換係数についての再構成レベルのセットを決定するために使用されてもよい。両方のセットはゼロに等しい再構成レベルを含むが、そうでない場合、互いに素である;両方のセットはゼロを中心に対称である。
【
図8】
図8は、変換係数の再構成プロセスの例を例示する擬似コードを示す。kは現在の変換係数の再構成順序を特定するインデックスを示し、現在の変換係数についての量子化インデックスはlevel[k]によって示され、現在の変換係数に適用する量子化ステップサイズΔ
kはquant_step_size[k]によって示され、trec[k]は再構成された変換係数t´
k の値を表す。変数setId[k]は、現在の変換係数に適用する再構成レベルのセットを特定する。それは、再構成順序で先の変換係数に基づいて決定され;setId[k]の考えられる値は0と1である。変数nは、量子化ステップサイズの整数係数を特定する;それは、再構成レベルの選択されたセット(すなわち、setId[k]の値)、および、送信された量子化インデックスlevel[k]によって与えられる。
【
図9】
図9は、
図8の中の擬似コードの別の実装を例示する擬似コードを示す。主要な変更は、量子化ステップとの乗算が、スケールおよびシフトパラメータを使用する整数実装を使用して表現されることである。典型的には、シフトパラメータ(shiftによって表される)は変換ブロックに対して一定であり、スケールパラメータ(scale[k]によって与えられる)だけが変換係数の位置に依存してもよい。変数addは丸め処理オフセットを表し、それは典型的に、add = (1<<(shift-1))に等しく設定される。Δ
kは変換係数についての名目上の量子化ステップであり、パラメータshiftおよびscale[k]はΔ
k≒scale[k]・2
-shiftを有するように選択される。
【
図10】
図10は、変換ブロックについての変換係数の再構成プロセスの例を示す擬似コードを示す。配列levelは変換ブロックに対して送信される変換係数レベル(量子化インデックス)を表し、配列trecは対応する再構成された変換係数を表す。二次元の表 state_trans_tableは状態遷移表を特定し、表setldは状態と関連付けられる量子化セットを特定する。
【
図11】
図11は、トレリス構造としての従属スカラー量子化における状態遷移を示す概略図を示す。水平位置の存在は、再構成順序の異なる変換係数を表す。垂直軸は、従属量子化および再構成プロセスにおける異なる可能な状態を表す。示される接続は、異なる変換係数に対する状態の間で利用可能なパスを特定する。
【
図12a】
図12aは、その位置が埋め戻し(back filling)によって示される符号化順序における第1の非ゼロ量子化インデックスの位置のシグナリングの例示のための変換ブロックの概略図を示す。第1の非ゼロ変換係数の位置に加えて、陰影が付けられた係数に対するビンのみが送信され、白くマークされた係数は0に等しいと推定される。
【
図12b】
図12bは、変換ブロックの概略図を示し、確率モデルを選択するために使用されるテンプレートを示す。黒色の正方形は現在のスキャン位置を特定し、陰影が付けられた正方形はコンテキストモデルを導出するために使用される局所近傍を表す。
【
図13-1】
図13-1は、変換係数ブロックを符号化する第1の実施形態による擬似コードを示す。
【
図13-2】
図13-2は、変換係数ブロックを符号化する第1の実施形態による擬似コードを示す。
【
図14】
図14は、量子化インデックスの値ドメインを再帰的に二分割することによる
図13の実施形態に従う変換係数の量子化インデックスの表現を示す概略図である。
【
図15】
図15は、
図13の復号例における様々なパスを示す概略図であり、どのように変換係数をトラバースし、どのフラグまたは残余が
図13の例に従うパスで符号化されるかについて示す。
【
図16-1】
図16-1は、変換係数ブロックを符号化するための第2の実施形態を説明するための擬似コードを示す。
【
図16-2】
図16-2は、変換係数ブロックを符号化するための第2の実施形態を説明するための擬似コードを示す。
【
図17】
図17は、
図16の実施形態に従う係数の量子化インデックスの表現を示す概略図である。
【
図18-1】
図18-1は、変換係数ブロックを符号化するための第3の実施形態を示す擬似コードを示す。
【
図18-2】
図18-2は、変換係数ブロックを符号化するための第3の実施形態を示す擬似コードを示す。
【
図19-1】
図19-1は、変換係数ブロックを符号化するための第4の実施形態を示す擬似コードを示す。
【
図19-2】
図19-2は、変換係数ブロックを符号化するための第4の実施形態を示す擬似コードを示す。
【発明を実施するための形態】
【0008】
以下に説明する実施の形態に従って、変換符号化は、サンプルのセットを変換するために使用される。従属量子化は結果として生じる変換係数を量子化するために使用され、得られた量子化インデックスのエントロピー符号化、すなわちコンテキスト適応算術符号化が行われる。デコーダ側で、再構成されたサンプルのセットは、量子化インデックスおよび変換係数の従属した再構成の復号に対応することによって得られ、逆変換はサンプルを生じる。サンプルは画像またはビデオの一部とすることができ、特定の画像ブロックを記述することができる。もちろん、他の可能性も同様に存在する。以下の実施形態の説明は、主に、イメージおよびビデオコーデックにおける予測誤差サンプルのブロックのロッシー符号化を対象としているが、実施形態はロッシー符号化の他の領域に適用することもできる。特に、矩形ブロックを形成するサンプルのセットに対する制限は存在せず、予測誤差サンプル(すなわち、オリジナルと予測信号との間の差)を表すサンプルのセットにも制限はない。
【0009】
すべての最新のビデオコーデック、例えば、国際的なビデオ符号化規格、H.264|MPEG-4 AVC および H.265|MPEG-H HEVCなどは、ハイブリッドビデオ符号化の基本的なアプローチに従う。ビデオ画像はブロックに分割され、ブロックのサンプルはイントラピクチャ予測またはインター予測を使用して予測され、結果として生じる予測誤差信号(オリジナルのサンプルと予測信号のサンプルとの差)は、変換符号化を使用して符号化される。
【0010】
図1は、典型的な最新のビデオエンコーダの単純化されたブロック図を示す。ビデオシーケンスのビデオ画像は、符号化順序と呼ばれる、特定の順序で符号化される。画像の符号化順序は、キャプチャおよび表示順序とは異なる場合がある。実際の符号化のために、それぞれのビデオ画像はブロックに分割される。ブロックは、特定の色彩構成要素の矩形領域のサンプルを含む。同じ矩形領域に対応するすべての色彩構成要素のブロックの実体(エンティティ)は、しばしば、ユニットと呼ばれる。H.265|MPEG-H HEVCで、ブロック分割の目的に依存して、それは符号化ツリーブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)および変換ブロック(TB)の間で区別される。関連するユニットは、符号化ツリーユニット(CTU)、符号化ユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)と呼ばれる。
【0011】
典型的には、ビデオ画像は、最初に、固定サイズのユニット(すなわち、すべての色彩構成要素のために整列された固定サイズのブロック)に分割される。H.265|MPEG-H HEVCにおいて、これらの固定サイズのユニットは、符号化ツリーユニット(CTU)と呼ばれる。各CTUは、さらに、複数の符号化ユニット(CU)に分割されてもよい。符号化ユニットは、符号化モード(例えば、イントラまたはインターピクチャ符号化)が選択されるエンティティである。H.265|MPEG-H HEVCにおいて、1つ以上のCUへのCTUの分解は、四分木(QT)シンタックスによって特定され、ビットストリームの一部として送信される。CTUのCUは、いわゆるzスキャン順序で処理される。すなわち、分割の結果生じる4つのブロックは、ラスタスキャン順序で処理され、ブロックのいずれかがさらに分割される場合には、より高い分割レベルの次のブロックが処理される前に、対応する4つのブロック(含まれるより小さいブロックを含む)が処理される。
【0012】
CUがイントラ符号化モードで符号化される場合には、輝度信号についてのイントラ予測モード、および、ビデオ信号が色差構成要素を含む場合には、色差信号についての別のイントラ予測モードが送信される。ITU-T H.265|MPEG-H HEVCにおいて、CUサイズが(シーケンスパラメータセットでシグナリングされるように)最小のCUサイズに等しい場合、輝度ブロックは4つの等しいサイズのブロックに分割されうり、その場合、これらのブロックの各々について、別個の輝度イントラ予測モードが送信される。実際のイントラ予測および符号化は、変換ブロックに基づいて行われる。イントラピクチャ符号化CUの各変換ブロックについて、予測信号は同じ色彩構成要素の既に再構成されたサンプルを使用して導出される。変換ブロックについての予測信号を生成するために使用されるアルゴリズムは、送信されたイントラ予測モードによって決定される。
【0013】
インターピクチャ符号化モードで符号化されるCUは、さらに、複数の予測ユニット(PU)に分割されてもよい。予測ユニットは輝度と、カラービデオの場合、2つの関連する色差ブロック(同じピクチャ領域をカバーする)とのエンティティであり、予測パラメータの単一のセットが使用される。CUを単一の予測ユニットとして符号化されてもよく、もしくは、2つの非正方形(対称および非対称分割がサポートされる)または4つの正方形の予測ユニットに分割されてもよい。各PUについて、動きパラメータの個々のセットが送信される。各セットの動きパラメータは、動き仮説の数(H.265|MPEG-H HEVCでは、1つまたは2つ)と、各動き仮説について、参照ピクチャ(参照ピクチャインデックスを介して参照ピクチャのリストに示される)と関連する動きベクトルとを含む。さらに、H.265|MPEG-H HEVCはいわゆるマージモードを提供し、動きパラメータが明示的に送信されず、空間的または時間的に近傍のブロックの動きパラメータに基づいて導出される。CUまたはPUがマージモードで符号化される場合、動きパラメータ候補のリスト(このリストは空間的および時間的に近傍のブロックの動きデータを使用して導出される)のインデックスのみが送信される。インデックスは、使用される動きパラメータのセットを完全に決定する。インター符号化PUについての予測信号は、動き補償予測によって形成される。各動き仮説(参照ピクチャおよび動きベクトルによって特定される)に対して、予測信号は特定された参照ピクチャ内の変位されたブロックによって形成され、現在のPUに対する変位は、動きベクトルによって特定される。変位は、典型的には、サブサンプル精度(H.265|MPEG-H HEVCでは、動きベクトルは4分の1の輝度サンプルの精度を有する)で特定される。非整数動きベクトルの場合、再構成された参照ピクチャを挿入することによって(典型的には、分離可能なFIRフィルタを使用する)予測信号が生成される。多くの仮説予測を有するPUの最終予測信号は、個々の動き仮説について、予測信号の重み付けされた和によって形成される。典型的には、同じセットの動きパラメータが、PUの輝度および色差ブロックのために使用される。最新のビデオ符号化規格が参照ピクチャに対する現在の領域(サンプルのブロック)の動きを特定するために並進変位ベクトルを使用しても、高次の動きモデル(例えば、アフィン動きモデル)を用いることも可能である。その場合、追加の動きパラメータが動き仮説のために送信されなければならない。
【0014】
イントラピクチャおよびインターピクチャ符号化CUの両方について、予測誤差信号(残差信号とも呼ばれる)は、典型的には、変換符号化を介して送信される。H.265|MPEG-H HEVCでは、CUの輝度残差サンプルのブロックならびに色差残差サンプルのブロック(存在する場合)は、変換ブロック(TB)に分割される。変換ブロックへのCUの分割は四分木シンタックスによって示され、残差四分木(RQT)とも呼ばれる。結果として生じる変換ブロックは変換符号化を使用して符号化される:2d変換が残差サンプルのブロックに適用され、結果として生じる変換係数は独立スカラー量子化を使用して量子化され、結果として生じる変換係数レベル(量子化インデックス)はエントロピー符号化される。PおよびBスライスでは、CUシンタックスの開始時に、skip_flagが送信される。このフラグが1に等しい場合、対応するCUはマージモード(すなわち、merge_flagが1に等しいと推定される)で符号化された単一の予測ユニットから成ることを示し、すべての変換係数が0に等しい(すなわち、再構成信号が予測信号に等しい)ことを示す。その場合、merge_idxのみがskip_flagに加えて送信される。skip_flagが0に等しい場合、予測モード(インターまたはイントラ)がシグナリングされ、上述のシンタックスの特徴が続く。
【0015】
既に符号化されたピクチャは、後続のピクチャにおけるブロックの動き補償予測のために使用されてもよいので、ピクチャはエンコーダにおいて完全に再構成されなければならない。ブロックの再構成された予測誤差信号(量子化インデックスを与えられた変換係数を再構成することおよび逆変換によって得られる)は対応する予測信号に加えられ、その結果が現在のピクチャについてのバッファに書き込まれる。ピクチャのすべてのブロックが再構成された後、1つ以上のループ内フィルタを適用することができる(例えば、デブロッキングフィルタおよびサンプル適応オフセットフィルタ)。その後、最終的な再構成されたピクチャは、復号されたピクチャバッファに格納される。
【0016】
以下に説明する実施形態は、予測誤差に関するものなどの変換係数ブロックを符号化するための概念を提示する。概念は、イントラピクチャおよびインターピクチャ符号化ブロックの両方に適用可能である。また、非矩形のサンプル部の変換符号化にも適用可能である。従来の変換符号化とは対照的に、変換係数は独立して量子化されない。むしろ、それらは従属量子化を使用して量子化される。従属量子化によれば、特定の変換係数に対する利用可能な再構成レベルのセットが、他の変換係数に対して選択された量子化インデックスに依存する。
【0017】
全ての主要なビデオ符号化規格(最新の規格H.265|MPEG-H HEVCを含む)は、予測誤差サンプルのブロックを符号化するための変換符号化の概念を利用する。ブロックの予測誤差サンプルは、ブロックについてのオリジナル信号のサンプルと予測信号のサンプルとの間の差を表す。予測信号は、イントラピクチャ予測によって(その場合には、現在のブロックについての予測信号のサンプルが同じピクチャ内の近傍のブロックの既に再構成されたサンプルに基づいて導出される)、または、インターピクチャ予測によって(その場合には、予測信号のサンプルが既に再構成されたピクチャのサンプルに基づいて導出される)得られる。オリジナルの予測誤差信号のサンプルは、現在のブロックについてのオリジナル信号のサンプル値から予測信号のサンプルの値を引き算することによって得られる。
【0018】
サンプルブロックの変換符号化は、線形変換、スカラー量子化および量子化インデックスのエントロピー符号化からなる。エンコーダ側で(
図2aを参照)、オリジナルサンプルのN×Mブロックが線形分析変換Aを使用して変換される。その結果は変換係数のN×Mブロックである。変換係数t
kは、異なる信号空間(または、異なる座標系)におけるオリジナルの予測誤差サンプルを表す。N×M変換係数は、N×M独立スカラー量子化器を使用して量子化される。各変換係数t
kは量子化インデックスq
kにマップされ、変換係数レベルとも呼ばれる。得られた量子化インデックスq
kはエントロピー符号化され、ビットストリームに書き込まれる。
【0019】
図2bに示されるデコーダ側では、変換係数レベルq
kは受信されたビットストリームから復号される。各変換係数レベルq
kは、再構成された変換係数t′
kにマップされる。再構成されたサンプルのN×Mブロックは、線形合成変換Bを使用して再構成された変換係数のブロックを変換することによって得られる。
【0020】
【0021】
典型的な予測誤差信号の場合、信号エネルギーが少数の変換係数に集中するという効果を変換は有する。オリジナルの予測誤差サンプルと比較して、結果として生じる変換係数間の統計的依存性が低減される。
【0022】
最新のビデオ符号化規格では、分離可能な離散コサイン変換(タイプII)またはその整数近似が使用される。しかし、変換は変換符号化システムの他の態様を変更することなく容易に置換し得る。文献又は標準文書に提案されてきた改善の例は、以下のものが含まれる。
●イントラピクチャ予測ブロック(場合によっては、イントラピクチャ予測モードおよび/またはブロックサイズに依存する)のための離散サイン変換(DST)の使用。なお、H.265|MPEG-H HEVCは、既にイントラピクチャ予測4×4変換ブロックのためのDSTを含むことに留意されたい。
●切り替え変換:エンコーダは予め定義された変換のセットのうち、実際に使用される変換を選択する。利用可能な変換のセットは、エンコーダとデコーダの両方で既知であり、利用可能な変換のリストにインデックスを使用して効率的にシグナリングし得る。利用可能な変換のセットおよびリストにおけるそれらの順序付けは、選択されたイントラ予測モードのような、ブロックに対する他の符号化パラメータに依存することができる。特別な場合、使用される変換はイントラ予測モードのようにパラメータを符号化することによって完全に決定されるので、変換を特定するシンタックス要素が送信される必要はない。
●非分離変換:エンコーダおよびデコーダにおいて使用される変換は、非分離変換を表す。切り替え変換の概念は、1つ以上の非分離変換を含んでもよいことに留意されたい。複雑な理由により、非分離変換の使用を特定のブロックサイズに制限することができる。
●マルチレベル変換:実際の変換は2つ以上の変換ステージから構成される。第1の変換ステージは、計算的に複雑さの低い分離可能な変換から構成することができる。そして、第2のステージでは、結果として生じる変換係数のサブセットが非分離変換を使用してさらに変換される。それは変換ブロック全体に対する非分離変換と比較して、より複雑な非分離変換がより少ない数のサンプルに適用されるという利点を2ステージアプローチは有する。マルチレベル変換の概念は、切り替え変換の概念と効率的に組み合わすことができる。
【0023】
変換係数はスカラー量子化器を使用して量子化される。量子化の結果として、変換係数の許容可能な値のセットが低減される。換言すれば、変換係数はいわゆる再構成レベルの加算可能なセット(実際には、有限のセット)にマップされる。再構成レベルのセットは、可能な変換係数値のセットの適切なサブセットを表す。以下のエントロピー符号化を単純化するために、許容可能な再構成レベルは量子化インデックス(変換係数レベルとも呼ばれる)によって表され、ビットストリームの一部として送信される。デコーダ側では、量子化インデックス(変換係数レベル)は再構成された変換係数にマップされる。再構成された変換係数の可能な値は、再構成レベルのセットに対応する。エンコーダ側では、スカラー量子化の結果は変換係数レベル(量子化インデックス)のブロックである。
【0024】
【0025】
この文脈では、用語“独立スカラー量子化”は、任意の変換係数についての量子化インデックスqが与えられる場合、関連する再構成された変換係数t’を他の変換係数についてのすべての量子化インデックスとは独立して決定することができるという特性を示す。
【0026】
【0027】
H.262|MPEG-2ビデオのような古いビデオ符号化規格も、再構成レベル ゼロと最初の非ゼロ再構成レベルとの間の距離が公称量子化ステップサイズと比較して(例えば、公称量子化ステップサイズΔの2分の3まで)増加される修正されたURQを特定する。
【0028】
【0029】
スライスQPは、典型的には、スライスヘッダ内で送信される。一般に、ブロックに基づいて量子化パラメータQPを修正することが可能である。その目的のために、DQP(デルタ量子化パラメータ)を送信することができる。使用された量子化パラメータは、送信されたDQPおよび予測されたQP値によって決定され、既に符号化された(典型的には近傍の)ブロックのQPを使用して導出される。
【0030】
【0031】
量子化重み行列の主要な目的は、知覚的に意味のある方法で量子化雑音を導入する可能性を提供することである。適切な重み行列を使用することによって、人間の視覚の空間コントラスト感度を利用し、ビットレートと主観的な再構成品質との間の良好なトレードオフを達成することができる。それにもかかわらず、多くのエンコーダは、いわゆるフラット量子化マトリックス(高レベルのシンタックス要素を使用して効率的に送信され得る)を使用する。この場合、同じ量子化ステップサイズΔがブロック内のすべての変換係数に対して使用される。したがって、量子化ステップサイズは、量子化パラメータQPによって完全に特定される。
【0032】
変換係数レベル(変換係数についての量子化インデックス)のブロックは、エントロピー符号化される(すなわち、ビットストリームの一部として損失のない方法で送信される)。線形変換は線形依存性を減少させることしかできないので、変換係数レベルのエントロピー符号化は、典型的には、ブロック内の変換係数レベル間に残る非線形依存性を利用して効率的な符号化ができるように設計される。よく知られている例は、MPEG-2ビデオにおけるrun-level符号化、H.263およびMPEG-4映像におけるrun-level-last符号化、H.264|MPEG-4 AVCにおけるコンテキスト適応可変長符号化(CAVLC)ならびにH.264|MPEG-4 AVCおよびH.265|MPEG-H HEVCにおけるコンテキスト適応型バイナリ算術符号化(CABAC)である。
【0033】
最新のビデオ符号化規格H.265|MPEG-H HEVCで特定されたCABACは、多種多様な変換ブロックサイズに対して適用することができる一般的な概念に従う。4×4サンプルよりも大きい変換ブロックは4×4サブブロックに分割される。分割は、
図4aおよびbに、16×16変換ブロックの例として示されている。
図4aに示される4×4サブブロックの符号化順序、ならびに、
図4bに示されるサブブロック内の変換係数レベルの符号化順序が、一般に、図に示される逆対角スキャンによって特定される。特定のイントラピクチャ予測ブロックについては、水平または垂直スキャンパターンが使用される(実際のイントラ予測モードに依存する)。符号化順序は常に高周波位置で開始する。
【0034】
H.265|MPEG-H HEVCでは、変換係数レベルは4×4サブブロックに基づいて送信される。変換係数レベルの損失のない符号化は、以下のステップを含む。
1.シンタックス要素coded_block_flagが送信され、変換ブロック内に非ゼロ変換係数レベルが存在するか否かをシグナリングする。coded_block_flagが0に等しい場合、さらなるデータは変換ブロックのために符号化されない。
2.符号化順序(例えば、
図4に示されるブロック方向の逆対角スキャン順序)における最初の非ゼロ変換係数レベルのxおよびy座標が送信される。座標の送信は、プレフィックスおよびサフィックス部分に分割される。規格は、シンタックス要素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffixおよびlast_sig_coeff_x_suffixを使用する。
3.符号化順序において最初の非ゼロ変換係数レベルを含む4×4サブブロックから開始して、4×4サブブロックは符号化順序で処理され、サブブロックの符号化は以下の主要なステップを含む:
a.シンタックス要素coded_sub_block_flagが送信され、これはサブブロックが非ゼロ変換係数レベルを含むか否かを示す。最初および最後の4×4サブブロック(すなわち、最初の非ゼロ変換係数レベルまたはDCレベルを含むサブブロック)の場合、このフラグは送信されず、1に等しいと推定される。
b.coded_sub_block_flagを有するサブブロック内のすべての変換係数レベルが1に等しい場合、シンタックス要素significant_coeff_flagは対応する変換係数レベルがゼロに等しくないか否かを示す。このフラグは、その値が既に送信されたデータに基づいて推定できない場合にのみ送信される。特に、このフラグは最初の有意なスキャン位置(送信されたxおよびy座標によって特定される)に対して送信されず、DC係数が(符号化順序において)最初の非ゼロ係数とは異なるサブブロックに位置し、最後のサブブロックに対するすべての他のsignificant_coeff_flagがゼロに等しい場合、DC係数に対して送信されない。
c.significant_coeff_flagを有する最初の8つの変換係数レベルが1に等しい場合(もしあれば)、フラグcoeff_abs_level_greater1_flagが送信される。それは、変換係数レベルの絶対値が1より大きいか否かを示す。
d.coeff_abs_level_greater1_flagを有する最初の変換係数が1に等しい場合(もしあれば)、フラグcoeff_abs_level_greater2_flagが送信される。それは、変換係数レベルの絶対値が2より大きいか否かを示す。
e.significant_coeff_flagを有するすべてのレベルが1に等しい場合(例外は以下に説明される)、シンタックス要素coeff_sign_flagが送信され、変換係数レベルの符号を特定する。
f.絶対値がsignificant_coeff_flag、coeff_abs_level_greater1_flagおよびcoeff_abs_level_greater2_flagの値によって既に完全に特定されていないすべての変換係数レベル(送信されたフラグのいずれかがゼロに等しい場合、絶対値が完全に特定される)について、絶対値の残余(remainder)がマルチレベルシンタックス要素coeff_abs_level_remainingを使用して送信される。
【0035】
H.265|MPEG-H HEVCでは、すべてのシンタックス要素はコンテキスト適応型バイナリ算術符号化(CABAC)を使用して符号化される。すべての非バイナリシンタックス要素は、ビンとも呼ばれる一連のバイナリ決定に最初にマップされる。結果として生じるビンシーケンスは、バイナリ算術符号化を使用して符号化される。その目的のために、各ビンは、コンテキストとも呼ばれる確率モデル(バイナリ確率質量関数)に関連付けられる。ほとんどのビンについて、コンテキストは適応確率モデルを表し、これは関連するバイナリ確率質量関数が実際に符号化されたビンの値に基づいて更新されることを意味する。条件付きの確率は、既に送信されたデータに基づいて特定のビンのコンテキストを切り替えることによって利用され得る。CABACはいわゆるバイパスモードも含み、固定確率質量関数(0.5,0.5)が使用される。
【0036】
coded_sub_block_flagの符号化のために選択されるコンテキストは、既に符号化された近傍のサブブロックについてのcoded_sub_block_flagの値に依存する。significant_coeff_flagについてのコンテキストは、サブブロック内のスキャン位置(xおよびy座標)、変換ブロックのサイズおよび近傍のサブブロック内のcoded_sub_block_flagの値に基づいて選択される。フラグcoeff_abs_level_greater1_flagおよびcoeff_abs_level_greater2_flagについては、コンテキストの選択は、現在のサブブロックがDC係数を含むか否か、および1に等しいcoeff_abs_level_be_flagが近傍のサブブロックに送信されているか否かに依存する。coeff_abs_level_greater1_flagについては、サブブロックに対して既に符号化されたcoeff_abs_level_greater1_flagの数および値にさらに依存する。
【0037】
符号coeff_sign_flagおよび絶対値の残余coeff_abs_level_remainingは、バイナリ算術符号器のバイパスモードで符号化される。coeff_abs_level_remainingをビンのシーケンス(バイナリ決定)にマップする場合、適応可能な二値化スキームが使用される。二値化は単一のパラメータによって制御され、サブブロックに対して既に符号化された値に基づいて適合される。
【0038】
H.265|MPEG-H HEVCは、いわゆる符号データ隠蔽モードも含み、(特定の条件の下で)サブブロック内の最後の非ゼロレベルに対する符号の送信が省略される。その代わりに、このレベルの符号は対応するサブブロックのレベルに対する絶対値の合計のパリティに埋め込まれる。エンコーダは、適切な変換係数レベルを決定する際にこの態様を考慮しなければならないことに留意されたい。
【0039】
ビデオ符号化規格は、ビットストリームシンタックスおよび再構成プロセスを特定するだけである。オリジナルの予測誤差サンプルの与えられたブロックおよび与えられた量子化ステップサイズに対する変換符号化を考慮する場合、エンコーダは多くの自由度を有する。変換ブロックに対して量子化インデックスqkが与えられると、エントロピー符号化はビットストリームにデータを書き込むための一意に定義されたアルゴリズム(すなわち、算術符号語を構成する)に従わなければならない。しかし、予測誤差サンプルのオリジナルブロックが与えられた量子化インデックスqkを得るためのエンコーダアルゴリズムは、ビデオ符号化規格の範囲外である。さらに、エンコーダは、ブロック単位で量子化パラメータQPを選択する自由度を有する。以下の説明では、量子化パラメータQPおよび量子化重み行列が与えられると想定する。したがって、各変換係数の量子化ステップサイズは既知である。さらに、オリジナルの変換係数tkを得るための特定された合成変換の逆(または、逆に非常に近い近似値)である分析変換をエンコーダが実行すると想定する。これらの条件下でさえ、エンコーダは、各オリジナルの変換係数tkについての量子化インデックスqkを選択する自由度を有する。変換係数レベルの選択は歪み(または再構成/近似品質)およびビットレートの両方を決定するので、使用される量子化アルゴリズムは生成されたビットストリームのレート-歪み性能に実質的な影響を与える。
【0040】
【0041】
【0042】
【0043】
【0044】
【0045】
変換符号化のための修正された概念は、変換係数が独立して量子化されず、再構成されないことである。その代わりに、変換係数の許容可能な再構成レベルは、再構成順序において先行する変換係数について選択された量子化インデックスに依存する。従属スカラー量子化の概念は、修正されたエントロピー符号化と組み合わされ、変換係数に対する確率モデルの選択(または、代替的に、符号語テーブルの選択)が許容可能な再構成レベルのセットに依存する。
【0046】
【0047】
変換係数の従属スカラー量子化は、N次元単位体積ごとの再構成ベクトルの与えられた平均数に対して、変換係数の与えられた入力ベクトルと最も近い利用可能な再構成ベクトルとの間の距離の期待値が低減されるという効果を有する。結果として、変換係数の入力ベクトルとベクトル再構成変換係数との間の平均歪みは、与えられた平均ビット数に対して低減され得る。ベクトル量子化では、この効果は空間充填利得と呼ばれる。変換ブロックに対して従属スカラー量子化を使用して、高次元ベクトル量子化についての潜在的な空間充填利得の大部分を利用することができる。そして、ベクトル量子化とは対照的に、再構成プロセス(または、復号プロセス)の実装の複雑さは、独立スカラー量子化器を用いた従来の変換符号化に匹敵する。
【0048】
【0049】
従来の変換符号化のように、本明細書で概説された実施形態による変換符号化は分析変換、量子化アルゴリズムおよびエントロピー符号化をさらに含む。分析変換としては、典型的に、合成変換の逆(または、逆に非常に近い近似値)が使用され、エントロピー符号化は通常、与えられたエントロピー復号プロセスを一意に特定する。しかし、従来の変換符号化と同様に、オリジナルの変換係数が与えられる量子化インデックスを選択する多くの自由度がある。
【0050】
変換係数の従属量子化は、変換係数に対して利用可能な再構成レベルのセットが(同じ変換ブロック内の)再構成順序で先行する変換係数の選択された量子化インデックスに依存するという概念を指す。
【0051】
再構成レベルの複数のセットが予め定義され、符号化順序で先行する変換係数の量子化インデックスに基づいて、予め定義されたセットのうちの1つが現在の変換係数を再構成するために選択される。
【0052】
【0053】
一実施形態では、変換係数に対する従属スカラー量子化は、ちょうど2つの異なるセットの再構成レベルを使用する。そして、変換係数tkに対する2つのセットの全ての再構成レベルは、この変換係数についての量子化ステップサイズΔk(少なくとも部分的に、ブロックベースの量子化パラメータによって決定される)の整数倍を表す。量子化ステップサイズΔkは、両方のセットにおける許容可能な再構成値に対するスケーリング係数を表すだけであることに留意されたい。変換ブロック内の異なる変換係数tkについての可能な個々の量子化ステップサイズΔk(および、個々のスケーリング係数)を除いて、同じ2つセットの再構成レベルがすべての変換係数に対して使用される。
【0054】
2つのセットの再構成レベルのためのより好ましい構成が
図7に示される。第1の量子化セットに含まれる再構成レベル(図ではセット0としてラベル付けされる)は、量子化ステップサイズの偶数の整数倍を表す。第2の量子化セット(図ではセット1としてラベル付けされる)は量子化ステップサイズの奇数の整数倍をすべて含み、さらにゼロに等しい再構成レベルを含む。両方の再構成セットはほとんどゼロで対称であることに留意されたい。ゼロに等しい再構成レベルは両方の再構成セットに含まれ、そうでない場合は、再構成セットは互いに素である。両方の再構成セットの結合は、量子化ステップサイズの全ての整数倍を含む。
【0055】
エンコーダが許容可能な再構成レベルの中から選択する再構成レベルは、ビットストリーム内で指示される、または、送信されなければならない。従来の独立スカラー量子化のように、これは、変換係数レベルとも呼ばれるいわゆる量子化インデックスを使用して達成することができる。量子化インデックス(または変換係数レベル)は、量子化セット内(すなわち、再構成レベルのセット内)の利用可能な再構成レベルを一意に識別する整数番号である。量子化インデックスは、ビットストリームの一部として(エントロピー符号化技術を使用して)デコーダに送られる。デコーダ側では、再構成された変換係数を再構成レベルの現在のセット(符号化/再構成順序において先行する量子化インデックスによって決定される)と、現在の変換係数について送信された量子化インデックスとに基づいて一意に計算することができる。
【0056】
図7の再構成レベルは、関連する量子化インデックスでラベル付けされる(量子化インデックスは、再構成レベルを表す円の下の数によって与えられる)。0に等しい量子化インデックスは0に等しい再構成レベルに割り当てられる。1に等しい量子化インデックスは0より大きい最小再構成レベルに割り当てられ、2に等しい量子化インデックスは0より大きい次の再構成レベルに割り当てられる(すなわち、0より大きい第2の最小再構成レベル)など。すなわち言い換えると、0より大きい再構成レベルは、0より大きい整数番号(すなわち、1,2,3,などを有する)で、それらの値の昇順にラベル付けされる。同様に、量子化インデックス-1は0より小さい最大再構成レベルに割り当てられ、量子化インデックス-2は0より小さい次の(すなわち、2番目に大きい)再構成レベルに割り当てられるなど。すなわち言い換えると、0より小さい再構成レベルは、0より小さい整数番号(すなわち、-1,-2,-3など)で、それらの値の降順にラベル付けされる。
量子化ステップサイズの整数倍を表す再構成レベルの使用は、デコーダ側での変換係数の再構成のための計算的に複雑性が低いアルゴリズムを可能にする。これは、以下に
図7のより好ましい例に基づいて示される。第1の量子化セットは量子化ステップサイズの偶数の整数倍をすべて含み、第2の量子化セットは量子化ステップサイズの奇数の整数倍のすべてと、0に等しい再構成レベル(両方の量子化セットに含まれる)とを含む。変換係数の再構成プロセスは、
図8の擬似コードで特定されるアルゴリズムと同様に実施し得る。
【0057】
【0058】
【0059】
【0060】
図8と比較して
図9の他の(単にうわべの)変更は、2つの再構成レベルのセットの間の切り替えが三項if-then-else演算子( a ? b : c )を使用して実施されることであり、それはCプログラミング言語のようなプログラミング言語から知られている。
【0061】
上述した再構成レベルのセットの選択に加えて、変換符号化での従属スカラー量子化における別のタスクは、定義された量子化セット(再構成レベルのセット)の間を切り替えるために使用されるアルゴリズムである。使用されたアルゴリズムは、変換係数のN次元空間において(および、そのあと再構成されたサンプルのN次元空間においても)達成され得る“圧縮密度“を決定する。より高い圧縮密度は、最終的に、増大した符号化効率となる。
【0062】
より好ましい実施形態では、量子化セット(セット0およびセット1)の間の遷移は、状態変数によって決定される。再構成順序における第1の変換係数について、状態変数は予め定義された値に等しく設定される。典型的には、予め定義された値は0に等しい。符号化順序において次の変換係数の状態変数は、更新プロセスによって決定される。特定の変換係数の状態は、再構成順序において先行する変換係数の状態および先行する変換係数の値にのみ依存する。
【0063】
状態変数は4つの可能な値(0,1,2,3)を有していてもよい。一方、状態変数は、現在の変換係数に使用される量子化セットを特定する。量子化セット0は状態変数が0または1に等しい場合およびその場合にのみ使用され、量子化セット1は状態変数が2または3に等しい場合およびその場合にのみ使用される。一方、状態変数は量子化セット間の可能な遷移も特定する。
【0064】
例えば、特定の変換係数の状態は再構成順序において先行する変換係数の状態および先行する変換係数レベルの値のバイナリ関数にのみ依存してもよい。バイナリ関数は以下ではパスと呼ばれる。特に好ましい実施形態では、以下の状態遷移表が使用され、ここで、“パス”は再構成順序において先行する変換係数レベルの前記バイナリ関数を指す。
【0065】
【0066】
【0067】
従属スカラー量子化の状態遷移の概念は、デコーダにおける変換係数の再構成のための複雑性の低い実装を可能にする。単一の変換ブロックの変換係数の再構成プロセスのための好ましい例は
図10に示され、Cスタイル擬似コードを使用する。
【0068】
図10の擬似コードでは、インデックスkは変換係数の再構成順序を特定する。例示的なコードにおいて、インデックスkは再構成順序において降順であることに留意されるべきである。最後の変換係数はk = 0に等しいインデックスを有する。最初のインデックスkstartは、最初の再構成された変換係数の再構成インデックス(または、より正確には、逆再構成インデックス)を特定する。変数kstartは、変換ブロックにおける変換係数の数から1を引いた値に等しく設定されてもよく、または、(例えば、最初の非ゼロ量子化インデックスの位置が適用されたエントロピー符号化方法において送信される場合)符号化/再構成順序において最初の非ゼロ量子化インデックスのインデックスに等しく設定されてもよい。後者のケースでは、全ての先行する変換係数(インデックスk > kstartを有する)は0に等しいと推定される。各単一変換係数の再構成プロセスは、
図9の例と同じである。
図9の例の場合のように、量子化インデックスはlevel[k]によって表され、関連する再構成された変換はtrec[k]によって表される。状態変数はstateによって表される。一次元の表setId[]は状態変数の異なる値に関連付けられた量子化セットを指定し、二次元の表state_trans_table[][]は、現在の状態(第1の引数)およびパス(第2の引数)が与えられた状態遷移を指定する。一例として、パスは量子化インデックスのパリティによって(ビット単位および演算子&を使用して)与えられ得るが、他の概念が可能である。別の例として、パスは変換係数がゼロに等しいか等しくないかを指定することができる。Cスタイルシンタックスにおける表の例は以下の通りである(これらの表は上記の表1と同一である)。
【0069】
setId[4] = { 0, 0, 1, 1 }
state_trans_table[4][2] = { {0,2}, {2,0}, {1,3}, {3,1} }
【0070】
次の状態を決定するための表state_trans_table[][]を使用する代わりに、同じ結果を生じる算術演算を使用することができる。同様に、表setld[]は算術演算を使用して実装することもできる。あるいは、一次元の表setId[]を使用して探索する表と符号関数との組み合わせは、算術演算を使用して実装され得る。
【0071】
従属スカラー量子化の主な態様は、変換係数に対する許容可能な再構成レベルの異なるセット(量子化セットとも呼ばれる)が存在することである。現在の変換係数についての量子化セットは、先行する変換係数についての量子化インデックスの値に基づいて決定される。
図7の例を検討し、2つの量子化セットを比較する場合、0に等しい再構成レベルと近傍の再構成レベルとの間の距離がセット1よりもセット0において大きくなることは明らかである。したがって、セット0が使用される場合、量子化インデックスが0に等しい確率はより大きく、セット1が使用される場合、それはより小さい。この効果は、量子化セットまたはより一般的には現在の量子化インデックスに使用される状態に基づく確率モデルを切り替えることによってエントロピー符号化において利用されてもよい。
【0072】
符号語テーブルまたは確率モデルの適切な切り替えのために、すべての先行する量子化インデックスのパス(量子化インデックスのバイナリ関数)が、現在の量子化インデックス(または、現在の量子化インデックスの対応するバイナリ決定)をエントロピー復号する際に既知でなければならないことに留意されたい。
【0073】
量子化インデックスは、H.264|MPEG-4 AVCまたはH.265|MPEG-H HEVCと同様のバイナリ算術符号化を使用して符号化されてもよい。その目的のために、非バイナリ量子化インデックスは、まず、一連のバイナリ決定(通常、ビンと呼ばれる)にマップされる。
【0074】
以下では、どのように、すなわち、どのような順序で、どのようなコンテキストを使用して、従属量子化に起因する量子化インデックスを二値化および算術符号化するかについて、様々な例が記載される。ここで、量子化インデックスは絶対値および0より大きい絶対値については符号として送信される。符号は単一のビンとして送信されるが、以下に説明する例においてそれ自体を明らかにする一連のバイナリ決定に絶対値をマップするための多くの可能性がある。以下の説明は、まず、符号化順序および二値化スキームに焦点を合わせ、したがって、様々な例を提示する。その後、コンテキストモデリングのための異なる例が説明される。後者は、符号化順序および二値化スキームに関連する前者の実施形態と組み合わされてもよいが、前者の実施形態は後者の例に限定されない。
【0075】
実施例1
以下のバイナリおよび非バイナリシンタックス要素が送信される:
●sig_flag:変換係数レベルの絶対値が0より大きいか否かを指定する。
●sig_flagが1に等しい場合、gt1_flag:変換係数レベルの絶対値が1より大きいか否かを指定する。
●gt1_flagが1に等しい場合、gt2_flag:変換係数レベルの絶対値が1より大きいか否かを指定する。
●gt2_flagが1に等しい場合、remainder:絶対レベルの残余を指定する非バイナリシンタックス要素である。このシンタックス要素は、例えば、ゴロム・ライス符号を使用して算術符号化エンジンのバイパスモードで送信される。
現在のシンタックス要素が0に等しいと推定されない。デコーダ側では、変換係数レベルの絶対値は次のように再構成される:
absLevel = sig_flag + gt1_flag + gt2_flag + remainder
追加のgtX_flagが送信されてもよく、またはgt2_flagが省略されてもよく、もしくは、gt1_flagおよびgt2_flagの両方が省略されてもよい。sig_flagおよびgtX_flagは、適応コンテキストモデルを使用して符号化される。
【0076】
実施例2
以下のバイナリおよび非バイナリシンタックス要素が送信される:
●sig_flag:変換係数レベルの絶対値が0より大きいか否かを指定する。
●sig_flagが1に等しい場合、gt1_flag:変換係数レベルの絶対値が1より大きいか否かを指定する。
●gt1_flagが1に等しい場合
○par_flag:変換係数レベルの絶対値の残余(すなわち、絶対値-2)のパリティを指定する。
○remainder:絶対レベルの残余(すなわち、(絶対値-2-par_flag)/2)を指定する非バイナリシンタックス要素である。このシンタックス要素は、例えば、ゴロム・ライス符号を使用して算術符号化エンジンのバイパスモードで送信される。
現在のシンタックス要素が0に等しいと推定されない。デコーダ側では、変換係数レベルの絶対値は次のように再構成される:
absLevel = sig_flag + gt1_flag + par_flag + 2 * remainder
追加のgtX_flagが送信されてもよく、またはgt1_flagが省略されてもよい。例として上記のremainderの代わりに、gt2_flag(絶対値が3よりも大きいか否かを指定する)および(gt2_flagが1に等しい場合)修正されたremainder(すなわち、(絶対値-3-par_flag)/2)を送信することができる。そのあと、絶対値は以下のように構成され得る。
absLevel = sig_flag + gt1_flag + par_flag + 2 * ( gt2_flag + remainder )
sig_flag、gtX_flagおよびpar_flagは、適応コンテキストモデルを使用して符号化される。
【0077】
実施例3
以下のバイナリおよび非バイナリシンタックス要素が送信される:
●sig_flag:変換係数レベルの絶対値が0より大きいか否かを指定する。
●sig_flagが1に等しい場合
○par_flag:変換係数レベルの絶対値の残余(すなわち、絶対値-1)のパリティを指定する。
○gt1_flag:変換係数レベルの絶対値の残余(すなわち、(絶対値-1-par_flag)/2)が0より大きいか否かを指定する。
●gt1_flagが1に等しい場合、gt2_flag:変換係数レベルの絶対値の残余(すなわち、(絶対値-1-par_flag)/2)が1より大きいか否かを指定する。
●gt2_flagが1に等しい場合、remainder:絶対レベルの残余(すなわち、(絶対値-1-par_flag)/2-2)を指定する非バイナリシンタックス要素である。このシンタックス要素は、例えば、ゴロム・ライス符号を使用して算術符号化エンジンのバイパスモードで送信される。
現在のシンタックス要素が0に等しいと推定されない。デコーダ側では、変換係数レベルの絶対値は次のように再構成される:
absLevel = sig_flag + par_flag + 2 * (gt1_flag + gt2_flag + remainder)
追加のgtX_flagが送信されてもよく、またはgt2_flagが省略されてもよい。sig_flag、gtx_flagおよびpar_flagは、適応コンテキストモデルを使用して符号化される。
【0078】
さらに二値化は可能である。
【0079】
コンテキストモデリングに関して、二値化、ビン/係数順序付けおよびコンテキスト導出の間の相互関係を示すために、以下の例が提供される。特定の例では、変換ブロックの量子化インデックスを送信するためのシンタックスは、量子化インデックスがゼロに等しいか否か、またはそれが0に等しくないか否か(上記で紹介されたsig_flag)を指定するビンを含む。このビンを符号化するために使用される確率モデルは、2つ以上の確率モデルのセットの中から選択されてもよい。使用される確率モデルの選択は、現在の状態変数に依存する(状態変数は使用される量子化セットを意味する)。この場合、異なるセットの確率モデルが状態変数のすべての可能な値に対して使用されてもよく、または、異なるセットの確率モデルが各クラスタに対して使用されてもよい(例えば、状態0または1の確率モデルの第1のセット、状態2の確率モデルの第2のセットおよび状態3の確率モデルの第3のセット;もしくは、代替的に、状態0または1の確率モデルの第1のセット、状態2または3の確率モデルの第2のセット)。
【0080】
他のバイナリシンタックス要素(例えば、gt1_flagまたはpar_flag)のための選択された確率モデルも現在の状態変数の値に依存することも可能である。
【0081】
変換係数の従属量子化がエントロピー符号化と組み合わされる場合、量子化インデックス(量子化レベルとも呼ばれる)のバイナリ表現の1つ以上のビンに対する確率モデルの選択は、現在の量子化インデックスの状態変数に依存することが利点である。状態変数は、符号化および再構成順序で先行する変換係数のための量子化インデックス(または量子化インデックスを表すビンのサブセット)によって与えられる。
【0082】
特に、有利には、確率モデルの説明された選択が以下のエントロピー符号化の態様のうちの1つ以上と組み合わされる:
●変換ブロックのためのフラグの送信、それは変換ブロックに対する量子化インデックスのいずれかがゼロに等しくないか、または変換ブロックのためのすべての量子化インデックスがゼロに等しいか否かを指定する。
●複数のサブブロック内の変換ブロックの係数の分割(少なくとも、ブロックの寸法または含まれるサンプル数によって与えられる予め定義されたサイズを超える変換ブロックについて)。これは
図12aにおける変換ブロック10について例示的に示されており、ここで、ブロックの係数12はサブブロック14に細分され、ここでは例示的にサイズ4×4の係数である。変換ブロックが複数のサブブロック14に分割される場合、そのあと1つ以上のサブブロックについて、(既に送信されたシンタックス要素に基づいて推定されない限り)フラグが送信され、サブブロックが非ゼロ量子化インデックスを含むか否かを指定する。サブブロックはビンの符号化順序を指定するために使用されてもよい。例えば、符号化ビンをサブブロック14に分割することができ、サブブロックのすべてのビンは、次のサブブロック14のいずれかのビンが送信される前に符号化される。しかし、特定のサブブロック14のビンは、このサブブロック内の変換係数にわたって複数のパスで符号化され得る。例えば、サブブロックに対する量子化インデックスの絶対値を指定するすべてのビンは、いずれかの符号ビンが符号化される前に符号化されてもよい。絶対値のためのビンは、上述したように、複数のパスに分割されることもできる。
●符号化順序における最初の非ゼロ位置の送信。位置は
図12aに示されており、太字で示される。それは、変換係数の二次元配列内の位置を指定するxおよびy座標として送信することができ、それはインデックスとしてスキャン順序で送信することができ、または他の任意の手段によって送信され得る。
図12aに示すように、符号化順序における最初の非ゼロ量子化インデックス(または、変換係数)の送信された位置は、符号化順序において識別された係数に先行するすべての変換係数12(
図12aにおいて白色にマークされる)がゼロに等しいと推定されることを指定する。さらにデータは、指定された位置(
図12aにおいて黒色/太字でマークされる)すなわち、符号化順序の最初の位置における係数、および、符号化順序においてこの係数に続く係数(
図12aにおいて斜線でマークされる)のために送信されるだけである。
図12aの例は、4×4サブブロック14を有する16×16変換ブロック10を示す;使用される符号化順序は、H.265|MPEG-H HEVCで指定されたサブブロック単位の対角スキャンである。指定された位置(符号化順序では最初の非ゼロ係数)における量子化インデックスの符号化は、わずかに変更されてもよいことに留意されるべきである。例えば、量子化インデックスの絶対値の二値化は量子化インデックスが0に等しくないか否かを指定するビンを含む場合、このビンは指定された位置で量子化インデックスを送信しない(係数が0に等しくないことが既に知られている)、代わりに、ビンは1に等しいと推定される。
●量子化インデックスの絶対値の二値化は、量子化インデックスが0に等しくないか否かを指定する適応的に符号化されたビンを含む。このビンを符号化するために使用される確率モデル(コンテキストと呼ばれる)は、候補の確率モデルのセットの中から選択される。選択された候補の確率モデルは、現在の量子化インデックスの状態変数によって決定されてもよく、さらに、変換ブロックについて既に送信された量子化インデックスによって決定されてもよい。好ましい実施形態では、状態変数は、利用可能な確率モデルのサブセット(コンテキストセットとも呼ばれる)を決定し、既に符号化された量子化インデックスの値は、このサブセット(コンテキストセット)内の使用される確率モデルを決定する。
好ましい実施形態では、コンテキストセット内の使用される確率モデルは、現在の変換係数50の局所近傍(local neighborhood)52における既に符号化された量子化インデックスの値、すなわち、そのビンが現在符号化/復号されている係数の値に基づいて決定され、同じ必要性についてのコンテキストが決定される。このような局所近傍52の例が
図12bに示される。図中では、現在の変換係数50は黒色でマークされ、局所近傍52は斜線でマークされる。以下では、局所近傍52内の近傍の係数51の量子化インデックスの値に基づいて導出することができ、そのあと、事前に決定されたコンテキストセットの確率モデルを選択するために使用することができるいくつかの例示的な処理が列挙される。
さらに、デコーダに利用可能な他のデータは、事前に決定されたコンテキストセット内の確率モデルを導出するために(明示的にまたは上記に列挙された処理と組み合わせて)使用され得る。このようなデータには、以下のものが含まれる。
○現在の変換係数の位置(x座標、y座標、対角数またはそれらの任意の組み合わせ)
○現在のブロックのサイズ(垂直サイズ、水平サイズ、サンプル数またはそれらの任意の組み合わせ)
○現在の変換ブロックのアスペクト比
●量子化インデックスの絶対値の二値化は、量子化インデックスの絶対値が1より大きいか否かを指定する適応的に符号化されたビンを含む。このビンを符号化するために使用される確率モデル(コンテキストと呼ばれる)は、候補の確率モデルのセットの中から選択される。選択された確率モデルは、変換ブロックに対する既に送信された量子化インデックスによって決定される。確率モデルを選択するために、(量子化インデックスが0に等しくないか否かを指定するビンについて)上記の方法のいずれかを使用することができる。
【0083】
既に上記で述べたように、係数12の量子化インデックスの二値化のビンの符号化順序は、ブロック10の符号化の効率に影響を与える。例えば、バイナリ決定(ビン)、典型的にはsig_flagのうちの少なくとも1つに対して選択された確率モデルは、現在の状態変数の値に依存する。そして、状態変数は先行する変換係数レベルのバイナリ関数path()によって決定されるので、現在の変換係数に対するsig_flag(または、より一般的には、確率モデルが状態変数に依存するバイナリシンタックス要素)を符号化する場合に、すべての先行する変換係数のためのパスが知られているように、ビンの符号化順序は配置されなければならない。
【0084】
例えば、量子化インデックスの絶対値を指定するすべてのビンを連続的に符号化することができる。すなわち、符号化/再構成順序におけるすべての先行する量子化インデックスのすべてのビン(絶対値に対する)は、現在の量子化インデックスの最初のビンの前に符号化される。符号ビンは、(使用される量子化セットに実際に依存してもよい)変換係数にわたって別個の第2のパスで符号化されていてもなくてもよい。サブブロックの符号ビンは、サブブロックの絶対値に対するビンの後であるが、次のサブブロックに対するいずれかのビンの前に符号化され得る。
【0085】
別の例では、量子化インデックスの絶対値を指定するビンのサブセットのみが、変換係数にわたって第1のパスにおいて連続的に符号化される。しかし、これらのビンは、状態変数を一意に指定する。残りのビンは、変換係数にわたって1つ以上の追加パスにおいて符号化される。パスが量子化インデックスのパリティによって指定されていると想定すると、パリティビンは変換係数にわたって第1のパスに含まれる。残りのビンは、1つ以上の追加パスで送信され得る。本発明の他の実施形態では、同様の概念が使用される。例えば、単項のビンの数は既に送信されたシンボルに基づいて変更すること、または適応することさえすることができる。異なるパスをサブブロックに基づいて使用することができ、この場合、サブブロックのビンは複数のパスで符号化されるが、サブブロックのすべてのビンは次のサブブロックのいずれかのビンが送信される前に送信される。
【0086】
以下において、いくつかの例が複数のパスでバイナリの決定を符号化するために列挙される。
例A:
この例は上述の実施例3の二値化を使用し、パスがパリティによって与えられる。
●パス1:sig_flag, par_flag, gt1_flag
●パス2:gt2_flag
●パス3:remainder
●パス4:sig_flag, par_flag, gt1_flag
例B:
この例は上述の実施例3の二値化を使用し、パスがパリティによって与えられる。
●パス1:sig_flag, par_flag
●パス2:gt1_flag
●パス3:gt2_flag
●パス4:remainder
●パス5:sign bits
例C:
この例は上述の実施例1の二値化を使用し、絶対値が0よりも大きいか否かをパスが特定する。
●パス1:sig_flag
●パス2:gt1_flag
●パス3:gt2_flag
●パス4:remainder
●パス5:sign bits
例D:
この例は上述の実施例2の二値化を使用し、パスがパリティによって与えられる。
●パス1:sig_flag, gt1_flag, par_flag
●パス2:remainder
●パス3:sign bits
例E:
この例は上述の実施例2の二値化を追加のgt2_flagとともに使用し、パスがパリティによって与えられる。
●パス1:sig_flag, gt1_flag, par_flag, gt2_flag
●パス2:remainder
●パス3:sign bits
この例のわずかな修正として、gt2_flagを別々のパスで送信することもできる。
【0087】
別の符号化順序または組み合わせが二値化され、符号化順序が可能である。
【0088】
高スループットのデコーダの実装を可能にするために、可能な限り低い(性能を劣化させずに)コンテキスト符号化ビン(正の符号化ビンとも呼ばれる)の数を維持することが好ましい。これは、特定ビンの最大数を制限することによって(HEVCと同様に)達成され得る。残りの情報は、算術符号化エンジンのバイパスモードを使用して符号化される。
以下に説明するコンテキスト符号化ビンの最大数を低減する方法は、既に上記で提示された以下の態様のうちの1つ以上と組み合わされてもよい:
●変換係数の量子化のための再構成レベルの複数のセット。特に、2つのセット:第1のセットは量子化ステップサイズのすべての偶数の整数倍を含み、第2のセットは量子化ステップサイズのすべての奇数の整数倍およびゼロを含む。
(変換ブロック内の変換係数の少なくとも一部)
●再構成レベルの選択されたセットは、状態変数に依存する。状態変数は、再構成順序において第1の係数に対して0に等しく設定される。他のすべての係数について、以下が適用される。現在の変換係数の状態変数の値は、先行する変換係数レベルについての状態変数の値および先行する変換係数レベルの値のバイナリ関数(パス)によって決定される。
●変換係数レベルは二値化され、ビンはバイナリ算術符号化を使用してエントロピー符号化される。二値化はsig_flagを含み、変換係数レベルがゼロに等しくないか否かを指定する。このフラグは適応確率モデルを使用して符号化され、選択された確率モデルは現在の変換係数(および、潜在的には、他のパラメータ)の状態変数の値に依存する。
【0089】
以下では、従属スカラー量子化のためのコンテキスト符号化ビンの数を減少させるための複数の実施形態が説明される。これらの実施形態では、最悪の場合の復号の複雑さはサブブロックに基づいて制限される。典型的には、HEVCのように、より大きな変換ブロックが4×4サブブロックに分割され、以下が適用される:
●変換ブロックのシンタックスはシンタックス要素(例えば、coded_block_flag)を含み、変換ブロック内の非ゼロ変換係数レベルが存在するか否かを指定する。coded_block_flagが0に等しい場合、すべての変換係数レベルは0に等しく、変換ブロックに対してさらなるデータは送信されない;そうでなければ(coded_block_flagが1に等しい)、以下が適用される;
●スキャン順序における第1の有意変換係数のxおよびy座標が送信される(実際のスキャン順序が高周波から低周波数成分からのスキャンを指定するので、これは、ときどき最後の有意係数と呼ばれる);
●変換係数のスキャンは、サブブロック(典型的には4×4サブブロック)に基づいて処理する;サブブロックのすべての変換係数レベルは、任意の他のサブブロックの任意の変換係数レベルがコード化される前に符号化され、サブブロックは事前に定義されたスキャン順序で処理され、スキャン順序において最初の有意係数を含むサブブロックで開始され、DC係数を含むサブブロックで終了する。
●シンタックスはcoded_subblock_flagを含み、サブブロックが非ゼロ変換係数レベルを含むか否かを示す;スキャン順序において最初および最後のサブブロック(すなわち、スキャン順序において最初の有意係数を含むサブブロック、およびDC係数を含むサブブロック)の場合、このフラグは送信されないが、1に等しいと推定される;coded_subblock_flagが送信される場合、典型的には、サブブロックの開始時に送信される。
●coded_subblock_flagが1に等しい各サブブロックについて、変換係数レベルはサブブロックのスキャン位置にわたって複数のスキャンパスにおいて送信される。
【0090】
以下の実施形態は、1に等しいcoded_subblock_flagを有するサブブロックに対する変換係数レベルの符号化に適用される。しかしながら、本実施形態はこの場合に限定されない。また、実施形態を適用して、(サブブロック構造なしに)変換ブロックを完成させることも可能である。このコンテキストでは、(上述したように)サブブロック構造を使用することも可能であるが、(以下に説明するように)最悪の場合の複雑さの制限を適用して、変換ブロックを完成させることが(個別にそれを制限することサブブロックに適用する代わりに)可能である。
【0091】
実施形態1
第1の実施形態では、変換係数レベルは複数のスキャンパスで符号化される。それは以下の特性を有する。
●従属量子化のための状態機械は変換係数レベルのパリティによって駆動され、すなわち、バイナリ関数パス(レベル)はその引数のパリティを返す;
●第1のパスにおけるsig_flagの確率モデルは、状態変数(および、任意に、デコーダに利用可能な他のパラメータ、上記を参照)の対応する値に基づいて選択される。
第1のパス:スキャン位置に関する第1のパスでは、以下のコンテキスト符号化ビンが送信される:
●sig_flagは、変換係数が0に等しくないか否かを示す;sig_flagが1に等しいと推定され得る場合(例えば、それは、変換ブロックにおいて最初の有意スキャン位置(xおよびy座標によって明示的にシグナリングされるもの)の場合である)、sig_flagは送信されない。
●sig_flagが1(符号化または推定された値)に等しい場合、以下は現在のスキャン位置に対して追加的に送信される:
○par_flagは、絶対値のパリティから1を引いた値を指定する。
○gt1_flagは、残余(絶対レベル-1-par_flag)/2によって与えられる)が0より大きいか否かを指定する。
●コンテキスト符号化ビンの予め定義された最大数に到達した場合、第1のパスは終了する。MAX_REG_BINSを第1のパスで送信できる最大ビン数とし、regBinsは依然として利用可能な正の符号化ビンの数を表す。次に、以下が適用される:
○regBinsは、初めにMAX_REG_BINSに等しく設定される;
○いずれかのビン(sig_flag, gt1_flag, par_flag)を符号化した後、regBinsは1だけ減少される
○スキャン位置に対するビン(sig_flag、ならびに、sig_flagが1に等しい場合、gt1_flag、par_flag)を送信したあと、依然として利用可能なビンregBinsの数は3未満である(すなわち、次のスキャン位置に対してsig_flag、par_flagおよびgt1_flagを送信することができない)場合、そのあと、第1のスキャンパスは終了する。
第2のパス:スキャン位置に関する第2のパスでは、以下のコンテキスト符号化ビンが送信される:
●スキャン位置のgt1_flagが1に等しい場合、gt2_flagが送信され、(絶対レベル-3-par_flag)/2)によって与えられる)残余が0より大きいか否かを指定する。
●コンテキスト符号化されたgt2_flagの予め定義された最大数が送信された場合、第2のパスは終了する。第1のパスにおいてデータが送信されていないスキャン位置に到達した(すなわち、そのようなスキャン位置に対して、第2のパスにおいてデータは送信されない)場合、第2のパスも終了する。
第3のパス:スキャン位置に関する第3のパスでは、絶対レベルの残余(すなわち、送信されたsig_flag、par_flag、gt1_flagおよびgt2_flagによって既に指定されていないデータ)がパス1でsig_flagが符号化されたすべてのスキャン位置に対して送信される。非バイナリシンタックス要素の残余は、構造化されたコード(ゴロム・ライス符号のような)を使用して二値化され、ビンは算術符号化エンジンのバイパスモードで符号化される。残余は以下のスキャン位置に対して送信される:
●全てのスキャン位置について、1に等しいgt2_flagが第2のパスで送信される:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-5-par_flag)/2
●全てのスキャン位置について、1に等しいgt1_flagが第1のパスで送信されたが、第2のパスでgt2_flagが送信されていない:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-3-par_flag)/2
第4のパス:第4のパスにおいて、第1のパスにおいてデータが送信されていないすべてのスキャン位置についての絶対レベルが符号化される。絶対レベルは、まず、構造化されたコードを使用して二値化され、使用されるコードは、現在の状態変数の値と同様にローカルアクティビティ測定に依存することができる。ビンは、算術符号化エンジンのバイパスモードを使用して送信される。
第5のパス:最後に、第5のパスにおいて、0に等しくないすべての変換係数レベルの符号が送信される。符号は、算術符号化エンジンのバイパスモードで送信される。
【0092】
説明された実施形態の利点は、コンテキスト符号化ビンの数が、第1および第2のパスにおけるビンの数に制約されないバージョンと比較して、効率的に低減されることである。コンテキスト符号化ビンの符号化および復号はバイパスモードで符号化されるビンよりも多くの複雑な実装を必要とするので、複雑性は低減される。
【0093】
図13に示す擬似コードに基づいて上記の説明を例示する。
図13は、上述した実施形態にかかる変換係数のブロックを復号するための方法を示すが、対応する符号化の実施形態は、すべての“decode“を“encode”に置き換えることによってそれから容易に導出することができる。
【0094】
図13に示す擬似コードは、サブブロック14内の変換係数レベルの符号化/復号プロセスを示す。それはデコーダの観点から図示されている。データストリームからの復号は、ブロック10の変換係数の位置12をスキャン順序に従ってスキャンするパス60
1ないし60
5のシーケンスで行われる。二値化が使用され、すなわちフラグ/ビンが係数の量子化インデックスを定義に使用され、符号化/復号パスにおけるフラグおよび残余の符号化/復号の分配は以下で説明される実施形態において変更され、したがって、
図13の説明は、以下で説明される実施形態にも適用される概観または概略説明の提供に集中する。
【0095】
パスの基本的なスキャン順序の可能性は、
図12a,bに関して上記で説明されており、
図12bにおける62で例示的に示しているが、パス60
1ないし60
5が変換ブロック10のすべての変換係数の位置12をスキャンする必要はないが、それらはスキャン順序62をすべて使用することに留意されたい;フラグタイプのいくつかについてのフラグは、
図13に関して説明されるように、同じのパスで送信されてもよいが、他の可能性も存在する。
【0096】
図13に示す予め定義された値MAX_REG_BINSおよびMAX_GT2_BINSは、パス1 60
1およびパス2 60
2のそれぞれにおいて正の符号化ビンの最大数を指定する。ブール変数firstSubblockは、現在のサブブロックが、
図12aにおいて太字/黒の係数12を含むサブブロックのような、ブロック10に対して符号化/復号された符号化順序(変換ブロック内)の最初のサブブロックであるか否かを指定する。firstSigScanIdxは、変換ブロック10における第1の有意な変換係数の位置、すなわち変換ブロックシンタックスの開始時に明示的にシグナリングされる係数の位置に対応するスキャンインデックスを指定する。参照符号64は、今後、その位置を示すために使用される。minSubblockScanIdxおよびmaxSubblockScanIdxは、現在の、すなわち、現在復号/符号化されたサブブロックのためのスキャンインデックスの最小値および最大値を表す。第1のスキャンインデックス、startScanIdx、いずれかのデータが現在のサブブロック14に対して送信される、サブブロックがスキャン順序で第1の有意係数を含むか否かに依存することに留意されたい。この場合、第1のスキャンパスが第1の有意な変換係数64に対応するスキャンインデックスで開始する;そうでない場合は、第1のスキャンパスがサブブロック14での下左の係数位置のようなサブブロックの最小スキャンインデックスで開始する、または、言い換えると、DC位置66から最も離れた位置に、スキャン順序62が導かれる。再び、
図13はサブブロック単位の符号化に使用する実施形態であるが、概念は係数en-blockを符号化することに関係し、または以下で説明する態様のいくつかをサブブロックに関連付けることができ、一方、他はブロック10の全体に関連するように容易に変更することができることに留意されたい。
【0097】
パス60
1ないし60
4のシーケンスでは、コンテキスト適応バイナリ算術符号化/復号は、例えば、現在記載される実施形態1において、sig_flag,par_flag,gt1_flagおよびgt2_flagを含む1つ以上のフラグタイプのセットからそれぞれ選択されるフラグまたはビンを符号化/復号するために使用され、可変長符号は残余値を符号化/復号するために使用される。すなわち、可変長符号の符号語のビンは、一様な非適応確率モデルを使用して、バイナリ算術符号化/復号エンジンのバイパスモードで符号化/復号され、個々のビンに対して1の圧縮率となる。したがって、各フラグおよび各残余値は、それぞれ、
図12bにおける50によって示されるような、現在スキャンされている変換係数の位置について復号される。擬似コードでは、この現在位置は、パラメータまたはインデックスkによって示される。
【0098】
【0099】
残余値が特定の現在のスキャン変換係数の位置50に対して符号化/復号される場合、残余値は、現在スキャンされている変換係数の位置に対して少なくとも1つのフラグが復号される場合、値ドメインから、または、現在スキャンされている変換係数の位置に対してフラグが復号されていない場合、初期値ドメインから、現在スキャンされている変換係数の位置に対する量子化インデックスの絶対値を一意に示す。これらの変換係数の位置に対して残余値が符号化/復号されておらず、1つ以上のフラグが符号化/復号される変換係数の位置は値ドメインを既に制限し、1つの絶対値のみを含むことに留意されたい。符号のように、変換係数が全く示されていない場合、本実施形態の場合であるが、必ずしも修正された実施形態を必要としないと想定されるように、同じことがバイパスモードで別々に符号化されてもよい。
図13では、任意の非ゼロ量子化インデックスに対して独自のパス60
5において別々に符号化/復号されることが示されているが、これはさらなる実施形態に到達するために変更され得る。
【0100】
従属量子化は、変換係数の位置の符号化されたセットの変換係数の位置の量子化インデックスを連続的に逆量子化するために使用される。この処理により、変換係数の位置のこのセットに対する再構成された変換係数が得られる。例えば、上記で概説されたような状態遷移を使用することができる。それは、スキャン順序62に従って状態遷移テーブルまたはトレリス線図を使用して、例えば
図10に示すようなインデックスkを使用して示される現在の変換係数の位置について選択をすること72によって、その量子化インデックスは上述の概念によって一意に符号化/復号され、複数の再構成レベルのセット73から再構成されたレベルのセット、すなわち、
図7のセット0およびセット1は、
図7において”state“によって示される、状態遷移が現在の変換係数の位置について想定する状態に一意に基づき、量子化インデックスが再構成レベルのセットを指し示す、すなわち再構成された変換係数が前記再構成レベルに等しくセットされる、再構成レベルtrec[k]に量子化インデックスlevel[k]を逆量子化すること74によって、ならびに、現在の変換係数の位置、すなわちスキャン順序において現在の変換係数に続く変換係数の位置についての更新状態78を生成するために、従属量子化の間に現在スキャンされているものについて想定する状態遷移の状態を更新すること76によって、具体化されてもよい。更新76は、現在の変換係数の位置の量子化インデックス、
図10において80で示すようなlevel[k]に依存して実行され、ここで、table82はこの終わりに使用される。同様に、選択されたレベルセットを使用する量子化は、エンコーダ側で行われる。
【0101】
上記で例示されるように、状態遷移は、
図10に記載されたベクトルの4つの要素に対応する4つの異なった状態の間で遷移してもよい。さらに、更新は、現在の変換係数の位置の量子化インデックス80に適用されるパリティ関数のようなバイナリ関数86に依存して第1の後続状態と第2の後続状態84
1および84
2との間を決定することによって実行されてもよく、第1の後続状態と第2の後続状態は、88で示されるように、現在の変換係数の位置の状態に依存する。が示される。エンコーダおよびデコーダは、予め決定された量子化ステップサイズ、すなわち
図7ではΔ、
図10では2
shiftによって再構成されたレベルのセットをパラメータで表示され、予め決定された量子化ステップサイズに関する情報は、例えば、データストリーム中で送信される。さらに、
図7に示すように、各再構成レベルセットは、現在の変換係数の位置についてのすべての再構成レベルのセットに対して一定であるかまたは有効である予め決定された量子化ステップサイズの整数倍から構成されてもよい。異なるステップサイズは、上述のスケーリング行列のために、1つのブロック10内の異なる係数に対して使用されてもよいことに留意されたい。複数の再構成レベルセットのうちの再構成レベルのセットの数は2としてもよく、複数の再構成レベルセットは、ゼロおよび予め決定された量子化ステップサイズの偶数倍を含む第1の再構成レベルセット、すなわちセット0、および予め決定された量子化ステップサイズの奇数倍を含む第2の再構成レベルセットを含み得る。
【0102】
今までのところ、
図13の説明は以下に説明する実施形態にも適用される。しかしながら、実施形態1は、コンテキスト適応性を使用して符号化されたフラグの数を制限するために、以下のメカニズムを使用する。特に、パスのシーケンスの特定のパスでは、すなわち
図13に示すパス60
1では、sig_flagタイプのフラグは、第1のパスにおいて予め決定されたアボート基準をスキャン順序に従ってはじめて満たす予め決定された位置をまで符号化/復号されるだけである-“まで”とは本明細書において先行するおよび含む位置として理解されるべきであり、一方“[位置112]以降”の位置の参照は、位置112を除く位置112の後の位置を表すように理解されるべきである-。
図13では、この方法においてsig_flagの数が制限されるだけでなく、par_flag,パス60
1におけるgt1_flagおよびパス60
2におけるgt2_flagの数も制限される。制限は二値化に影響を与えることに留意されたい:アボート基準が満たされるとすぐに、それぞれのフラグタイプは、スキャン順序における直前の予め決定された変換係数の位置に続く係数位置の定義にはもはや使用されない。すなわち、予め決定されたフラグタイプのフラグ、すなわち符号化/復号される数に制限の対象となるものは、スキャン順序においてあらかじめ決定された変換係数の位置に先行するおよび含む変換係数の位置に対してのみ符号化/復号される。したがって、
図13では、パス60
1に関する、すなわちMAX_REG_BINSに関連する基準が満たされるとすぐに、スキャン順序における予め決定された変換係数の位置に続く変換係数の位置の符号化されたセットの各々について、パスのシーケンスの更なるパス、すなわち
図13の場合のパス60
3において、残余値のうちの1つが符号化され、後者は直接的に、すなわち、それぞれ係数の量子化インデックスを符号化/復号するために使用されるフラグタイプのフラグのいずれかによって、初期値ドメインの先行する制限なしに、初期値ドメインのうちのそれぞれの変換係数の位置に対する量子化インデックスの絶対値を一意に示す。
【0103】
コンテキスト適応的に符号化/復号されたフラグの数を制限するための先ほど示した概念を説明するために、
図13に加えて
図14および
図15を参照する。
図14は、90における変換係数の量子化インデックスの絶対値についての初期値ドメインを示す。この初期値ドメインは、ゼロといずれかの最大値との間のすべての整数値を包含され得る。初期値ドメインはより大きい数に向かって開く区間であってもよい。初期値ドメイン90における整数値の数は、必ずしも2の累乗である必要はない。さらに、
図14は、個々の量子化インデックスを表すことに関係する、すなわち、その絶対値を示すことに関係する、様々なフラグタイプを示す。特定の量子化インデックスの絶対値がゼロであるか否かを示すsig_flagタイプがある。すなわち、sig_flag92は初期値ドメイン90を2つのサブ部分に二分割される、すなわち、一方はゼロのみを含み、他方は他のすべての可能な値を含む。すなわち、
図14の下側に示されるように、後者がゼロである場合には、sig_flagは量子化インデックスの絶対値を既に一意に示す。初期値ドメイン90の非ゼロ値は値ドメイン94を形成し、この値ドメイン94はフラグタイプpar_flagによってさらに二分割される、すなわち、一方は奇数値および他方は偶数値である。後者が非ゼロである場合のみ、par_flag96は特定の量子化インデックスのために存在する必要がある。par_flag96は、値ドメイン94を同じように二分割した半分のうちの1つに対して一意性を生じない。それは、次の結果として生じる(再帰的に定義された)値ドメインの半分を示し、したがって、次のフラグ、すなわちgt1_flag98はこの結果として生じる値ドメインをpar_flagの後で二分割し、さらに量子化インデックス値が奇数である場合、奇数の非ゼロ値100、および量子化インデックス値が偶数である場合、偶数の非ゼロ値102であることを示す。特に、1つの部分がそれぞれ値ドメインの最小奇数値100または値ドメインの最小非ゼロ偶数値102を単に含むように、gt1_flag98による二分割が実行される。他の部分は、それぞれのドメインのすべてのほかの値100/102を含む。値ドメインの残りの後者は、同じ方法で、すなわち、最小値は1つの部分を表し、他の値は他の部分を表す方法で、フラグgt2_flag104によってさらに二分割される。
図14の下側に示されているように、このことは、後者がゼロになる場合、単にsig_flag92が特定の変換係数の量子化インデックスに対して符号化され、後者が絶対値1および2を含む値区間106に区分される場合、sig_flag,par_flagおよびgt1_flag 92,96および98は、特定の変換係数の特定の量子化インデックスを表すように符号化され、すべてのフラグ92,96,98および104は、値3および4を含む直後の値区間108に区分される場合、特定の変換係数の量子化インデックスの絶対値を表すように符号化され、追加的には、絶対値が初期値ドメイン90のうちの残りの区間110にある特定の変換係数の量子化インデックスの絶対値のために符号化される。フラグタイプのフラグ92,96および98は、第1のパス60
1において符号化される。フラグ104は、第2のパス60
2において符号化される。これらのフラグは、コンテキスト適応算術符号化を使用して符号化される。しかしながら、パス内で符号化されるフラグの数は制限されてもよく、
図13によって制限されてもよい。
図13の例では、パス60
1におけるフラグタイプのフラグの数はmax_rec_binsに制限される。パス60
1において符号化されたフラグの総数が、パス60
1において符号化/復号された最大の許容されたフラグの数を超えずに、パス60
1において符号化される可能性がある場合のみ、フラグタイプのフラグ92,96および98は、順序62に従って第1のパス内の現在アクセスされている変換係数の位置12に対して符号化される。
図15では、パス60
1における許容フラグの最大数を超えない最後の変換係数の位置が112であることを示している。同様に、パス60
2において符号化されたフラグ104の総数が、パス60
2において符号化/復号された最大の許容されたフラグの数を超えずに、それがパス60
2において符号化される可能性がある場合のみ、フラグタイプのフラグ104は順序62に従って第2のパス内の現在アクセスされている変換係数の位置12に対して符号化される。
図15では、パス60
2における許容フラグの最大数を超えない最後の変換係数の位置が116であることが示されている。
【0104】
図15は、変換係数またはそれぞれのサブブロック14を有するそれらの量子化インデックスの符号化を示すが、すでに上記で示したように、
図13の実施形態は
図13のすべてのプロセスが全体としてブロック10に適用される限りにおいて、変更されてもよい。さらに、
図15は、例えば、最初の非ゼロ変換係数の位置64を含むスキャン順序におけるサブブロックの後に続くサブブロックの場合のすべての係数を、変換係数の符号化されたセットが含む場合を示す。それに応じて、
図15において斜線で示されるすべての変換係数の位置は、フラグタイプ92,96および98を含むように表される変換係数の量子化インデックスに関係する。したがって、第1のパス60
1では、これらのフラグタイプのフラグ92,96および98は、位置112までの変換係数12に対して符号化される。位置112までの変換係数12のいくつかについて、単にsig_flag92が符号化される必要があるが、一方、他のすべての3つのフラグタイプが含まれ、パス60
1において符号化/復号される。
図15は、データストリームが、それに応じて、これらのフラグタイプのフラグ92,96および98がパス60
1内で符号化される対応する部分114を含むことを示す。位置112の後、パス60
1内で何も符号化/復号されない。第2のパス60
2では、スキャン順序62に従って、パス60
2の間に符号化され得るgt2_flagの最大数がある限り、すなわち、そのようなフラグの数がmax_gt2_binsを超えない限り、変換係数の位置12は再びトラバースされ、そのようなgt2_flagは、対応する量子化インデックスの絶対値が区間108および118を含む残りの値ドメイン部分内にあることをgt1_flag98が示す変換係数に対して符号化される。
図15は、スキャン順序62に従ってクロスハッチされた位置116までのすべての変換係数の位置12を示し、単にハッチングされただけの位置112までの後続の変換係数の位置12からこれらの位置を区別する。位置112に続くすべての変換係数の位置12は、
図15においてハッチングされていないことが示されている。パス60
2の間に符号化されたgt2_flag104は、部分114の直後に続くデータストリームの部分118に符号化される。位置116の後のパス60
2の間にさらなるデータは符号化されない。次の2つのパス60
3,60
4では、それは1つのパスの半分を形成するものとして解釈されてもよく、残余は部分118のすぐ後に続くデータストリームの部分120に符号化される。特に、部分120の第1のサブ部分において、パス60
3の間、位置112までの変換係数の位置12についての残余が符号化される。したがって、これらの残余は、クロスハッチされた変換係数の位置12、すなわち位置116までの変換係数の位置12に対する区間110、および単にハッチングされた変換係数の位置12、すなわち位置116の後に続く位置112までの位置の対する区間108および110を含む残りの値ドメインのうちの特定の変換係数の位置12の量子化インデックスの絶対値を示す。位置112までの変換係数の位置12の残余のサブ部分122の後に、パス60
4の間、位置112に続く変換係数の位置12ごと、すなわち、ハッチングされていない変換係数の位置12ごとがデータストリームに符号化される1つの残余のさらなるサブ部分124が存在する。後者の残余は、直接的に量子化インデックスを示す、すなわち、初期値ドメイン90のうちの直接的な絶対値を示す。このように、コンテキスト適応符号化フラグ92,96,98および104の数は低減され、バイパスモード、すなわち固定された等確率モードを使用して符号化されたビンの数、すなわち、残余の二値化のビンを増加させる。
【0105】
すなわち、
図13において、前述したアボート基準は、第1のパスでデコードされたフラグの数が予め決定された閾値を超えるか否かに関する。sig_flagに加えて、タイプ96および98のフラグがカウントされる。
【0106】
現在スキャンされている変換係数の位置についての残余値を符号化/復号するための可変長コードは、ゴロム・ライス符号などの予め定義された可変長コードのセットから選択されてもよい。選択されたコードは、現在スキャンされている変換係数の位置が予め決定された変換係数の位置112まで位置しているか否か、すなわち、
図15においてハッチングされた位置にあるか、またはスキャン順序62における予め決定された変換係数の位置112に続くか否かに依存して異なっていてもよく、
図13の場合では、選択は、位置112および116の間に位置があるか否かに依存されてもよい。例えば、残余の符号化/復号はパス60
4よりもパス60
3において異なるVLCコード、または
図13において128で
図15の単にハッチングされた係数の残余を符号化/復号することは、
図15において130で示すクロスハッチングされた係数の残余を符号化/復号する際に使用されるVLCコードと比較して、異なるコードを含んでさえいてもよい。選択は、指数ゴロム符号の順序または以下に説明するようなライスパラメータを選択するなどのパラメータ化可能なVLCコードのパラメータ化を含むことができる。代替的に、選択された可変長符号を示すパラメータは、パス60
3では一定に保たれ、予め決定された基準を満たす先行する変換係数の位置の量子化インデックスで徐々に変更され得る。または、二値化パラメータは、残余を符号化する際に、現在スキャンされている変換係数の位置の近傍における変換係数の位置の量子化インデックスに依存して選択されてもよい。この依存性は、例えば、
図15においてすべてのハッチングされた位置について、スキャン順序62において先行する、または予め決定された変換係数の位置112である残余が符号化される現在の変換係数の位置の場合にのみ使用される。これに関するさらなる詳細が以下に概説される。
【0107】
選択された/パラメータ化されたコー否から選択された符号語は、残余が符号化/復号される係数位置にも依存する:第1および第2のパス601,2のフラグ92,96,98および104によって表現可能な最大値を引いた量子化インデックスの絶対値、すなわち4足す1、すなわち5は表される、または量子化インデックスが属する係数の場合、任意の係数の量子化インデックスの残余の二値化によって、符号化されるVLCは、位置116までのどこかであり、第1のパス601のフラグ92,96,98によって表される最大値を引いた量子化インデックスの絶対値、すなわち2足す1、すなわち3は表される、または量子化インデックスが属する係数の場合、任意の係数の量子化インデックスの残余の二値化により符号化されるVLCは、位置116の後から位置112までのどこかにあり、量子化インデックスの絶対値は直接的に表される、または量子化インデックスが属する係数の場合、任意の係数の量子化インデックスの残余の二値化によって符号化されるVLCは位置112の後のどこかである。
【0108】
図13の実施形態のいくつかの変形例が適用されてもよい。例えば、gt2_flagは、別個のパス60
2において符号化/復号されず、第1のパス60
1に含まれ得る。次に、符号化されたgt2_flagの数は、第1のパス60
1におけるコンテキスト符号化ビンのカウントに含まれてもよく、利用可能なコンテキスト符号化ビンの数が4より小さい場合に第1のパスは終了される。すなわち、この場合では、コンテキスト符号化ビンの数に対する単一の閾値が使用される。代替的に、gt2_flagは全く送信されず、その場合、gt1_flagが1に等しい場合、残余は符号化される。
この実施形態の別の変形例では、1つ以上の追加のgtx_flagが含まれる。gt2_flagと同様に、これらのフラグは先行するgty_flag(y=x-1)が1に等しい場合にのみ符号化され、量子化インデックスの絶対値が先行するgtx_flagによって指定された最小の可能な値よりも大きいか否かを示す。次に、絶対値の再構成が以下によって与えられる。
absLevel = sig_flag + par_flag + 2 * ( gt1_flag + gt2_flag + gt3_flag + … + remainder ).
これらのフラグは、gt2_flagと同じパス(これは、gt2_flagが第1のパスに含まれる場合を含む)において、または1つ以上の追加のパスにおいて符号化することができる。後者の場合では、gtx_flagの数を制限するための更なる閾値を適用することができる。
【0109】
以下に説明される第2の実施形態は、第1の実施形態と1つ態様において異なる:par_flagおよびgt1_flagの順序がスワップされる(したがって、これらのフラグの意味が変更される)。sig_flagが1に等しい場合には、第1のgt1_flagが送信され、これは変換係数レベルの絶対値が1より大きいか否かを指定する。そして、gt1_flagが1に等しい場合、par_flagは残余のパリティ(すなわち、絶対レベル-2)を指定する。第1の実施形態の場合と同様に、以下が適用される:
●従属量子化のための状態機械は変換係数レベルのパリティによって駆動され、すなわち、バイナリ関数パス(レベル)はその引数のパリティを返す;
●第1のパスにおけるsig_flagの確率モデルは、状態変数(および、任意に、デコーダに利用可能な他のパラメータ、上記を参照)の対応する値に基づいて選択される。
第1のパス:スキャン位置に関する第1のパスでは、以下のコンテキスト符号化ビンが送信される:
●sig_flagは、変換係数が0に等しくないか否かを示す;sig_flagが1に等しいと推定され得る場合(例えば、それは、変換ブロックにおいて最初の有意スキャン位置(xおよびy座標によって明示的にシグナリングされるもの)の場合である)、sig_flagは送信されない。
●sig_flagが1(符号化または推定された値)に等しい場合、以下は現在のスキャン位置に対して追加的に送信される:
○gt1_flagは、絶対値が1よりも大きいか否かを指定する;
○gt1_flagが1に等しい場合、par_flagは絶対レベルのパリティ-2を指定する;
●コンテキスト符号化ビンの予め定義された最大数に到達した場合、第1のパスは終了する。MAX_REG_BINSを第1のパスで送信できる最大ビン数とし、regBinsは依然として利用可能な正の符号化ビンの数を表す。次に、以下が適用される:
○regBinsは、初めにMAX_REG_BINSに等しく設定される;
○いずれかのビン(sig_flag, gt1_flag, par_flag)を符号化した後、regBinsは1だけ減少される;
○スキャン位置に対するビン(sig_flag、ならびに、適用可能な場合、gt1_flagおよびpar_flag)を送信したあと、依然として利用可能なビンの数regBinsは3未満である(すなわち、次のスキャン位置に対してsig_flag、par_flagおよびgt1_flagを送信することができない)場合、そのあと、第1のスキャンパスは終了する。
第2のパス:スキャン位置に関する第2のパスでは、以下のコンテキスト符号化ビンが送信される:
●スキャン位置におけるgt1_flagが1に等しい場合、gt2_flagが送信され、(絶対レベル-2-par_flag)/2)によって与えられる)残余が0より大きいか否かを指定する。
●コンテキスト符号化されたgt2_flagの予め定義された最大数が送信された場合、第2のパスは終了する。第1のパスにおいてデータが送信されていないスキャン位置に到達した(すなわち、そのようなスキャン位置に対して、第2のパスにおいてデータは送信されない)場合、第2のパスも終了する。
第3のパス:スキャン位置に関する第3のパスでは、絶対レベルの残余(すなわち、送信されたsig_flag、par_flag、gt1_flagおよびgt2_flagによって既に指定されていないデータ)がパス1でsig_flagが符号化されたすべてのスキャン位置に対して送信される。非バイナリシンタックス要素の残余は、構造化されたコード(ゴロム・ライス符号のような)を使用して二値化され、ビンは算術符号化エンジンのバイパスモードで符号化される。残余は以下のスキャン位置に対して送信される:
●すべてのスキャン位置について、1に等しいgt2_flagが第2のパスで送信される:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-4-par_flag)/2
●すべてのスキャン位置について、1に等しいgt1_flagが第1のパスで送信されたが、第2のパスでgt2_flagが送信されていない:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-2-par_flag)/2
第4のパス:第4のパスにおいて、第1のパスにおいてデータが送信されていないすべてのスキャン位置についての絶対レベルが符号化される。絶対レベルは、まず、構造化されたコードを使用して二値化され、使用されるコードは、現在の状態変数の値と同様にローカルアクティビティ測定に依存することができる。ビンは、算術符号化エンジンのバイパスモードを使用して送信される。
第5のパス:最後に、第5のパスにおいて、0に等しくないすべての変換係数レベルの符号が送信される。符号は、算術符号化エンジンのバイパスモードで送信される。
図16の擬似コードは、サブブロック内の変換係数レベルの符号化/復号プロセスをさらに示す。第1の実施形態と同様のコメントが適用される。
図17は、
図16に適応される
図14の修正されたバージョンを示している。
図15は、
図16についても変更され、残余が位置112および116の間の係数に関係する値ドメインから開始するような詳細を除いて、すなわち、フラグ92,96および98を使用して最大値が表され、それは
図13の場合は2であり、
図16の場合は1である。
図13の場合以外に見られるように、第1のパス60
1におけるフラグpar_flagの符号化/復号は、対応するスキャンされている変換係数の量子化インデックスが1より大きい大きさであることをフラグgt1_flagが示す変換係数の位置およびその後の変換係数の位置に対して排他的に行われる。
図13の場合では、この符号化/復号は、対応するsig_flagによって示されている非ゼロの場合に必然的に実行される。
【0110】
この実施形態の変形例では、gt2_flagは別のパスで符号化されず、第1のパスに含まれる。次に、符号化されたgt2_flagの数は第1のパスにおけるコンテキスト符号化ビンのカウントに含まれ、利用可能なコンテキスト符号化ビンの数が4よりも少ない場合に第1のパスを終了する。すなわち、この場合、コンテキスト符号化ビンの数に対する単一の閾値が使用される。
【0111】
代替的に、gt2_flagは全く送信されず、その場合、gt1_flagが1に等しいとき、残余は符号化される。
【0112】
この実施形態の別の変形例では、1つ以上の追加のgtx_flagが含まれる。gt2_flagと同様に、これらのフラグは、先行するgty_flag(y=x-1)が1に等しい場合にのみ符号化される。量子化インデックスの絶対値が先行するgtx_flagによって指定された最小の可能な値よりも大きいか否かを示す。次に、絶対値の再構成が以下によって与えられる。
absLevel = sig_flag + gt1_flag + par_flag + 2 * ( gt2_flag + gt3_flag + … + remainder )
これらのフラグは、gt2_flagと同じパスにおいて(これは、gt2_flagが第1パスに含まれる場合を含む)、または1つ以上の追加パスにおいて符号化され得る。後者の場合には、gtx_flagの数を制限するための更なる閾値を適用してもよい。
【0113】
第3の実施形態は、第1の実施形態と1つ態様において異なる:第1のパスにおけるsig_flagは、すべてのスキャン位置に対して符号化され、par_flagおよびgt1_flagの存在のみが、既に送信されたコンテキストコード化ビンの数によって決定される。第1の実施形態の場合と同様に、以下が適用される:
●従属量子化のための状態機械は変換係数レベルのパリティによって駆動され、すなわち、バイナリ関数パス(レベル)はその引数のパリティを返す;
●第1のパスにおけるsig_flagの確率モデルは、状態変数(および、任意に、デコーダに利用可能な他のパラメータ、上記を参照)の対応する値に基づいて選択される。
第1のパス:スキャン位置に関する第1のパスでは、以下のコンテキスト符号化ビンが送信される:
●sig_flagは、変換係数が0に等しくないか否かを示す;sig_flagが1に等しいと推定され得る場合(例えば、それは、変換ブロックにおいて最初の有意スキャン位置(xおよびy座標によって明示的にシグナリングされるもの)の場合である)、sig_flagは送信されない。
●sig_flagが1(符号化または推定された値)に等しい場合、以下は現在のスキャン位置に対して追加的に送信される:
○par_flagは、絶対レベルのパリティから1を引いた値を指定する;
○gt1_flagは、残余((絶対レベル-1-par_flag)/2)によって与えられる)が0よりも大きいか否かを指定する。
●コンテキスト符号化ビンの予め定義された最大数(符号化されたsig_flagを依然として含む)に到達した場合、par_flagおよびgt1_flagの送信がスキップされる。MAX_REG_BINSを第1のパスで送信できる最大ビン数とし、regBinsは依然として利用可能な正の符号化ビンの数を表す。次に、以下が適用される:
○regBinsは、初めにMAX_REG_BINSから第1のパスにおいて送信されたsig_flagを引いた値に等しく設定される(この数は、第1のパスについての第1のスキャンインデックス、サブブロックの最後のスキャンインデックスおよびサブブロックが第1の有意係数をスキャン順序に含むか否かの情報によって与えられる);
○いずれかのgt1_flagまたはpar_flagを符号化後、regBinsは1だけ減少される;
○スキャン位置に対するビン(sig_flag、ならびに、sig_flagが1に等しい場合、gt1_flag,par_flag)を送信後、依然として利用可能なビンの数regBinsは2未満である(すなわち、次のスキャン位置に対してpar_flagおよびgt1_flagを送信することができない)場合、そのあと、第1のスキャンパスにおいてすべての後続のスキャンインデックスについて、sig_flagのみが送信される。
第2のパス:スキャン位置に関する第2のパスでは、以下のコンテキスト符号化ビンが送信される:
●スキャン位置におけるgt1_flagが1に等しい場合、gt2_flagが送信され、残余(絶対レベル-3-par_flag)/2)によって与えられる)が0より大きいか否かを指定する。
●コンテキスト符号化されたgt2_flagの予め定義された最大数が送信された場合、第2のパスは終了する。1に等しいsig_flagのみが第1のパスにおいて送信されたスキャン位置に到達した(すなわち、そのようなスキャン位置に対して、第2のパスにおいてデータは送信されない)場合、第2のパスも終了する。
第3のパス:スキャン位置に関する第3のパスでは、絶対レベルの残余(すなわち、送信されたsig_flag、par_flag、gt1_flagおよびgt2_flagによって既に指定されていないデータ)がパス1でsig_flagおよびgt1_flagおよびpar_flagが符号化されたすべてのスキャン位置に対して送信される。非バイナリシンタックス要素の残余は、構造化されたコード(ゴロム・ライス符号のような)を使用して二値化され、ビンは算術符号化エンジンのバイパスモードで符号化される。残余は以下のスキャン位置に対して送信される:
●すべてのスキャン位置について、1に等しいgt2_flagが第2のパスで送信される:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-5-par_flag)/2
●すべてのスキャン位置について、1に等しいgt1_flagが第1のパスで送信されたが、第2のパスでgt2_flagが送信されていない:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-3-par_flag)/2
第4のパス:第4のパスにおいて、1を引いた絶対レベルはすべてのスキャン位置に対して符号化され、第1のパスにおいて1に等しいsig_flagのみが符号化される(しかしgt1_flagは送信されない)。残余(1を引いた絶対レベル)は、まず、構造化されたコードを使用して二値化され、使用されるコードは、現在の状態変数の値と同様にローカルアクティビティ測定に依存することができる。ビンは、算術符号化エンジンのバイパスモードを使用して送信される。
第5のパス:最後に、第5のパスにおいて、0に等しくないすべての変換係数レベルの符号が送信される。符号は、算術符号化エンジンのバイパスモードで送信される。
図18の擬似コードは、サブブロック内の変換係数レベルの符号化プロセスをさらに示す。第1の実施形態と同様のコメントが適用される。
図14および
図15は、
図18についても変更され、スキャン順序62に従ってフラグ96および98はもはや符号化されておらず、一方でsig_flagはブロック全体で利用可能である位置を位置112が示すという事実を除いて、変換位置の下流の位置112に対する残余、すなわちハッチングされていないものは、対応する係数の量子化インデックスを表していないが、むしろ、残余がそのsig_flagが非ゼロを示し、1を引いた量子化インデックスの絶対レベルのみを示す、位置112の後の係数に対して符号化される。
【0114】
1に等しい最初のsig_flagが符号化された後、状態変数は知られておらず、gt1_flag/par_flagが続かないことに留意されたい。したがって、後続のsig_flagについて、使用される確率モデルは、状態変数(先行するsig_flagについて、状態変数に依然として依存する)から独立して導出されなければならない。
【0115】
実施形態3の以下の変形が可能である。
1.状態機械は、sig_flagによって駆動される(すなわち、変換係数レベルがゼロに等しいか否か、またはゼロに等しくないか否かの情報)。バイナリ関数パスは、レベルがゼロに等しくないか否かを指定する。この場合、パリティフラグは送信される必要がなく、以下のデータのみがsig_flagに付加されて送信される。
●第1パス:gt1_flag(sig_flagの送信が1に等しく;絶対レベルが0より大きいか否かを指定する;
●第2パス:gt2_flag(gt1_flagの送信が1に等しく;絶対レベルが2より大きいか否かを指定する。
これは、状態変数がすべてのsig_flagについて知られており、したがって、sig_flagを符号化するために使用される確率モデルが状態変数に基づいて選択され得るという利点を有する。さらに、gt1_flagは第1のパスから除去され、以下のように別個のパスで符号化されることができる。
●第1のパス:sig_flagの送信
●第2のパス:gt1_flagの送信(gt1_flagの最大数まで)
●第3のパス:gt2_flagの送信(gt2_flagの最大数まで)
●第4のパス:(a)1に等しいgt2_flagが送信された、(b)1に等しいgt1_flagが送信されたが、gt2_flagが送信されなかったスキャンインデックスの残余
●第5のパス:sig_flagが1に等しいが、gt1_flagが送信されなかったスキャン位置についての1を引いた絶対レベル
●第6のパス:0に等しくないすべての変換係数レベルについての符号
【0116】
2.状態機械は、パリティ駆動状態機械から重要な駆動状態機械に切り替わる。それは以下を意味する。
●regBins(上記擬似コードで指定される)が2より大きいまたは2に等しいすべてのスキャンインデックスに対して、状態変数がパリティを使用して更新される(すなわち、バイナリ関数パスは変換係数レベルのパリティを指定する);
●regBinsが2よりも小さくなった後、状態変数は有意情報を使用して更新される(すなわち、バイナリ関数パス(レベル)は、レベルが0に等しくないか否かを指定する)。
これは、状態変数がすべてのsig_flagについて知られているという利点を有し、したがって、sig_flagを符号化するために使用される確率モデルは、状態変数に基づいて選択されてもよい。変形1(状態機械がsig_flagによって常に駆動される)とは対照的に、N次元空間におけるより高い圧縮密度、および次のより高い符号化効率が達成される。
【0117】
すなわち、状態遷移している状態の更新は、
図10においてkによって与えられる現在の変換係数の位置がスキャン順序62においてに先行するか、または予め決定された変換係数の位置112、すなわち
図15においてハッチングされたものであるか、または後者の範囲を超える、すなわちスキャン60
1に関して、
図15において示されるハッチングされていない位置であるか否かに依存するという程度に、単にパリティ駆動されるように記載された76で遷移している状態が、今のところ、変更されていてもよい。現在の変換係数の位置がスキャン順序62に従って予め決定された変換係数の位置112を越えない、すなわち変換係数の位置112より前に起こるまたは等しい場合、現在の変換係数の位置の第2のフラグタイプのフラグ96、すなわち前で記載するパリティにそのあとの更新が依存するが、現在の変換係数の位置がスキャン順序において予め決定された変換係数の位置に続く、すなわちスキャン順序62に従ってそれから超え、変換係数の位置の第1のフラグに更新が依存する、すなわち現在の係数のゼロ値に依存する。次いで、これは、予め決定されたの第1のフラグタイプのフラグをコンテキスト適応エントロピー復号するときに利用されてもよい、すなわち、本実施形態によれば、各係数の量子化インデックスの表現に関係するsig_flagが、パリティフラグおよびその符号化が112で停止されるgt1 flag以外の係数位置112を超える:したがって、予め決定された変換係数の位置112を先に起こる、含む、超えるすべての変換係数の位置に対して、状態遷移が現在スキャンされている変換係数の位置について想定される状態に依存して、デコーダおよびエンコーダが、現在スキャンされている変換係数についてそのようなsig_flagのコンテキストを決定することが可能である。
【0118】
代替的に、状態更新は単にパリティ駆動されるような任意の方法で実行され、位置112までのsig_flagについてのコンテキストは位置112の後から独立して、従属量子化の状態に基づいて実行される。
【0119】
実施形態1と同様に、以下の変形が可能である。
●第1パスには、gt2_flagが含まれる;
●gt2_flagは全く符号化されない;
●追加のgtx_flagが符号化される。
【0120】
すなわち、第3の実施形態では、予め決定された第1のフラグタイプのフラグ92、すなわちsig_flag、および予め決定された第2のフラグタイプのフラグ96、すなわちpar_flagが存在し、他の実施形態の場合と同様に、第1の変換係数の位置に対する量子化インデックスの絶対値の値ドメインを制限するフラグが、スキャン順序62の第1の変換係数の位置に続く第2の変換係数の位置に対する量子化インデックスの絶対値の値ドメインを制限するフラグの前に符号化/復号されるように、それらが符号化/復号される。
すなわち、任意のsig_flag[k]およびpar_flag[k]は、sig_flag[k+1]およびpar_flag[k+1]の前に符号化/復号される。しかしながら、
図13の場合以外では、予め決定された第2のフラグタイプのフラグ、すなわちpar_flagの符号化/復号は、
図18において“startldxByass-1”によって示される予め決定された変換係数の位置112まで実行され、第1のパス60
1において、アボート基準はスキャン順序62に従ってはじめて満たす -例えば、第1のパス60
1における符号化されたフラグの数が、特定の閾値を超える- 予め決定された第1のフラグタイプのフラグ、すなわちsig_flagの符号化/復号は、予め決定された変換係数の位置112を超えてスキャン順序62において実行される、すなわち例えばすべての変換係数に対して、またはすべてではなく、位置64についての第1の非ゼロ量子化インデックスについて、いずれのアボート基準を調査することなく実行される。
【0121】
第4の実施形態は、第3の実施形態と1つ態様において異なる:par_flagおよびgt1_flagの順序がスワップされる(そして、これらのフラグの意味がそれに応じて変更される)。sig_flagが1に等しい場合、第1のgt1_flagが送信され、変換係数レベルの絶対値が1より大きいか否かを指定しする。そして、gt1_flagが1に等しい場合、par_flagは、残余のパリティ(すなわち、絶対レベル-2)を指定する。第1の実施形態と同様に、以下が適用される:
●従属量子化のための状態機械は変換係数レベルのパリティによって駆動され、すなわち、バイナリ関数パス(レベル)はその引数のパリティを返す;
●第1のパスにおけるsig_flagの確率モデルは、状態変数(および、任意に、デコーダに利用可能な他のパラメータ、上記を参照)の値に基づいて選択される。
第1のパス:スキャン位置に関する第1のパスでは、以下のコンテキスト符号化ビンが送信される:
●sig_flagは、変換係数が0に等しくないか否かを示す;sig_flagが1に等しいと推定され得る場合(例えば、それは、変換ブロックにおいて最初の有意スキャン位置(xおよびy座標によって明示的にシグナリングされるもの)の場合である)、sig_flagは送信されない。
●sig_flagが1(符号化または推定された値)に等しい場合、そのあと、以下は現在のスキャン位置に対して追加的に送信される:
○gt1_flagは、絶対レベルが1よりも大きいか否かを指定する。
○gt1_flagが1に等しい場合、par_flagは、2を引いた絶対レベルのパリティを指定する。
●コンテキスト符号化ビンの予め定義された最大数(符号化されたsig_flagを依然として含む)に到達した場合、par_flagおよびgt1_flagの送信がスキップされる。MAX_REG_BINSを第1のパスで送信できる最大ビン数とし、regBinsは依然として利用可能な正の符号化ビンの数を表す。次に、以下が適用される:
○regBinsは、初めにMAX_REG_BINSから第1のパスにおいて送信されたsig_flagを引いた値に等しく設定される(この数は、第1のパスについての第1のスキャンインデックス、サブブロックの最後のスキャンインデックスおよびサブブロックが第1の有意係数をスキャン順序に含むか否かの情報によって与えられる);
○いずれかのgt1_flagまたはpar_flagを符号化後、regBinsは1だけ減少される;
○スキャン位置に対するビン(sig_flag、ならびに、sig_flagが1に等しい場合、gt1_flag,par_flag)を送信後、依然として利用可能なビンの数regBinsは2未満である(すなわち、次のスキャン位置に対してpar_flagおよびgt1_flagを送信することができない)場合、そのあと、第1のスキャンパスにおいてすべての後続のスキャンインデックスについて、sig_flagのみが送信される。
第2のパス:スキャン位置に関する第2のパスでは、以下のコンテキスト符号化ビンが送信される:
●スキャン位置におけるgt1_flagが1に等しい場合、gt2_flagが送信され、残余(絶対レベル-2-par_flag)/2)によって与えられる)が0より大きいか否かを指定する。
●コンテキスト符号化されたgt2_flagの予め定義された最大数が送信された場合、第2のパスは終了する。1に等しいskip_flagのみが第1のパスにおいて送信されたスキャン位置に到達した(すなわち、そのようなスキャン位置に対して、第2のパスにおいてデータは送信されない)場合、第2のパスも終了する。
第3のパス:スキャン位置に関する第3のパスでは、絶対レベルの残余(すなわち、送信されたsig_flag、par_flag、gt1_flagおよびgt2_flagによって既に指定されていないデータ)がパス1でsig_flagおよびgt1_flagおよびpar_flagが符号化されたすべてのスキャン位置に対して送信される。非バイナリシンタックス要素の残余は、構造化されたコード(ゴロム・ライス符号のような)を使用して二値化され、ビンは算術符号化エンジンのバイパスモードで符号化される。残余は以下のスキャン位置に対して送信される:
●すべてのスキャン位置について、1に等しいgt2_flagが第2のパスで送信される:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-4-par_flag)/2
●すべてのスキャン位置について、1に等しいgt1_flagが第1のパスで送信されたが、第2のパスでgt2_flagが送信されていない:
これらのスキャン位置について、送信された非バイナリシンタックス要素の残余は、以下を指定する:
(絶対値-2-par_flag)/2
第4のパス:第4のパスにおいて、1を引いた絶対レベルはすべてのスキャン位置に対して符号化され、第1のパスにおいて1に等しいsig_flagのみが符号化される(しかしgt1_flagは送信されない)。残余(1を引いた絶対レベル)は、まず、構造化されたコードを使用して二値化され、使用されるコードは、現在の状態変数の値と同様にローカルアクティビティ測定に依存することができる。ビンは、算術符号化エンジンのバイパスモードを使用して送信される。
第5のパス:最後に、第5のパスにおいて、0に等しくないすべての変換係数レベルの符号が送信される。符号は、算術符号化エンジンのバイパスモードで送信される。
図19の擬似コードは、サブブロック内の変換係数レベルの符号化プロセスをさらに示す。第1および第3の実施形態と同様のコメントが適用される。
図17および
図15は、
図19についても変更される、しかしながら、
図15において、残余が位置112および116の間の係数に関する残余、すなわち、フラグ92,96および98を使用して表現可能な最大値、
図13の場合2、
図19の場合1、の値ドメインの開始に変更される。
【0122】
実施形態4について、実施形態3と同様の変形が可能である。これは、以下の態様を含む(実施形態2と同様である)。
●第1パスには、gt2_flagが含まれる;
●gt2_flagは全く符号化されない;
●追加のgtx_flagが符号化される。
【0123】
【0124】
【0125】
【0126】
【0127】
すなわち、現在スキャンされている変換係数の位置についての残余値を符号化/復号するための可変長符号は、RPによって互いに異なるゴロム・ライス符号のセットのような、予め定義された可変長符号のセットから選択され得る。選択は、残余が符号化/復号される現在スキャンされている変換係数の位置が予め決定された変換係数の位置112まで位置するか、またはスキャン順序62におけるその下流に位置しているかに依存してもよい。すなわち、異なるRPが前者および後者の場合において選択されている。上述した方法1および2によれば、選択された可変長符号を示すRPパラメータは、一般に、パス60
3,4の間で一定に保たれてもよいが、方法1のように、ある限界を超えるような予め決定された基準を満たす先行する復号/符号化された変換係数の量子化インデックス、または、ある限界を超えるようないくつかの基準を満たす現在スキャンされている変換係数の位置の近傍において変換位置における量子化インデックスに徐々に変更され得る。例えば、残余が符号化された現在の変換係数の位置が、予め決定された変換係数の位置112まで、すなわち、
図15においてのすべてのハッチングされた位置に対して、配置される場合にのみ、この依存性または増分変化を使用することができる。近傍の係数の量子化インデックスに加えて、従属量子化状態は、二値化符号パラメータを選択するために使用されてもよい。
【0128】
以下の態様は、上述の実施形態と組み合わせることが可能であるが、符号化効率を増大させるために、代替的に上述の実施形態に実装されてもよい。この態様は、1よりも大きい絶対値を有する変換係数レベルのいずれも含まないブロック/サブブロックの明示的なシグナリングに関する。
変換係数レベルを符号化するためのビンの数を減らすために、専用のフラグが変換ブロックまたはサブブロック単位で導入され、いずれにせよブロックまたはサブブロック内の絶対レベルのいずれかが1より大きいかをシグナリングする:
●coded_subblock_flagを有するサブブロックが1に等しい場合(符号化または推定)、第2のフラグがサブブロックのために送信される。このフラグ(gt1_subblock_flag)は、サブブロックが1より大きい絶対レベルを有する任意の変換係数レベルを含むか否かを指定する。
●gt1_subblock_flagが0に等しい場合、有意情報(sig_flag)および0に等しくない変換係数レベルの符号ビットのみが送信される。
●gt1_subblock_flagが1に等しい場合、変換係数レベルの符号化は、実施形態1ないし4に記載されるように進行する。サブブロック内の最後のスキャンインデックスに到達し、サブブロック内のすべての先行する絶対レベルが1に等しいとき、そのあと最後の絶対レベルが1よりも大きいと推定することが可能である、さらなる状態を含む可能性がある。-したがって、対応するgt1_flagは1に等しいと推定され得る。実施形態1および3についても、パリティフラグpar_flagは、この場合、0に等しいと推定され得る。
すべてのレベルが1に等しい絶対値を有することを指定するフラグを、変換ブロック全体に対して、その代わりにサブブロックに基づいて、送信することもできる。選択されたサブブロック(例えば、第1の有意係数を含むサブブロック)に対してのみ、このフラグを送信することも可能である。
【0129】
すなわち、ここで、変換係数ブロック10は、以下の方法で符号化/復号される。変換係数ブロック10が分割されるサブブロック14の少なくとも1つのセットの各々について、各サブブロック14が量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数12を含むか否かなどを示すサブブロック重大フラグ、すなわちgt1_subblock_flagが送信される。量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい少なくとも1つの変換係数が存在することをサブブロック重大フラグが示す各サブブロック14内の変換係数ブロックの変換係数は、それぞれの変換係数の値ドメインを2つの部分に再帰的に二分割し、それぞれの変換係数の量子化インデックスが2つの部分のうちのどちらに存在するかを示す1つ以上のフラグ92,96,98,194または他のフラグのシーケンスを、それぞれのサブブロック内の変換係数の各々について順次符号化/復号することによって、前述したように符号化/復号され、値ドメインが符号付きの値を定義するように解釈される場合、値ドメインが単に1つの値または絶対的な意味で等しい値しか含まなくなるとすぐに、シーケンスの復号を停止することを伴う。値ドメインが絶対的な意味で異なる値を依然として1つ以上含む場合、値ドメインにおける各変換係数の量子化インデックスの絶対値を示す残余値は、符号化/復号される。しかしながら、
量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数が存在しないことをサブブロック重大フラグが示す各サブブロック内では、
各サブブロック内の変換係数のそれぞれについて1つ以上のフラグのシーケンス
の後続の復号が、
値ドメインが非ゼロ閾値を超えない1つの値のみ、単に1つの値または単に絶対的な意味で等しい値しか含まなくなるとすぐに停止される。各サブブロックにおけるすべての係数のインデックスが予め決定された非ゼロ閾値を越えないことによってサブブロック重大フラグによって示される要求を満たす、このような値の1つを各係数に対して以前に符号化/復号されたフラグによって決定されるように、残りの値ドメインまたは残りの値区間が単に含むという事実から、第1の停止基準は生じ、したがって、この値ドメインのこの1つの値は量子化インデックスである。
【0130】
したがって、とりわけ、以下の実施形態が上記で説明された。
【0131】
【0132】
A2.4つの異なった状態間で、前記状態遷移の移行を実行するように構成される、実施形態B5またはA1のいずれかに記載の装置。
【0133】
A3.前記状態遷移の前記状態を更新する際に、前記現在の変換係数の位置の前記量子化インデックスに適用されるバイナリ関数に依存して、第1の後続状態と第2の後続状態との間で決定することによって前記更新を実行するように構成され、前記第1の後続状態および前記第2の後続状態は前記現在の変換係数の位置の前記状態に依存する、実施形態B5またはA1-A2のいずれかに記載の装置。
【0134】
A4.前記バイナリ関数は前記パリティまたはゼロを生じさせる、実施形態B5またはA1-A3のいずれかに記載の装置。
【0135】
A5.前記複数の量子化レベルセットを予め決定された量子化ステップサイズによってパラメータ化し、前記データストリームから前記予め決定された量子化ステップサイズに関する情報を導出するように構成される、実施形態B5またはA1-A4のいずれかに記載の装置。
【0136】
A6.前記複数の量子化レベルセットのそれぞれは、前記複数の量子化レベルセットに対して一定である予め決定された量子化ステップサイズの倍数からなる、実施形態B5またはA1-A5のいずれかに記載の装置。
【0137】
A7.前記複数の量子化レベルセットのうちの前記量子化レベルセットの数は2であり、前記複数の量子化レベルセットは、ゼロおよび予め決定された量子化ステップサイズの偶数倍を含む第1の量子化レベルセットと、ゼロおよび前記予め決定された量子化ステップサイズの奇数倍を含む第2の量子化レベルセットとを含む、実施形態B5またはA1-A6のいずれかに記載の装置。
【0138】
A8.前記デコーダは、前記パスのシーケンスのうちの第1のパスにおいて、1)第1の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグが、スキャン順序において前記第1の変換係数の位置に続く第2の変換係数の位置についての量子化インデックスの絶対値の前記値ドメインを制限するフラグの前に復号されるように(すなわち、任意のsig_flag[k+1] および par_flag[k+1] の前の任意のsig_flag[k] および par_flag[k] )、予め決定された第1のフラグタイプのフラグ(例えば、sig_flag)および予め決定された第2のフラグタイプのフラグ(例えば、par_flag)を前記データストリームから復号し(例えば、実施形態3および4)、ここで、前記予め決定された第2のフラグタイプのフラグの前記復号は、前記第1のパスにおいて、予め決定されたアボート基準が前記スキャン順序においてはじめて満たされる(例えば、第1のパスにいて符号化されたフラグの数が特定の閾値を超える)予め決定された変換係数の位置(例えば、実施形態3: startIdxBypass-1)まで実行され、前記予め決定された第1のフラグタイプのフラグの前記復号は、前記スキャン順序において前記予め決定された変換係数の位置(符号化されたセットのすべてについて、または、任意のアボート基準が測定されていない第1の非ゼロ量子化インデックスについて)を超えて実行され、前記予め決定された第1のフラグタイプの前記フラグは前記現在スキャンされている変換係数の前記量子化インデックスがゼロであるか否かを示す(例えば、sig_flag)、実施形態A1-A7のいずれかに記載の装置。
【0139】
A9.前記予め決定された第2のフラグタイプの前記フラグは、前記現在スキャンされている変換係数についての前記量子化インデックスの前記パリティを示す、実施形態A8に記載の装置。
【0140】
A10.前記第1のパスにおいて、前記第1の予め決定されたフラグタイプの前記フラグが前記現在スキャンされている変換係数の前記量子化インデックスが非ゼロであることを示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグを復号するように構成される、先行する実施形態A8-A9のいずれかに記載の装置。
【0141】
A11.前記予め決定されたアボート基準は、前記第1のパスにおいて復号されるフラグの数が予め決定された閾値を超えることに関連する、実施形態A8に記載の装置。
【0142】
A12.前記第1のパスにおいて、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを想定するか否かを示す第3の予め決定されたフラグタイプのフラグも復号するように構成される、先行する実施形態A8-A11のいずれかに記載の装置。
【0143】
A13.前記第1のパスにおいて、前記現在スキャンされている変換係数についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグが示す変換係数の位置およびその後の変換係数の位置について排他的に、前記第3の予め決定されたフラグタイプの前記フラグを復号するように構成される、実施形態A12に記載の装置。
【0144】
A14.前記第1のパスにおいて、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグが示す変換係数の位置およびその後の変換係数の位置について、前記第2の予め決定されたフラグタイプの前記フラグの後に前記第3の予め決定されたフラグタイプの前記フラグを復号するように構成される、実施形態A13(例えば、実施形態3)に記載の装置。
【0145】
A15.前記第1のパスにおいて、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが非ゼロであることを前記第1の予め決定されたフラグタイプの前記フラグが示す変換係数の位置およびその後の変換係数の位置について、前記第3の予め決定されたフラグタイプの前記フラグが1よりも大きい大きさを示す変換係数の位置について排他的に、前記第2の予め決定されたフラグタイプの前記フラグを復号するように構成される、実施形態A13(例えば、実施形態4)に記載の装置。
【0146】
A16.前記第1のパスに続く第2のパスおいて、前記現在スキャンされている変換係数の位置についての前記量子化インデックスが、絶対値に関して、前記値ドメイン内の最小値であることを前記第1のパスにおいて復号されるフラグによって制限されるように想定するか否かを示す第4の予め決定されたフラグタイプのフラグも復号するように構成される、先行する実施形態A8-A15のいずれかに記載の装置。
【0147】
A17.前記第2のパスに続く1つ以上の追加のパスにおいて、前記残余値を復号するように構成される、実施形態A16に記載の装置。
【0148】
A18.前記第1のパスに続く1つ以上のパスにおいて、前記残余値を復号するように構成される、実施形態A8-A17に記載の装置。
【0149】
A19.最後のパスにおいて、非ゼロ変換係数の符号を復号するように構成される、実施形態A8-A18に記載の装置。
【0150】
A20.前記デコーダは、1)前記状態遷移において、-前記現在の変換係数の位置が、スキャン順序において前記予め決定された変換係数の位置に先行する、または、前記予め決定された変換係数の位置に等しい場合には、前記それぞれの変換係数の位置に対して-、前記現在の変換係数の位置の前記第2のフラグタイプの前記フラグ(例えば、実施形態3:par_flag)に依存して、-前記現在の変換係数の位置が、スキャン順序において前記予め決定された変換係数の位置に続く場合には、前記それぞれの変換係数の位置に対して-、前記現在の変換係数の位置の前記第1のフラグタイプの前記フラグ(例えば、実施形態3:パス(レベル)はゼロを生じさせる)に依存して、前記状態遷移の前記状態の前記更新を実行するように構成され(例えば、実施形態3、第2の変形例“2.状態機械は、パリティ駆動状態機械から重要な駆動状態機械に切り替わる。”)、2)前記コンテキスト適応エントロピー復号において、前記状態遷移が前記現在のスキャンされている変換係数の位置について想定する前記状態に依存して、前記予め決定された変換係数の位置に先行する、それを含むおよびそれに続くすべての前記変換係数の位置に対して、前記現在のスキャンされている変換係数についての前記予め決定された第1のフラグタイプのフラグを復号するためのコンテキストを決定するように構成される、先行する実施形態A8-A19のいずれかに記載の装置。
【0151】
A21.前記装置は、前記コンテキスト適応エントロピー復号において、前記予め決定された変換係数の位置に先行するおよびそれを含む前記変換係数の位置については前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態に依存して、ならびに、前記予め決定された変換係数の位置に続く前記変換係数の位置については前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態とは独立して、前記現在スキャンされている変換係数の位置についての前記予め決定された第1のフラグタイプのフラグを復号するためのコンテキストを決定するように構成される(例えば、実施形態3)、先行する実施形態A8-A19のいずれかに記載の装置。
【0152】
A22.前記デコーダは、1)前記コンテキスト適応エントロピー復号においては、前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態に依存して、前記予め決定された変換係数の位置(112)に先行する、それを含むおよびそれに続くすべての前記変換係数の位置に対して、前記現在スキャンされている変換係数の位置についての前記予め決定された第1のフラグタイプのフラグ(92)を復号するためのコンテキストを決定するように構成され、2)前記状態遷移においては、前記現在の変換係数の位置の前記第1のフラグタイプの前記フラグ(例えば、実施形態3:パス(レベル)がゼロを生じさせる)に依存して、前記スキャン順序において前記ぞれぞれの変換係数の位置に続く変換係数の位置について、前記現在の変換係数の位置について想定される前記状態遷移の前記状態の前記更新を実行するように構成される(例えば、実施形態3:第1の変形例)、先行する実施形態A8-A19のいずれかに記載の装置。
【0153】
【0154】
B2.前記現在スキャンされている変換係数の位置がスキャン順序において前記予め決定された変換係数の位置に先行するか、または前記予め決定された変換係数の位置であるか、もしくは前記予め決定された変換係数の位置に続くか否かに依存して、前記現在スキャンされている変換係数の位置についての前記残余値を異なって復号するために、前記可変長符号をパラメータ化するように構成される、実施形態B1に記載の装置。
【0155】
B3.前記現在スキャンされている変換係数の位置が(スキャン順序において)前記予め決定された変換係数の位置に先行するか、または前記予め決定された変換係数の位置に等しい場合、前記現在スキャンされている変換係数の位置についての前記残余値を復号するために、それを予め決定された基準を満たす先行する変換係数の位置の前記量子化インデックスに徐々に変更することによって、および/または、前記現在スキャンされている変換係数の位置の近傍の変換係数の位置の前記量子化インデックスに依存して、前記可変長符号をパラメータ化するように構成される、実施形態B1またはB2に記載の装置。
【0156】
B4.前記現在スキャンされている変換係数の位置が、スキャン順序において前記予め決定された変換係数の位置の後に続く場合、前記現在スキャンされている変換係数の位置についての前記残余値を復号するために、前記現在スキャンされている変換係数の位置の近傍の変換係数の位置の前記量子化インデックスに依存して、および、前記状態遷移が前記現在スキャンされている変換係数の位置について想定する前記状態に依存して、前記可変長符号をパラメータ化するように構成される、実施形態B1またはB2またはB3に記載の装置。
【0157】
B5.前記デコーダは、a)現在の変換係数の位置について、状態遷移が前記現在の変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセットから1つの再構成レベルのセットを選択し、前記量子化インデックスが前記再構成レベルのセットにおいて指し示す再構成レベルに前記量子化インデックスを逆量子化すること、および、b)前記現在の変換係数の位置についての前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数の位置に続く変換係数の位置のために(この用語は現在、前記更新の意図された目的、または、効果を示すものであることに留意されたい)、前記現在の変換係数の位置(これは、従属量子化の間に現在スキャンされているものであることに留意されたい;“現在スキャンされている”ものは、パスの間に現在復号されているものを表すために使用される。)について想定される前記状態遷移の前記状態を更新すること、によって、前記状態遷移(例えば、トレリス線図を参照)を使用して、前記変換係数の位置の符号化されたセットの前記変換係数の位置の前記量子化インデックスを連続的に逆量子化する(すなわち、従属量子化の使用)ように構成される(実施形態1ないし4)、実施形態B1ないしB4のいずれかに記載の装置。
【0158】
3.前記1つ以上のフラグタイプのセットのそれぞれについて、前記パスのシーケンスのうちの1つにおいて、前記それぞれのフラグタイプの前記フラグを復号するように、前記復号を実行するように構成される、実施形態A1-A22またはB1-B5のいずれかに記載の装置。
【0159】
4.前記可変長符号はゴロム・ライス符号である、先行する実施形態(例えば、実施形態1ないし4)のいずれかに記載の装置。
【0160】
5.前記装置は、前記現在スキャンされている変換係数の位置についての前記残余値を復号するために、予め決定された基準を満たす先行する変換係数の位置の前記量子化インデックスにそれを徐々に変更すること、および/または、前記現在スキャンされている変換係数の位置の近傍の変換係数の位置の前記量子化インデックスに依存すること、によって、前記可変長符号をパラメータ化するように構成される(例えば、実施形態1ないし4,4.5.4における方法1および2)、先行する実施形態のいずれかに記載の装置。
【0161】
6.スキャン順序において最初の非ゼロ量子化インデックスの前記位置と予め定義された変換係数の位置との間で、前記スキャン順序に従って拡張する変換係数の位置の前記符号化されたセットを決定し、前記データストリームに基づいて、前記最初の非ゼロ量子化インデックスの前記位置を特定するように構成される(例えば、実施形態1ないし4)、先行する実施形態のいずれかに記載の装置。
【0162】
7.それぞれの非ゼロ量子化インデックスについて、符号ビットを等確率バイパスモードを使用して前記データストリームから復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0163】
10.予め決定された変換係数の位置のための前記第1のフラグタイプの前記フラグを、前記予め決定された変換係数の前記係数位置に依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0164】
11.a)前記予め決定された変換係数の位置のまわりのローカルテンプレート内の近傍の変換係数の位置のセットについて前記予め決定された変換係数の位置の予め決定されたフラグタイプの前記フラグの前に復号されたフラグのセットに基づいてローカルアクティビティを決定すること、および、b)前記ローカルアクティビティに依存してコンテキストを選択すること、によって、予め決定された変換係数の位置のための前記第1の予め決定されたフラグタイプの前記フラグをコンテキスト適応エントロピー復号を使用して復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0165】
12.前記フラグのセットは、近傍の変換係数の位置の前記セットのために復号された前記予め決定された第1のフラグタイプの前記フラグと、前記予め決定された第2のフラグタイプの前記フラグと、前記予め決定された第3のフラグタイプの前記フラグとを含み(少なくとも;4のようにそれ以上になってもよい)、前記装置は、前記近傍の変換係数の位置のそれぞれについての加数の合計に基づいて前記アクティビティを計算するように構成され、前記加数は前記近傍の変換係数の位置のために復号された(少なくとも)前記予め決定された第1のフラグタイプの前記フラグと、前記予め決定された第2のフラグタイプの前記フラグと、前記予め決定された第3のフラグタイプの前記フラグとに基づいて決定される前記近傍の変換係数の位置についての前記量子化インデックスについての最小想定絶対値、または、最小想定絶対量子化レベルを示す、実施形態11に記載の装置。
【0166】
13.前記デコーダは、1)a)それぞれの変換係数の位置について、状態遷移が前記それぞれの変換係数の位置について想定する状態に一意に基づいて、複数の再構成レベルセットから1つの再構成レベルセットを選択し、前記量子化インデックスが前記再構成レベルのセットにおいて指し示す再構成レベルに前記量子化インデックスを逆量子化すること、および、b)前記現在の変換係数の位置の前記量子化インデックスに依存して、前記スキャン順序において前記現在の変換係数に続く変換係数の位置のために(この用語は現在、前記更新の意図された目的、または、効果を示すものであることに留意されたい)、前記現在の変換係数の位置(これは、従属量子化の間に現在スキャンされているものであることに留意されたい;“現在スキャンされている”ものは、パスの間に現在復号されているものを表すために使用される。)について想定される前記状態遷移の前記状態を更新すること、によって、前記スキャン順序に従った状態遷移(例えば、トレリス線図を参照)を使用して連続的に逆量子化する(すなわち、従属量子化の使用)ように構成され、2)予め決定された変換係数の位置に対する前記第1のフラグタイプの前記フラグを、前記状態遷移が前記予め決定された変換係数の位置について想定する前記状態、および/または、前記予め決定された変換係数の位置のために選択された再構成レベルの前記セットに依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される(例えば、実施形態1ないし4)、先行する実施形態のいずれかに記載の装置。
【0167】
20.予め決定された変換係数の位置のための前記第2のフラグタイプの前記フラグを、前記予め決定された変換係数の係数位置に依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0168】
21.1)予め決定された変換係数の位置のまわりのローカルテンプレート内の近傍の変換係数の位置のセットについて、前記予め決定された変換係数の位置の前記第2の予め決定されたフラグタイプの前記フラグの前に復号されるフラグのセットに基づいて、ローカルアクティビティ、および/または、前記予め決定された変換係数の位置のまわりの前記ローカルテンプレート内の前記量子化インデックスがゼロではない変換係数の数を決定すること、および、2)前記ローカルアクティビティ、および/または、前記非ゼロ量子化インデックスの数に依存して、コンテキストを選択すること、によって、前記予め決定された変換係数の位置のための前記第2の予め決定されたフラグタイプの前記フラグを、コンテキスト適応エントロピー復号を使用して復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0169】
22.前記ローカルアクティビティと前記非ゼロ量子化インデックスの数との間の差に依存して前記コンテキストを選択するように構成される、実施形態21に記載の装置。
【0170】
23.前記フラグのセットは、近傍の変換係数の位置の前記セットのために復号された前記予め決定された第1のフラグタイプの前記フラグと、前記予め決定された第2のフラグタイプの前記フラグと、前記予め決定された第3のフラグタイプの前記フラグとを含み(例えば、第1のスキャンパスにおいて符号化される,実施形態12に関しても同様)、前記装置は、前記近傍の変換係数の位置のそれぞれについての加数の合計に基づいて前記アクティビティを計算するように構成され、前記加数は、前記近傍の変換係数の位置のために復号される前記予め決定された第1のフラグタイプの前記フラグと、前記予め決定された第2のフラグタイプの前記フラグと、前記予め決定された第3のフラグタイプの前記フラグとに基づいて(前記第1のパスにおいてより多くのフラグが送信された場合に、上記のフラグよりも多くのフラグを使用することができることに留意されたい)決定される前記近傍の変換係数の位置についての前記量子化インデックスの最小想定絶対値、または、最小想定絶対量子化インデックスを示す、実施形態20または21に記載の装置。
【0171】
33.予め決定された変換係数の位置のための前記第3のフラグタイプの前記フラグを、前記予め決定された変換係数の係数位置に依存してコンテキストを選択することによって、コンテキスト適応エントロピー復号を使用して復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0172】
31.1)前記予め決定された変換係数の位置のまわりのローカルテンプレート内の近傍の変換係数の位置のセットについての前記予め決定された変換係数の前記第2の予め決定されたフラグタイプの前記フラグの前に復号されたフラグのセットに基づいて、ローカルアクティビティ、および/または、前記予め決定された変換係数の位置のまわりの前記ローカルテンプレート内の、前記量子化インデックスがゼロではない変換係数の数を決定すること、および、2)前記ローカルアクティビティ、および/または、前記非ゼロ量子化インデックスの数に依存してコンテキストを選択すること、によって、予め決定された変換係数の位置のための前記第3の予め決定されたフラグタイプの前記フラグを、コンテキスト適応エントロピー復号を使用して復号するように構成される、先行する実施形態のいずれかに記載の装置。
【0173】
32.前記ローカルアクティビティと前記非ゼロ量子化インデックスの数との間の差に依存して前記コンテキストを選択するように構成される、実施形態31に記載の装置。
【0174】
33.前記フラグのセットは、近傍の変換係数の位置の前記セットのために復号された前記予め決定された第1のフラグタイプの前記フラグと、前記予め決定された第2のフラグタイプの前記フラグと、前記予め決定された第3のフラグタイプの前記フラグとを含み(実施形態12および23の留意点を参照)、前記装置は、前記近傍の変換係数の位置のそれぞれについての加数の合計に基づいて前記アクティビティを計算するように構成され、前記加数は前記近傍の変換係数の位置のために復号された前記予め決定された第1のフラグタイプの前記フラグと、前記予め決定された第2のフラグタイプの前記フラグと、前記予め決定された第3のフラグタイプの前記フラグとに基づいて(実施形態12および23の留意点を参照)決定される前記近傍の変換係数の位置についての前記量子化インデックスについての最小想定絶対値、または、最小想定絶対量子化インデックスを示す、実施形態30または31に記載の装置。
【0175】
C1.変換係数ブロックを復号するためのデコーダであって、1)前記変換係数ブロックが分割されたサブブロックのうちの少なくとも1つのセットのそれぞれについて、前記それぞれのサブブロックが、量子化インデックスの絶対値が予め決定された非ゼロ閾値よりも大きい変換係数を含むか否かを示すサブブロック重大フラグを復号し、また、2)前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が少なくとも1つの存在することを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、a)前記それぞれのサブブロック内の前記変換係数のそれぞれについて、前記それぞれの変換係数の値ドメインを2つの部分に帰納的に二分割し、前記それぞれの変換係数の量子化インデックスが前記2つの部分のうちのどちらに存在するかを示す1つ以上のフラグのシーケンスを連続的に復号するとともに、前記値ドメインが単に1つの値または絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの復号を停止すること、および、前記値ドメインが前記絶対的な意味で異なる値を依然として1つ以上含む場合、前記値ドメインにおける前記それぞれの変換係数の前記量子化インデックスの前記絶対値を示す残余値を連続的に復号することによって、ならびに、前記量子化インデックスの前記絶対値が前記予め決定された非ゼロ閾値よりも大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、b)前記それぞれのサブブロック内の前記変換係数のそれぞれについて、前記1つ以上のフラグの前記シーケンスを連続的に復号するとともに、前記値ドメインが前記非ゼロ閾値を超えない1つの値のみ、単に1つの値または単に絶対的な意味で等しい値しか含まなくなるとすぐに前記シーケンスの復号を停止することによって、前記変換係数ブロックの変換係数を復号するように構成される、デコーダ。
【0176】
C2.前記シーケンスフラグの第1のフラグは、前記第1のフラグが復号される前記変換係数がゼロであるか否かを示す有意フラグである、実施形態C1に記載の装置。
【0177】
C3.前記予め決定された非ゼロ閾値は1であり、かつ、前記装置は、前記量子化インデックスの前記絶対値が1より大きい変換係数が存在しないことを前記サブブロック重大フラグが示すそれぞれのサブブロック内では、前記それぞれのサブブロック内の前記変換係数のそれぞれについて、前記第1のフラグを連続的に復号するように構成される、実施形態C2に記載の装置。
【0178】
C4.1)前記変換係数ブロックが分割された前記サブブロックのうちの少なくとも1つの別のセットのそれぞれについて、前記それぞれのサブブロックがゼロに等しくない変換係数を含むか否かを示す別のサブブロック重大フラグを復号し、2)前記サブブロック重大フラグが復号され、ゼロに等しくない少なくとも1つの変換係数を含むことを前記別のサブブロック重大フラグが示す前記サブブロックをなすサブブロックの前記セットを決定し、3)非ゼロ変換係数が存在しないことを前記別のサブブロック重大フラグが示すそれぞれのサブブロック内では、前記変換係数ブロックの変換係数が、すべてゼロであると推定するように構成される、先行する実施形態C1-C3のいずれかに記載の装置。
【0179】
上記の説明では、ブロックベースのハイブリッドビデオ符号化のための変換係数レベル(量子化インデックス)の量子化およびエントロピー符号化の概念が提示されている。上記で概説した技術は、残差サンプルのブロックのロッシー符号化に適用されてもよい。残差サンプルは、サンプルのオリジナルブロックと予測信号のサンプルとの差を表すことができる(予測信号をイントラピクチャ予測またはインターピクチャ予測、もしくはインターピクチャおよびイントラピクチャ予測の組み合わせ、もしくは任意の他の手段によって得ることができる;特殊な場合には、予測信号はゼロに等しく設定されてもよい)。
【0180】
サンプルの残差ブロックは、信号変換を使用して変換されてもよい。典型的には、線形および分離可能な変換が使用される(線形は、変換が線形であるが、変換係数の追加の丸め処理を組み込むことができる)。しばしば、DCT-IIの整数近似またはDCT/DSTファミリーの他の変換の整数近似が使用される。異なる変換を水平方向または垂直方向に使用することができる。変換は、線形および分離可能な変換に限定されない。任意の他の変換(線形および非分離、または非線形)が使用されてもよい。信号変換の結果として、異なる信号空間において残差サンプルのオリジナルのブロックを表す変換係数のブロックが得られる。特殊な場合には、変換を識別変換に等しくすることができる(すなわち、変換係数のブロックを残差サンプルのブロックに等しくすることができる)。変換係数のブロックは、ロッシー符号化を使用して符号化される。デコーダ側では、再構成された変換係数のブロックが逆変換され、残差サンプルの再構成されたブロックが得られる。最後に、予測信号を加算することにより、画像サンプルの再構成されたブロックが得られる。
【0181】
特に、変換係数のブロックのロッシー符号化に適する、以下の態様は、上記で説明された実施形態において使用される:
●変換係数の従属スカラー量子化:
エンコーダ側では、変換係数のブロックは、変換係数レベル(すなわち、量子化インデックス)のブロックにマップされ、それは忠実度が低減された変換係数を表す。デコーダ側では、量子化インデックスは、再構成された変換係数(量子化のためにオリジナルの変換係数とは異なる)にマップされる。従来のスカラー量子化とは対照的に、変換係数は独立して量子化されない。代わりに、特定の変換係数についての再構成レベルの許容可能なセットは、他の変換係数に対して選択された量子化インデックスに依存する。
●変換係数レベル(量子化インデックス)のエントロピー符号化:
再構成された変換係数(従属スカラー量子化に対する)を表す変換係数レベルは、バイナリ算術符号化を使用してエントロピー符号化される。そのコンテキストでは、従属量子化の特性が、エントロピー符号化の効率を改善するために利用される。
【0182】
異なる実施形態および態様が上記で説明された。説明は、フラグ/残余表現、フラグおよび残余のパスへの分配、コンテキスト導出、コンテキスト適応的に符号化されたフラグの制限などのさまざまな態様に関連する。異なる部分に記載されたこれらの態様、特徴、機能、および詳細を、任意に、個別にまたは一緒に本明細書で説明される実施形態に導入することができる。
また、本明細書で説明される実施形態は、個別に使用することができ、他のチャプタにおける特徴、機能、および詳細のいずれかによって補足することもできる。
また、本明細書で説明される個々の態様は、個々にまたは組み合わせて使用され得ることに留意されたい。したがって、前記態様の他の1つに詳細を追加することなく、前記個々の態様の各々に詳細を追加することができる。
特に、実施形態は特許請求の範囲にも記載されている。特許請求の範囲に記載された実施形態は、任意に、本明細書に記載されるような特徴、機能および詳細のいずれかによって、個別におよび組み合わせて補足され得る。
本開示は、明示的または暗黙的に、ビデオエンコーダ(入力ビデオ信号の符号化された表現を提供するための装置)およびビデオデコーダ(ビデオ信号の符号化された表現に基づいてビデオ信号の復号された表現を提供するための装置)において使用可能な特徴を記載する。したがって、本明細書で説明される特徴のいずれも、ビデオエンコーダの文脈およびビデオデコーダの文脈において使用することができる。
さらに、方法に関連して本明細書で開示された特徴および機能は、(そのような機能を実行するように構成された)装置においても使用することもできる。さらに、装置に関して本明細書で開示された特徴および機能は、対応する方法においても使用することができる。言い換えると、本明細書に開示された方法を、装置に関して説明された特徴および機能のいずれかによって補足することができる。
また、本明細書に記載された特徴および機能のいずれも、“実装の選択肢”の段落で説明するように、ハードウェアまたはソフトウェアで、もしくはハードウェアおよびソフトウェアの組み合わせを用いて実装することができる。
【0183】
いくつかの態様が装置の文脈において記載されてきたが、これらの態様は対応する方法の記述も表すことは明らかであり、ブロックまたはデバイスは方法ステップまたは方法ステップの機能に対応する。同様に、方法ステップの文脈において記載された態様は、対応する装置の対応するブロック、アイテムまたは機能の記述も表す。いくつかのまたはすべての方法ステップは、例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のようなハードウェア装置によって(または用いて)実行することができる。いくつかの実施形態において、1つ以上の最も重要な方法ステップは、このような装置によって実行することができる。
【0184】
特定の実現要求に依存して、本発明の実施形態は、ハードウェアにおいてまたはソフトウェアにおいて実施することができる。実施は、その上に記憶された電子的に読取可能な制御信号を有し、それぞれの方法が実行されるようにプログラム可能なコンピュータシステムと協働する(または協働することができる)、デジタル記憶媒体、例えばフロッピー(登録商標)ディスク、DVD、ブルーレイ(登録商標)ディスク、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリを用いて実行することができる。それ故に、デジタル記憶媒体は、コンピュータ読取可能とすることができる。
【0185】
本発明に係るいくつかの実施形態は、本願明細書に記載された方法の1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読取可能な制御信号を有するデータキャリアを備える。
【0186】
一般に、本発明の実施形態は、コンピュータプログラム製品がコンピュータ上で動作するとき、方法の1つを実行するように動作可能であるプログラムコードによるコンピュータプログラム製品として実施することができる。プログラムコードは、例えば機械読取可能なキャリアに記憶することができる。
【0187】
他の実施形態は、機械読取可能なキャリアに記憶された、本願明細書に記載された方法の1つを実行するコンピュータプログラムを備える。
【0188】
言い換えれば、本発明の方法の一実施形態は、それ故に、コンピュータプログラムがコンピュータ上で動作するとき、本願明細書に記載された方法の1つを実行するプログラムコードを有するコンピュータプログラムである。
【0189】
本発明の方法の更なる実施形態は、それ故に、その上に記録され、本願明細書に記載された方法の1つを実行するコンピュータプログラムを備えるデータキャリア(またはデジタル記憶媒体またはコンピュータ読取可能媒体)である。データキャリア、デジタル記憶媒体または記録媒体は、通常は有形および/または不揮発性である。
【0190】
本発明の方法の更なる実施形態は、それ故に、本願明細書に記載された方法の1つを実行するコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、例えば、データ通信接続、例えばインターネットによって転送されるように構成することができる。
【0191】
更なる実施形態は、本願明細書に記載された方法の1つを実行するように構成されたまたは適合された処理手段、例えばコンピュータまたはプログラマブルロジックデバイスを備える。
【0192】
更なる実施形態は、本願明細書に記載された方法の1つを実行するコンピュータプログラムがその上にインストールされたコンピュータを備える。
【0193】
本発明に係る更なる実施形態は、本願明細書に記載された方法の1つを実行するコンピュータプログラムを、受信機に転送(例えば、電子的または光学的に)するように構成される装置またはシステムを備える。受信機は、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどとすることができる。装置またはシステムは、例えば、コンピュータプログラムを受信機へ転送するファイルサーバを備えることができる。
いくつかの実施形態において、本願明細書に記載された方法のいくつかまたは全ての機能を実行するために、プログラマブルロジックデバイス(例えばフィールドプログラマブルゲートアレイ)を用いることができる。いくつかの実施形態において、フィールドプログラマブルゲートアレイは、本願明細書に記載された方法の1つを実行するために、マイクロプロセッサと協働することができる。一般に、方法は、好ましくはいかなるハードウェア装置によっても実行される。
【0194】
本明細書に記載の装置は、ハードウェア装置を使用して、またはコンピュータを使用して、またはハードウェア装置とコンピュータとの組み合わせを使用して実装されてもよい。
【0195】
本明細書に記載の装置または本明細書に記載の装置の任意の構成要素は、ハードウェアおよび/またはソフトウェアで少なくとも部分的に実装されてもよい。
【0196】
本明細書に記載の方法は、ハードウェア装置を使用して、またはコンピュータを使用して、またはハードウェア装置とコンピュータとの組合せを使用して実行されてもよい。
【0197】
本明細書に記載の方法または本明細書に記載の装置の任意の構成要素は、ハードウェアおよび/またはソフトウェアによって少なくとも部分的に実行されてもよい。
【0198】
本明細書に記載された実施形態は、単に本発明の原理に対して説明したものである。本願明細書に記載された構成および詳細の修正および変更は、当業者にとって明らかであると理解される。それ故に、本発明は、間近に迫った特許請求の範囲のスコープのみによって制限され、本願明細書の実施形態の記載および説明の方法によって表された特定の詳細によって制限されないことが意図される。