(57)【要約】      （修正有）【課題】ビデオシーケンスを符号化するための方法を提供する。【解決手段】方法は、ビデオシーケンスのデジタル画像をブロックに分割することと、各ブロックについて、ブロックの値を、変換係数に変換することと、変換係数を、変換係数のいくつかのセットに構造化することと、変換係数を量子化係数に量子化することと、量子化係数を用いてブロックを符号化することと、ブロックの符号化に基づいてビデオシーケンスを符号化することと、を含む。量子化ステップは、変換係数の１つのセットに対応する量子化係数について、以下の工程を更に含み、量子化係数値の大きさを合計した結果を示す合計値を閾値と比較し、閾値は合計された量子化係数の数に依存し、量子化係数の大きさは、所定の範囲内に包含され、合計した結果が閾値より小さい場合に、量子化係数を０に設定する。【選択図】図５
2019110530.tif 000002
【特許請求の範囲】
【請求項１】
ビデオシーケンスを符号化するための方法であって、符号化装置の処理部が、
前記ビデオシーケンスのデジタル画像をブロックに分割する工程と、
各ブロックについて、
前記ブロックの値を、変換係数に変換する工程と、
前記ブロックの前記変換係数を、変換係数のいくつかのセットに構造化する工程と、
前記変換係数を量子化係数に量子化する工程と、
前記量子化係数を用いて前記ブロックを符号化する工程と、
前記ブロックの前記符号化に基づいて前記ビデオシーケンスを符号化する工程と
を実行し、
前記量子化する工程は、変換係数の１つのセットに対応する量子化係数について、
前記量子化係数の値の大きさを合計した結果を示す合計値を閾値と比較し、
前記合計した結果が前記閾値より小さい場合に、前記量子化係数を０に設定する
ことを含み、前記閾値は前記合計された量子化係数の数に依存し、前記量子化係数の大きさは、所定の範囲内に包含される、ことを特徴とする方法。
【請求項２】
前記量子化する工程は、
前記変換係数に基づいてスケーリングされた係数を決定することと、
スケーリングされた各係数を、量子化係数を取得するためにシフトすること
と更に含み、
スケーリングされた係数をシフトすることは、中間量子化係数を取得するための第１の中間シフトと、前記量子化係数を取得するための前記中間量子化係数の第２のシフトとに分離され、
前記合計値は、前記中間量子化係数の大きさを合計した結果を表すことを特徴とする請求項１に記載の方法。
【請求項３】
前記中間量子化係数の大きさは前記所定の範囲内に包含されることを特徴とする請求項２に記載の方法。
【請求項４】
変換係数のセットに対応する前記量子化係数は、前記変換係数のセットに対応する前記中間量子化係数の１つが所定の範囲の上限より大きい値を有する場合には、ゼロに設定されないことを特徴とする請求項２または３に記載の方法。
【請求項５】
少なくとも１セットの変換係数に対応する前記量子化係数は、前記変換係数のセットに対応する前記量子化係数の１つが所定の範囲よりも大きい場合に、ゼロに設定されないことを特徴とする請求項１に記載の方法。
【請求項６】
前記変換係数に因子パラメータを乗算し、デッドゾーンパラメータを加算することにより、スケーリングされた係数が取得され、デッドゾーンパラメータは前記変換係数のセットにおける前記変換係数の前記インデックスｋを用いて線形にスケーリングされることを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記変換係数のそれぞれについて、前記デッドゾーンパラメータＤＺk,j が、ＤＺk,j = ＤＺ - ｃ*ｋの式に従って計算され、ｊは、前記ブロック内の前記変換係数のセットのインデックスであり、DZは、グローバルデッドゾーンパラメータであり、ｃは定数パラメータであることを特徴とする請求項６に記載の方法。
【請求項８】
前記定数パラメータｃは、第１の値Ｃ１により所定のブロックについて初期化され、対応する量子化係数がすべて０に設定されていない変換係数の第１のセットに遭遇すると、第２の値Ｃ２に変更されることを特徴とする請求項７に記載の方法。
【請求項９】
前記方法はＨＥＶＣに適用され、前記ブロックは変換ユニットであり、前記変換係数のセットは係数グループであることを特徴とする請求項１から８のいずれか１項に記載の方法。
【請求項１０】
ビデオシーケンスを符号化するための符号化装置であって、
処理部であって、
前記ビデオシーケンスのデジタル画像をブロックに分割し、
各ブロックについて、
前記ブロックの値を、変換係数に変換し、
前記変換係数を、変換係数のいくつかのセットに構造化し、 
前記変換係数を量子化係数に量子化し、 
前記量子化係数を用いて前記ブロックを符号化し、
前記ブロックの前記符号化に基づいて前記ビデオシーケンスを符号化する
ように構成された処理部を備え、
前記量子化は、変換係数の１つのセットに対応する量子化係数について、
前記量子化係数の値の大きさを合計した結果を示す合計値を閾値と比較し、
前記合計した結果が前記閾値より小さい場合に、前記量子化係数を０に設定する
ことを更に含み、前記閾値は前記合計された量子化係数の数に依存し、前記量子化係数の大きさは、所定の範囲内に包含されることを特徴とする符号化装置。
【請求項１１】
コンピュータプログラムであって、コンピュータによりロードされ実行されると、前記コンピュータに請求項１から９のいずれか１項に記載の方法を実行させための命令群のシーケンスを含むコンピュータプログラム。
【請求項１２】
請求項１から９のいずれか１項に記載の方法を実行するためのコンピュータプログラムの命令群を記憶した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオデータを符号化するための方法及び装置に関する。より詳細には、量子化パラメータ及び量子化処理の最適化に関する。
【０００２】
ビデオデータの予測符号化は、フレームを画素ブロックに分割することに基づくものである。各画素ブロックについて、利用可能なデータ内で予測ブロックがサーチされる。予測ブロックは、前フレーム内のブロックであってもよいし、あるいは、現フレーム内の隣接する、それ以前に符号化／復号された画素から生成されてもよい。予測ブロックを決定するための方法が異なれば、符号化モードも異なって定義される。符号化結果は、予測ブロックと、符号化対象のブロックと予測ブロックとの間の差分からなる残差ブロックとの指示となる。
【０００３】
残差ブロックの符号化は、変換、量子化、及び、残りの情報の最終的なエントロピー符号化からなる３つの主なステップに基づく。
【０００４】
変換は、HEVC用語に従う「変換ユニット（transform unit）」と呼ばれる、フレームをブロックに分割する新たな区画を定義することにあり、その上で、変換を変換ユニット要素に適用する。変換が典型的には目的とするところは、変換単位における空間値を周波数係数に変換し、係数を含む変換単位を得ることである。
【０００５】
量子化は、これらの係数の大きさをスケーリングすることにあり、理想的には、結果として生じる画像の劣化が許容可能とみなされる場合に、それらの大多数をゼロに設定する。高周波係数は、しばしばゼロに設定される適当な候補である。これは高周波係数が画像における細部を定義し、結果として得られる画像をひどく劣化させずに破棄可能であるという事実に基づく。
【０００６】
量子化は符号化において非常に重要なステップであり、符号化効率に大きな影響を与える。量子化は、結果として得られる画像の品質、及び、符号化されたビットストリームのサイズを決定する。量子化は、符号化において複雑であり、時間を消費するものであってもよい。
【発明の概要】
【０００７】
本発明は、上記１つ以上の懸念を解決するものとして考え出されたものである。本発明は、改善された量子化方法を含む符号化方法に関わる。提供される当該方法は、レート歪最適化量子化アルゴリズムのような既知の方法よりも複雑度が低く、かつ、同一の品質を低ビットレートで実現する。
【０００８】
発明の第１の側面に従えば、ビデオシーケンスを符号化するための方法が提供される。当該方法は、符号化装置の処理部が、
ビデオシーケンスの画像をブロックに分割する工程と、
各ブロックについて、
ブロックの値を、変換係数に変換する工程と、
ブロックの変換係数を、変換係数のいくつかのセットに構造化する工程と、
変換係数を量子化係数に量子化する工程と、
量子化係数を用いてブロックを符号化する工程と、
ブロックの符号化に基づいてビデオシーケンスを符号化する工程と
を実行し、
量子化する工程は、変換係数の１つのセットに対応する量子化係数について、
量子化係数の値の大きさを合計した結果を示す合計値を閾値と比較し、
合計した結果が閾値より小さい場合に、量子化係数を０に設定する
ことを更に含み、当該閾値は合計された量子化係数の数に依存し、量子化係数の大きさは、所定の範囲内に包含される。
【０００９】
ある実施形態では、量子化する工程は、
変換係数に基づいてスケーリングされた係数を決定することと、
スケーリングされた各係数を、量子化係数を取得するためにシフトすることと、を含み、
スケーリングされた係数をシフトすることは、中間量子化係数を取得するための第１の中間シフトと、量子化係数を取得するための中間量子化係数の第２のシフトとに分離され、
合計値は、中間量子化係数の大きさを合計した結果を表す。
【００１０】
ある実施形態において、中間量子化係数の大きさは、所定の範囲内に包含される。
【００１１】
ある実施形態において、少なくとも１セットの変換係数に対応する量子化係数は、変換係数のセットに対応する中間量子化係数の１つが所定の範囲の上限よりも大きい場合には、ゼロに設定されない。
【００１２】
ある実施形態において、変換係数のセットに対応する量子化係数は、変換係数のセットに対応する量子化係数の１つが所定の範囲を超える値を有する場合には、ゼロに設定されない。
【００１３】
ある実施形態において、変換係数に因子パラメータを乗算し、デッドゾーンパラメータを加算することにより、スケーリングされた係数が取得され、デッドゾーンパラメータは変換係数のセットにおける変換係数のインデックスｋを用いて線形にスケーリングされる。
【００１４】
ある実施形態では、変換係数のそれぞれについて、前記デッドゾーンパラメータＤＺk,jが次式に従って計算される。
ＤＺk,j = ＤＺ - ｃ.ｋ
ｊは、ブロック内の変換係数のセットのインデックスであり、ＤＺは、グローバルデッドゾーンパラメータであり、ｃは定数パラメータである。
【００１５】
ある実施形態において、定数パラメータｃは、第１の値Ｃ１により所定のブロックについて初期化され、対応する量子化係数がすべて０に設定されていない変換係数の第１のセットに遭遇すると、第２の値Ｃ２に変更される。
【００１６】
ある実施形態において、方法はＨＥＶＣに適用され、ブロックは変換ユニットであり、変換係数のセットは係数グループである。
【００１７】
発明の別の側面に従えば、ビデオシーケンスを符号化するための符号化装置が提供される。当該装置は、
ビデオシーケンスのデジタル画像をブロックに分割し、
各ブロックについて、
ブロックの値を、変換係数に変換し、
これらの変換係数を、変換係数のいくつかのセットに構造化し、
変換係数を量子化係数に量子化し、
量子化係数を用いてブロックを符号化し、
ブロックの符号化に基づいてビデオシーケンスを符号化する
ように構成された処理部を備え、
量子化は、変換係数の１つのセットに対応する量子化係数について、
量子化係数の値の大きさを合計した結果を示す合計値を閾値と比較し、 
合計した結果が閾値より小さい場合に、量子化係数を０に設定する
ことを更に含み、当該閾値は合計された量子化係数の数に依存し、量子化係数の大きさは、所定の範囲内に包含される。
【００１８】
発明の別の側面によれば、プログラム可能な装置のためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、プログラム可能な装置によりロードされ実行されると、発明に対応する方法を実行する命令シーケンスを含む。
【００１９】
発明の別の側面によれば、発明に対応する方法を実行するためのコンピュータプログラムの命令群を格納したコンピュータ可読記憶媒体が提供される。
【００２０】
発明に対応する方法の少なくとも一部は、コンピュータで実施されてもよい。従って、本発明は完全にハードウェアとして実装される実施形態の態様、完全にソフトウェア（ファームウエア、常駐ソフトウェア、マイクロコード等を含む）として実装される実施形態の態様、或いは、ソフトウェアとハードウェアの態様を結合した実装を有する実施形態を採ってもよく、これら全ては本明細書において、「回路」、「モジュール」、或いは、「システム」と一般には呼ばれる。さらに、本発明は、媒体に具体化されたコンピュータで使用可能なプログラムコードを有する表現の、任意の有形媒体に具体化されたコンピュータプログラム製品の形態を取ることができる。
【００２１】
本発明はソフトウェアで実装することができるので、本発明は、任意の適切な搬送媒体上のプログラム可能な装置に提供するためのコンピュータ可読コードとして実施することができる。有形の非一時的搬送媒体は、フロッピーディスク、CD-ROM、ハードディスクドライブ、磁気テープ装置または固体メモリ装置等のような記憶媒体を含むことができる。一時的キャリア媒体は、電気信号、電子信号、光信号、音響信号、磁気信号または、マイクロ波またはRF信号などの電磁信号等の信号を含むことができる。
【００２２】
発明の実施形態は、以下の図面を参照して、例示の目的においてのみ記述される。
【図面の簡単な説明】
【００２３】
【図１】図１は、オリジナルシーケンス画像から符号化ビットストリームへの符号化プロセスを示す。
【図２】図２は、デジタル画像を、符号化において利用される画素ブロックに分割するための異なる手法を示す。
【図３】図３は、係数グループ及びスキャン順序を示す。
【図４】図４は、非空の係数グループの残差データがどのように送信されるかを示す。
【図５】図５は、発明の実施形態に対応するザッピング量子化処理の工程を示す。
【図６ａ】図６aは、ザッピング処理の代替的な実施形態の工程を示す。
【図６ｂ】図６ｂは、ザッピング処理の別の代替的な実施形態の工程を示す。
【図７】図７は、デッドゾーンパラメータを決定する方法の工程を示す。
【図８】図８は、発明の１以上の実施形態における実装のためのコンピューティング装置のブロック図である。
【発明を実施するための形態】
【００２４】
発明の文脈は、ビデオコーディングに関わる。全体的な符号化プロセスは図１との関係で記述される。
【００２５】
図１は、オリジナルシーケンス画像から符号化ビットストリームへの符号化プロセスを示す。これは一般的な記述であって、その詳細の全てが本発明に関連するわけではなく、本明細書では説明目的に過ぎない。デジタルイメージｉ0からｉn１０１のオリジナルシーケンスが、符号化プロセス１００のステップを実行するエンコーダにより入力として受信される。各デジタル画像は、画素として知られる、サンプルのセットにより表現される。ビットストリーム１００は符号化プロセス１００により出力される。
【００２６】
入力デジタル画像ｉ0 からｉn１０１は、ステップ１０２の間に画素ブロックに分割される。ブロックは画像の部分に対応し、可変サイズ（例えば、４ｘ４、８ｘ８、１６ｘ１６、３２ｘ３２...画素）を有していてもよい。符号化モードが、ステップ１０６において各入力ブロックまたは符号化ユニットについて選択される。２つの群の符号化モード：（イントラ予測として知られる）空間的予測に基づく符号化モード（ここではINTRAという）、及び、（例えば、インター符号化、Merge、或いは、SKIPといった）時間的予測に基づく符号化モード（ここではINTERという）が提供される。可能性のある符号化モードが評価される。評価はスコアを決定することを含んでもよく、スコアは、最良スコアを有するモードを選択するためにステップ１０６により利用される。このスコアは、典型的なレート歪み最適化、典型的にはレート制約下で歪みが最小化されるラグランジュ最適化のような、歪みベース（例えばSAD）またはより洗練されたものとすることができる。
【００２７】
ステップ１０３は、INTRAを実施する。ここでは、所与の符号化対象ブロックが、当該符号化対象ブロックの近傍の復号済み画素から計算された予測因子（predictor）により予測される。選択されたINTRA予測因子の指示、及び、残差ブロックと呼ばれるところの所与の符号化対象ブロックと予測因子との差分が符号化される。
【００２８】
時間的予測は、モジュール１０４における動き予測と、動き補償ステップ１０５により実施される。まず、参照画像セット１１６から、参照画像が選択される。参照領域あるいは画像部分とも呼ばれる参照画像の一部が、動き予測ステップ１０４において選択される。この選択は、典型的には  選択ブロックのビットストリームにおけるシグナリングレートを考慮しつつ、参照画像において最も類似する対応ブロックを発見することにより行われる。動き補償ステップ１０５は、選択領域を利用して符号化対象ブロックを予測する。残差ブロックと呼ばれる、選択された参照領域と所与のブロックとの差分は、動き補償ステップ１０５により計算される。選択された参照領域は動きベクトル（Mv）により示される。この手法は、いくつかの参照画像を選択することにより拡張することができる。
【００２９】
このように、空間的予測及び時間的予測の両方のケースにおいて、予測データからオリジナルデータを減算することにより残差が計算される。ステップ１０３において実装されるINTRA予測では、予測方向が符号化される。時間的予測においては、例えば、動きベクトル（Mv）のような、動きを表す少なくとも１つの情報アイテムが符号化される。
【００３０】
ビットレートを更に削減するために、動きベクトルを、選択された動きベクトル予測因子との差分により符号化してもよい。動きベクトル予測及び符号化ステップ１１７は、動きベクトルフィールド１１８から動き情報予測因子の１セットを取得する。
【００３１】
上述のように、符号化プロセス１００は、レート歪基準のような、符号化コスト基準を適用することにより符号化モードを選択するための選択ステップ１０６を含む。
【００３２】
冗長性を更に削減するために、変換ステップ１０７により残差ブロックに変換が適用される。得られた変換データは、量子化ステップ１０８により量子化され、エントロピー符号化ステップ１０９によりエントロピー符号化される。最後に、符号化ブロックにおける符号化済みの残差ブロックは、選択された動きベクトル予測因子のインデックスのような使用される予測因子に関する情報と共に、ビットストリーム１１０に挿入される。
【００３３】
SKIPモードで符号化されたブロックについては、残差ブロックや残差動きベクトル無しで、予測因子のインデックスのみがビットストリーム内に符号化される。同様に、Mergeモードは、残差ブロックが送信されてもよいが、残差動きベクトルが送信されないことが通知される。
【００３４】
符号化プロセス１００はまた、後続画像の動き推定のための参照画像を生成するために、符号化された画像の復号も実行する。これにより、エンコーダ及びデコーダが、同一の参照フレームを有するビットストリームを受信することが可能になる。逆量子化ステップ１１１は、量子化データの逆量子化を実行し、その後に逆変換ステップ１１２において逆変換が行われる。逆イントラ予測ステップ１１３は予測情報を利用して所与のブロックのために利用される予測因子を決定し、逆動き補償ステップ１１４は、ステップ１１２により得られた残差を参照画像セット１１６から得られた参照領域に加算する。随意的に、デブロッキングの影響を除去し、復号画像の視覚的な品質を向上させるために、デブロッキングフィルタステップ１１５が適用される。送信損失が存在しないのであれば、エンコーダとデコーダとで同一の処理を適用することを確実にするために、同一のデブロッキングフィルタがデコーダにも適用される。
【００３５】
本符号化プロセスでは、発明は、残差ブロックの符号化に着目している。残差ブロックは、入力ブロック（コーディングユニット）と同一のサイズを有するブロック値である。各値は、予測ブロックの画素値と、コーディングユニットの対応する画素値との差分である。ゆえに、残差ブロック内の値は符号付き整数である。
【００３６】
予測符号化の目的は、予測ブロックを示す代わりに、符号化されるブロック内の値の大きさを減少することにある。本書面において、大きさの語は絶対値をいう。コーディングユニットの画素値に非常に近い画素値を有するような良好な予測ブロックは、小さい値を有する残差ブロックが得られ、非常に効率的に符号化されることは容易に理解される。
【００３７】
残差ブロックの符号化は、３つの主たるステップを含む。即ち、変換、量子化、エントロピー符号化と呼ばれる実際の符号化である。これらのステップは、図１においてステップ１０７、１０８及び１０９で表されている。
【００３８】
変換ステップ１０７の背景にある基本的な概念は、符号化するデジタル画像における周波数を扱うことにある。デジタル画像では、最高周波数は、最も細かい詳細レベルに対応する。この最高レベルの詳細は、デジタル画像から除去されてもよく、その場合でもユーザによる劣化の知覚はわずかであり、かつ、符号化するデータ量は実際に抑制される。これらの周波数を扱うためには、コーディングユニットを周波数ドメインに変換する必要がある。DCT（離間コサイン変換）や、DST（離散サイン変換）といった、いくつかの変換を利用することができる。これらの変換により、空間ドメインにおける残差ブロックに対応する、周波数ドメインにおける係数ブロックを取得することができる。
【００３９】
量子化ステップ１０８は、係数の大きさを更に削減し、それらのいくつかを無効化することにも対処する。エントロピー符号化ステップ１０９は、残った量子化された係数の符号化を行う。
【００４０】
HEVCでは、他の多くの符号化標準と同様に、ステップ１０７における変換は単一の変換に限定されるものではない。サイズに加えて、後述のように、DCTやDSTといった空間-周波数変換や、或いは、変換無しを選択できる。出力が変換されているかどうかに関わらず、それらをステップ１０８において量子化することができる。しかし、HEVCも量子化をスキップすることを許容している。よって、ステップ１０９は、量子化された、或いは、量子化されていない情報、これらは変換係数、又は、画素残差かもしれない、を受信できる。
【００４１】
符号化プロセス１００の全ステップは、エンコーダ装置内の対応するモジュール内に典型的には実装される。これらのモジュールはソフトウェアまたはハードウェアにおいて実装されてもよい。
【００４２】
ステップ１０２、１０８及び１０９と関連するＨＥＶＣのいくつかの側面を以下で説明する。
【００４３】
量子化は、符号化の効率に影響する。積極的な符号化、例えば、大きな量子化ステップサイズを利用することは、暗に残存する情報がより少なくなることを意味するが、一方で生成される対応ビットストリームデータのデータ量は削減される。例えばHEVCの基準ソフトウェアで見出される標準的実装は、よって、簡素化のためにここで提供される。
【００４４】
変換のｉ番目の係数ＤＣＴiについて、対応する量子化された係数Ｑiは、以下のように計算することができる。
Ｑi = ＤＣＴi ／ ＤＩＶ;
ここで、DIVはスカラ量子化器と関連付けられ、これは、ビットレート削減、情報損失、即ち、取得されるデジタル画像の品質を制御するパラメータである。しかしながら、ＤＣＴiとＱiはしばしば整数である必要があり、除算演算は実装するにはコストがかかるため、実際に使用される式は次のようになる。
Ｑi = (ＤＣＴi * fct + DZ) ＞＞ shift;
スケーリングされた係数（DCTi * fct + DZ）が生成され、量子化された係数を取得するためにシフトされる。
【００４５】
このシフト演算は、整数を表すビットマップにおいてビットを右方向に移動させることにある。これは２のshiftのべき乗で割ることと等価である。これらの表現は、fct = 2shift / DIV の場合に、類似であることが分かる。
【００４６】
しかしながら、これは整数演算であるので、結果は整数に丸められる必要がある。値DZは、通常デッドゾーンパラメータと呼ばれ、最も近い小さい整数への「切り捨て」の程度を制御する。2shift-1の値は、DIV/2と等価であり、最も近い整数に丸めることに対応する。しかし、この値は、符号化において重要である。Qiの値が大きくなるほど、ビットストリームが大きくなることがよくある。HEVCの例として、実際に使用されている丸め（DZについて、ほぼＤＩＶ／３とＤＩＶ／６に対応）の代わりに、前の「最も近いものへの丸め」（すなわちＤＩＶ／２）を使用すると、符号化効率が２０％低下する。即ち、同品質のために20％多くの帯域幅/ストレージが必要となる。
【００４７】
HEVCにおける詳細は、本発明のいくつかに関連し、以下で詳細に説明する。
【００４８】
図２は、符号化時に使用されるデジタル画像の画素のブロックへの異なる分割を示す。
【００４９】
ここで、関心ブロックの最初のタイプは、コーティング・ツリー・ブロック（CTB）２０１と呼ばれる矩形ユニットである。これは、更に四分木に従い、より小さな矩形ユニット、通常はブロックとして知られ、より詳細には、HEVCにおいてコーディングユニット１０２（CU）と呼ばれるものに再分割される。ここで、図２のCU２０２について考える。CU２０２は更に２つに分割される。予測分割は、INTRA符号化の場合は2Nx2NまたはNxN、INTER符号化の場合は2Nx2N、Nx2N、2NxN、および非対称動きパーティション（AMP:Asymmetrical Motion Partitions）nLx2N、... 2NxnBのいずれかになる。各分割は、予測ユニット（PU）と呼ばれる。
【００５０】
残余四分木（RQT）は、符号化ユニット２０２を、変換ユニット（TU）と呼ばれるより小さい矩形「変換」ブロックに分割する。四分木は、当業者には周知のツリー構造であり、リーフはリーフノード（即ち、分割されない）に到達するまで、４つのサブリーフに分割される。これにより、どのようにCUがTUに分割されるかを効率的に示すことができる。
【００５１】
特に、RQTは、四分木のどのリーフが空であるか、即ち、残余の無い四分木リーフ、を示すフラグを含む。RQTによれば、もし変換ユニットにデータがあれば、残余に関連する情報が送信される。HEVCは、TU内の変換を無効化することができるが、量子化された残差と量子化された変換係数は同様に符号化される点に留意すべきである。
【００５２】
変換ユニットは、デジタル画像の分割を表す一方で、変換ユニットの画素値は典型的には残差画素値であって、デジタル画像の元々の画素値ではないことに留意すべきである。これらの残差値は、元々の画素値と、選択された符号化モードに従って決定された予測因子の画素値との間の差分を表す。
【００５３】
図３は、係数グループ及びスキャン順序を示す。
【００５４】
変換係数を使用する場合、残差はしばしば、それらが変換ユニット内でどのように分布しているかに関する統計的バイアスを有する。これに対応して、これらを特定の方法でスキャンすることにより、これらのバイアスを利用して生成されるビットストリームデータ量を低減することができる。
【００５５】
まず、係数は、係数グループ（CG）と共通に呼ばれる４ｘ４の係数のグループにまとめられる。図３において、８ｘ８の変換ユニット３０１、３０２及び３０３内には、４つのそのようなグループが存在する。変換ユニット３０１について３０１−１、３０１−２、３０１−３及び３０１−４と呼び、TU３０２及び３０３についても同様である。HEVCにおけるエントロピー符号化において、係数グループにおける変換係数の存在は、係数グループフラグを値１に設定することにより通知される。HEVCにおいては、最後の係数の位置が送信されるので、最後の非空係数グループを決定することができるまた、最初のグループ３０１−１、３０２−１及び３０３−１は常に送信される。ブロックが変換され、従って、変換係数が含まれるとき、この最初のグループは、DCT係数として最低周波数を保持する。
【００５６】
係数がビットストリームに含まれる順序も重要である。まず、それは逆順である：最後の係数が最初に送信される。これに加えて、いくつかのケースでは、INTRA予測モードの４ｘ４及び８ｘ８の変換ユニットについて水平及び垂直スキャンが行われる（その詳細は本発明とは関係がない）。他の場合、（INTER予測、INTRA予測の他の場合）スキャンは対角的である。水平スキャン順序は、変換ユニット３０２により示され、垂直スキャン順序は変換ユニット３０３により示され、対角スキャン順序は変換ユニット３０１により示される。
【００５７】
図３は、全体設計を示す：最後の係数（そのグループは、黙示的に非空であり、対応するフラグは送信されない）から開始する。これは説明のためのグループ３０１−４、３０２−４、３０３−４である。係数は、グループ内の係数のパターンに従ってスキャンされる。当該グループ内の係数の全ての情報が当該スキャンに従って読み出されると、次のグループが検証される。これらはグループ３０１−２、３０２−３及び３０３−２である：係数のスキャン順序がまた係数グループに適用される。
【００５８】
いずれにしても、明示的に通知されなければならない各グループ（すなわち、最初と最後のものを除くすべて）について、当該グループが残差データを保持するかどうかを判定するためにフラグを送信しなければならない。この残差データについては、次節において詳細に説明する。
【００５９】
図４は、非空係数グループ４０１について残差データがどのようにして送信されるかを示す。図４はまた、明示的に送信される単一係数グループを含む４ｘ４変換ユニットを示す。
【００６０】
特に、「last_sig_coeff_x」および「last_sig_coeff_y」という名前のシンタックス要素は、各変換ユニットについて最後の係数の位置を示すために提供される。より詳細には、それにより以下の情報の伝達が可能となる。最後の係数グループ：最後の係数よりも後ろには係数が存在しないため、対応する係数グループは空である。そして、当該最後の係数グループ内では、いくつの係数が存在するか（その他は１６係数を有する）が明示的に通知される。
【００６１】
次に、スキャンに従って送信されたグループの係数のそれぞれについて、「sig_coeff_flag」と呼ばれるフラグが、係数がゼロであるか否かを示す。もしゼロであれば、その値を知るために他の情報は必要ない。これは非常に重要である。というのも、変換残差は量子化後は非常にまばらになり、かつ、ゼロは最も共通の値であるためである。実際に、このフラグは現在提示されているプロセスに関係する。
【００６２】
すべての非ゼロ係数が分かっているので、逐次情報の４つの反復的な所謂マップが存在する：それぞれの新しいマップは、どの係数がより多くの情報、すなわち次のマップについての情報を必要とするかの情報を提供する。
【００６３】
最初のマップ(「sig_coeff_flag」)は、送信される各係数が非ゼロであるかどうかを示す：デコーダは、次のレベルに移行する前に復号されたフラグの完全なマップを有しているであろう。
【００６４】
次のマップ(「coeff_abs_level_greater1_flag」)は、各非ゼロ係数について、係数の大きさが１より大きいかどうかを示す。
【００６５】
次のマップ(「coeff_abs_level_greater2_flag」)は、大きさが１よりも大きい係数について、２よりも大きいかどうかを示す。
【００６６】
次のマップは、２より大きい係数について、残りの大きさ（即ち、大きさが「レベル」の係数についてはレベル−３になる）を特定のファミリーのエントロピー符号（「３次の指数関数-ゴロム符号」、その詳細は本発明にとって重要ではない））と共に示す。
【００６７】
最後のマップ(「coeff_sign_flag」) は、全ての非ゼロ係数について、係数の符号を示す。
【００６８】
各レベルの情報は、以前のものが必要な場合に反復的に決定され、各レベルはいわゆるマップを生成する。
【００６９】
図４は、残差データの符号化を示す。係数グループ４０１は係数を含む。係数グループ４０１は４０２により示されるスキャン順序に従ってスキャンされる。このことは、係数グループが右下隅から左上隅へ、４０２で示される順序でスキャンされることを意味する。このスキャン順序では、最初の係数がナル（null）であり、このスキャン順序で最初に登場する非ナル係数は、−１の値を有する右上の係数である。これは、いわゆる最後の有効ビットに対応し、その座標は（３，０）である。
【００７０】
そこで、テーブル４０３に係数の符号化を示す。テーブルの先頭行は値３を含む。これは、最初の非ナル係数−１のｘ座標に対応する。テーブルの第２行は、値0を含む。これは、最初の非ナル係数−１のｙ座標に対応する。第３行目は、有効係数マップに対応する。最初の非ナル値−1から始まり、最後の値、これはスキャン順序における左上隅の値１５に対応する、で終わる。残りの係数のそれぞれについては、値「１」により対応する係数が非ナルであることが示され、値「０」により対応する値がナルであることが示される。残りの係数のシーケンス(-1, 0, 1, 0, 0, 0, 3, 0, -5, 9) は、テーブルの第３行に示されるマップ (1, 0, 1, 0, 0, 0, 1, 0, 1, 1) に対応する。
【００７１】
非ナル係数のそれぞれについて、第４行は非ナル係数が１より大きい絶対値を有するかどうかを示す。よって、係数３、−５、９に対応する値は値「１」で示される。第５行は、どの係数が２より大きい絶対値を有するかを示している。同一の係数が第５行において示されている。
【００７２】
次に、第６行は２より大きい絶対値を有する各係数について、残余値を示す。残余値は、係数から３を引いた絶対値に対応する。よって、第６行は係数（３、−５、９）に対応する残余値（０、２、６）を示す。
【００７３】
第７行は、非ナル係数のそれぞれについて、値の符号を示す。よって、係数−１及び−５はこの行において値「１」を有する。
【００７４】
テーブル４０４は、テーブル４０３の実際の値に順に対応するビットストリームに符号化された、結果として得られるシーケンスを示す。最初の３行は、有効マップに対応し、それ以降は係数レベル及び符号に対応する。
【００７５】
図１のステップ１０９において、４０４に示される生成された値は、CABAC （context-adaptive binary arithmetic coding：コンテキスト適応２進算術符号化）を用いてエントロピー符号化されている。
【００７６】
この符号化は、CABACとして短縮され、対応するシンボルの後続の値を効率的に符号化するために、ビットストリーム内の前のシンボル（例えば、フラグまたはシンタックス要素）からの値の条件付確率を利用する。これは２つの例により説明することができる。それらの確率はそれぞれ新しいシンボルを用いて更新される。
【００７７】
図３において、係数グループ３０１−１が変換ユニットのいくつかの位置に存在する場合を想定すると（即ち、８ｘ８変換ユニットについて残差データを黙示的に保持しているが、そのことは無視する）、係数グループフラグの符号化のための文脈は、（ラスタスキャン順序において）右及び下に隣接する考慮されたフラグの値、これは{0, 0}, {1, 0}, {0, 1}, or {1, 1}のいずれかである、をチェックすることを含む。これにより、文脈を導出することが可能になり、当該フラグの条件付き確率を見つけることができる。それが一度読み出されれば、その有効値は当該確率を更新するために利用される。
【００７８】
同様に、図４において、各有効係数フラグは算術符号化され、条件付き確率はその近傍の有効係数フラグの値に依存する。
【００７９】
係数のサブセットの概念を空間周波数変換内に導入するために、本発明者の知るところの最初のブロックベース符号化標準であったHEVCのケースについて詳細に説明した。現在検討中のものは、JVET（Joint Video Exploration Team）として非公式に知られているHEVCの後継であり、その基準ソフトウェア実装はJEM（Joint Exploration Modelの略）と呼ばれている。JVETは現在、主にHEVC上に多くの追加を行ったものからなっている。その結果、エントロピー符号化に関する多くの詳細、特に係数のコンテキストの導出が変更された。しかしながら、係数グループは依然として存在し、よって、記述した処理は以前適用される。係数グループのサイズが変化するか、またはサブセットが異なるか（変換ユニットと係数グループの間の構造、または非矩形などの構造を含む）にかかわらず、記載されたプロセスはかなり単純に置き換えられてもよい。
【００８０】
本発明が適用可能なコーデックの別の例は、まだ完成していないが、OpenMediaのためのアライアンスによりリリースされる予定の最初のコーデックであるAV1コーデックである。それが適用される例は、例えばサブバンドへの周波数の特定の分割、およびこのレベルでの特定の情報の符号化である。
【００８１】
その結果、符号化ユニットまたは変換ユニットなどのHEVC特有の用語の使用は、符号化ブロックまたは変換ブロック、または特定のコーデックに関連する任意の対応する用語に等しく置き換え可能なことが理解される。
【００８２】
図５は、発明の実施形態に対応するザッピング量子化プロセスを示す。
【００８３】
量子化プロセスは、所与の変換ユニット（TU）を取得することにより、ステップ５０１で開始される。このステップは、当該TUに従うプロセスの初期化とみなすことができる。但し、その詳細は本発明とは無関係である。当該変換ユニットが与えられると、変換ユニットサイズ、そのタイプ（INTER予測、又は、INTRA予測）、または、そのスライスタイプなどの様々な特性は既知である。よって、ステップ５０２では、エンコーダは、変換ユニット特性に従って、ザッピング（量子化）モデルパラメータと同様に、量子化の様々な設定を選択する。具体的には、エンコーダは、ステップ５０８で使用される閾値Tのような、ザッピング決定のためのモデルパラメータと同様に、量子化式において使用するための適切なデッドゾーンを選択するであろう。これらのパラメータは事前に経験的に決定され、かつ、所定の実施形態において一定である。例えば、大きな変換の場合、モデルパラメータを、より少ない頻度でのザッピングをもたらすように選択することができる。例えば、これらの変換のＴ値を下げることによって達成される。
【００８４】
量子化プロセスは、ステップ５０３において最初の１つを選択して係数グループに対する演算を開始する。即ち、変数ｊは係数グループインデックスに関する。このレベルにおいて、係数グループは独立に処理される。よって、係数グループを処理するための特定の順序は必要とされないが、（図３や図４に示されるような）ビットストリームが配列される自然な順序とすることができる。
【００８５】
ステップ５０４では、プロセスは、現在選択されている係数グループについて処理を初期化する。最初の係数（特定の順序はここでは必要とされない）、即ち、係数グループ内の係数インデックスを表す変数ｋが選択される。同一ステップでは、ザッピング基準の値、大きさの合計（sum）、が０に初期化される。
【００８６】
反復係数ｊ及びｋは、上述の典型的な量子化プロセスを記述する際に使用した変数iと混同されないように選択される。インデックスiは、変換ユニット内の係数のインデックスを表すものであって、係数グループのものではない。インデックスiは、周波数に関連する。ｉと対（j、k）との間には全単射の関係がある。すなわち、iの既存値のそれぞれに対して固有のjとkの対が存在し、その逆もある。
【００８７】
最後に、別の特徴は最初の係数グループ（j = 0）に関するものである。それは暗黙的に通知されるので、ザッピング処理が特に適合されてもよい。この場合、実施形態は、ステップ５０８において値Ｔを減少させることを含む。別の実施形態は、ステップ５０４においてｓｕｍを厳密に０より大きな値に初期化すること（Tを低下させることと実質的に同等）を含む。
【００８８】
量子化値は、ステップ５０５で、例えば、スケーリングされた係数をシフトすることを含む、既に記載済みの式を利用して、現在の係数について生成される。Q = (DCT * fct+ DZ) ＞＞ shift,ここで、デッドゾーンはステップ５０２で提供されるものであり、ｓｕｍを更新する。ｓｕｍの更新は典型的には、現在の量子化係数の大きさをｓｕｍに加算することを含む。
【００８９】
エンコーダはＨＥＶＣ用に調整されているので、ステップ５０６において、現在の係数グループ内のＮｃ個の係数が処理されたかどうかがチェックされる。最後の１つを除く全ての係数グループにおいて、Ｎｃは１６である。最後の１つについて、上述のlast_sig_coeff_x 及びlast_sig_coeff_yの値からＮｃを推定することができる。処理すべき係数が依然として残っているのであれば、ステップ５０５に戻る前に、ステップ５０７において次のものを選択する。
【００９０】
さもなくば、現在の係数グループが処理され、ｓｕｍの最終値が分かる。よって、ステップ５０８は、ｓｕｍが所定の閾値Ｔよりも小さいかどうかをチェックする。もし小さい場合、現在の係数グループをザッピングすることには利益があり、ステップ５０９ａでそれを行う。この結果、対応するフラグは５０９ｂにおいて０に設定され、それが空であることが示される。係数グループのザッピングは、全ての係数をゼロに設定することを意味する。
【００９１】
全てのケースにおいて、処理はステップ５０９ｂに向かう。ここでは、係数グループフラグが係数グループの中身に応じて設定される。もし空の場合は全ての量子化係数がナルであることを示し、フラグは０となり、そうでなければフラグは１となる。次のステップ５１０では、全ての係数グループが処理されたかどうかがチェックされる。もし全ての係数グループが処理されてない場合、ステップ５１１ではステップ５０４に戻る前に次の係数グループが選択される。さもなくば、変換ユニットは全て処理され、量子化係数の値が決定される。そして、係数グループフラグを含め、ビットストリーム内に書き込まれる対応するシンタックス要素の導出が可能である。
【００９２】
上述の処理によれば、グループの量子化係数の大きさを合計した結果を示す値が所定の閾値よりも小さい場合には、量子化により係数グループ内の全ての量子化係数をゼロに設定することができる。この技法は、レート／歪み基準に対して最適化された量子化を、このような最適化においてしばしば必要とされる通常の高い複雑性を伴わずに実行する、非常に効率的な方法を構成する。非最適化量子化と比較しても、結果として得られるビデオ品質は、些細な複雑性の増加は伴うものの、同一レートについて改善される。
【００９３】
図６ａは、図５に関して説明したステップ５０５の代替の実施形態を説明する。本実施形態において、量子化演算は２つのステップに分割される。大きさの合計は、中間量子化結果に基づくものである。
【００９４】
確認として、図５の量子化は、典型的には、係数DCTk,jを所定のシフト値「shift」だけシフトすることにより実行された。最初のステップ６０１では、パラメータｋ及びｊが取得される。本実施形態では、ステップ６０２において、所定のパラメータＭに従って、shift-Mに対応する第１の値だけ係数ＤＣＴk,j がまずはシフトされる。その結果、Ｐと呼ばれる中間量子化結果が得られる。この中間量子化結果Ｐは、次にステップ６０３において値Ｍだけシフトされる。その結果、量子化係数Ｑk,jが得られる。したがって、当業者であれば、Pを、Ｍ個の最下位ビットが小数部に関連し、Ｑk,j が（丸め後の）対応する整数である浮動/有理数量子化値の固定小数点表現として認識してもよい。ステップ６０４の判定において、量子化係数Ｑk,jはゼロではない場合、ステップ６０５では、Qk,j の大きさが合計される代わりに、中間結果Ｐの大きさが合計される。処理が終了すると、結果として得られる量子化係数は、上記実施形態で得られたものと同一の値を有することに注目することは重要である。唯一の違いは、係数グループ全体のザッピングを決定するために図５のステップ５０８で利用される合計値である。
【００９５】
中間量子化結果の大きさの合計は、量子化係数の合計よりも大きい。この結果、もし閾値Ｔが適合されなければ、係数グループ全体がザッピングされる可能性が減少することになる。同様に、これにより、ザッピング判定の精度が非常に向上する。 大きさ（および結果として生じる歪み）に基づく場合、決定は非常に粗くなり、結果として、ザッピングされるべきでないときに係数グループがザッピングされることになる。
【００９６】
図６ｂは、図５のステップ５０５の別の代替の実施形態を示す。
【００９７】
本実施形態の第１の側面によれば、２つの閾値Ｔ１及びＴ２が、単一の中間量子化係数Ｐの大きさに対して適用される。これらの２つの閾値は、範囲[Ｔ１、Ｔ２],を定義し、Ｔ１はＴ２よりも小さい。
【００９８】
最低閾値Ｔ１よりも小さい大きさの中間量子化係数Ｐは、係数グループ全体をザッピングするかの決定においては考慮されないであろう。即ち、係数グループをザッピングするための閾値Ｔに対する基準として利用される大きさの合計の更新には、それらの大きさを示す値は利用されないであろう。合計は大きくなるものの、Ｔ１はナルとなりえるという意味でＴ１は実装に依存する。Ｔ１の値を小さくすると、符号付き算術演算の利用が強制されることにもなる。Ｔ１は、直ちに０に量子化されなくてもよい係数の最小の大きさを表すこともできる。
【００９９】
係数グループの少なくとも1つの中間量子化係数Ｐが、最大閾値Ｔ２よりも大きい場合、係数グループの全体はザッピングされない。これは、ステップ５０８におけるテストが行われると合計が閾値Ｔよりも確実に大きくなるようにするために、合計を最大値により更新することにより、或いは、同一の効果を有するように閾値Ｔを小さくすることにより、実施されてもよい。Ｔ２は、ビデオ符号化標準、エンコーダアルゴリズム、ノイズレベル、視覚的検査に依存して、経験的に決定された値となりえる。それは一般的に係数の大きさに対する閾値を示し、閾値を超える係数はザッピングするには多すぎる情報を示すことになる。
【０１００】
この実施形態で行われるように所定の範囲内に含まれる大きさを有する係数グループ内の量子化された、または中間の量子化された係数の数に応じて閾値を定義することは、本明細書に記載されるすべての実施形態において有利に導入され得ることに留意する必要がある。
【０１０１】
この実施形態の特定の実装（図６ｂに記載されている実装）は、以下のように閾値Ｔを表現するために2つの追加のパラメータAおよびBを定義する。
Ｔ =Ａ*Ｎ + Ｂ;
ここでＮは、範囲 [Ｔ１、Ｔ２]内の大きさを有する中間量子化係数の数である。これらの中間量子化係数は、ザッピング可能な係数とも呼ばれる。
【０１０２】
以下のようであることは注目に値する。
2019110530.tif 000003
は、以下と等価である。
2019110530.tif 000004
この実装は、ステップ５０８において閾値Ｂにより置き換えられた閾値Ｔと共に図６ｂに示される。
【０１０３】
図６ａの類似ステップ６０１と対応する最初のステップ６０１では、係数の座標ｋ及びｊが取得される。
【０１０４】
次のステップ６０２では、図６ａの類似ステップ６０２と対応して、中間量子化係数Ｐが演算される。
【０１０５】
ステップ６０６では、中間量子化係数Ｐの大きさを示す値が、閾値Ｔ１の値よりも小さい場合、量子化は図６ａの類似ステップ６０３に対応してステップ６０３で終了する。合計は更新されない。
【０１０６】
ステップ６０７において、中間量子化係数Ｐの大きさを示す値が、閾値Ｔ２の値よりも大きい場合、ステップ５０８において行われたテストが係数グループ全体のザッピングを決してトリガーしないようにするためにsumは値Ｂに強制される。確認として、本実装において、値ＢはＴの代わりに閾値として用いられる。
【０１０７】
中間量子化係数Ｐの大きさが[Ｔ１、Ｔ２]の範囲内にある場合、ステップ６０８において、sumは大きさからパラメータＡを引いた値で更新される。
【０１０８】
いずれにしても、係数の量子化は、処理の終了前にステップ６０３で終了する。
【０１０９】
本実施形態によれば、Ｎを計算する必要なしにＡ*Ｎ + Ｂに対応する値Ｔを利用してテストが行われてもよい。
【０１１０】
閾値Ｔ１およびＴ２の値、モデルパラメータＡおよび精度Ｍを利用することは、ＳＵＭの値の範囲を保証可能にすることに留意すべきである。そうすることは、実装のトレードオフを提供する。例えば、変数のビット深度を削減することにより、ザッピング方法により利用される演算の実装コスト（回路規模、エネルギー消費等）が削減される。特定の実施形態では、Ｍ＝０、即ち、Ｐ = DCTk,j * fctk,j + DZ 上述の全てのパラメータ (DZ, A, B, T1 及び T2) は、P = DCTk,j + DZの点まで、これを考慮して、対応してスケーリングできることは当業者にとっては明らかであろう。
【０１１１】
これらの全ての実施形態において、因子ｆｃｔ及びデッドゾーンＤｚは、座標ｋ及びｊに依存していてもよい。即ち、式Qk,j = DCTk,j * fct + DZ は、式Qk,j = DCTk,j * fctk,j + DZk,j になる。よって、いくつかの係数の重要度がより高くなるかもしれない。典型的には、低周波数係数を強調することができる。
【０１１２】
図７は、デッドゾーンDZk,j をｋ及びｊ、及び新しいパラメータｃに基づいて決定する方法を示す。
【０１１３】
提案に係るデッドゾーンDZk,jを決定するための手法は、グローバルデッドゾーンパラメータＤＺに基づくものであり、これは、係数グループ内の係数のインデックスｋを用いて線形にスケーリングされている。定数ｃは、適用されるスケーリング量を制御するために定義される。即ち、デッドゾーンパラメータDZk,jは、座標ｋ及びｊを有する各係数について以下の式に従って決定される。
DZk,j=DZ-c.k;
【０１１４】
実際には、当業者には、特に、「ブロックの終わり（end-of-block）」として知られる従来のシグナリングを使用することにより、変換ユニット内のより高い周波数（すなわち、iのより大きい値）のより多くを強制的に０にしようとすることが知られている。これは、量子化マトリックスを利用することにより典型的に実施される。これは、（通常は減少する）fctk,j 項に影響を与える。（高周波のような）視覚的に重要度の低い情報の符号化を回避すること、及び、last_sig_coeff_x/yと同様のシンタックス要素を最適化すること（例えば、ＪＰＥＧや他の変換ベースのコーデックのEnd-Of-Block 通知）の両方が目標である。しかしここでは、意図は異なり、係数グループ内の各係数のsig_coeff_flagのコンテキストコーディングに依存している。実際には、確率を意味するＣＡＢＡＣコンテキストは、このフラグについて、現在のもののすぐ右及びすぐ下の係数についての代表フラグの値に依存する。係数グループの最初の係数（ｋのより小さい値）は、最後の値（ｋのより大きな値）よりも比較的重要であり、非ゼロである可能性が高い（sig_coeff_flagの値１）。係数グループの最後で値０でフラグを符号化することは、それ以前に符号化されたフラグが０である場合に、生成されるデータがより少なくなる可能性が高い。逆に、開始時において値１のフラグは、これらのフラグが、ｋのより大きな値を有するこれらのフラグが値１を有する場合に、データ量がより少なくなる可能性が高い。更に、係数グループをザッピングする可能性を高めるために、より高周波数は、より重く量子化され、かつ、係数グループをザッピングするかどうかを決定するために使用される合計では、より少なくする必要がある。インデックスｋにのみ基づくこの重みづけは、ゆえに、この態様を考慮し、あまり重要でない係数グループをザッピングするという意図された結果を実現するための手段である。
【０１１５】
特定の実施形態では、定数ｃは２つの異なる値Ｃ１とＣ２を取る。このとき、Ｃ１はＣ２よりも大きい。定数ｃはＣ１により初期化され、ザッピングされていない最初の係数グループに遭遇するとＣ２に変更される。考え方は、最後の係数を符号化順序の後ろに置くと、ビットレートが低下するというものである。よって、非ゼロ係数グループが見つかるまでは、係数を少しだけ量子化する必要がある。
【０１１６】
図７は、図５との関連で示したザッピング方法と組み合わされる、この特定の実施形態を示す。同一ステップについては同一の参照番号を付し、ここでは説明を行わない。
【０１１７】
ステップ７０２はステップ５０２に対応し、追加として、パラメータＣ１、Ｃ２を決定する。それらの値は、Ｍに大きく依存し、スライスタイプと同様に、変換タイプ及びサイズに適合させることができる。説明のための最も単純なケースでは、Ｃ１はイントラスライスについて０．２であり、それ以外については０．１である。また、Ｃ２は１／２か、０である。
【０１１８】
ステップ７０３はステップ５０３に対応し、追加として、定数ｃをパラメータＣ１で初期化する。
【０１１９】
ステップ７１０において、各係数についてデッドゾーンパラメータが提案式に従って計算される。
【０１２０】
ステップ７１１では、ステップ５０８のテストの結果が否定的で、係数グループ全体がザッピングされないことを示す場合、定数ｃは値Ｃ２を取る。定数ｃは、値Ｃ１により初期化されると、変換ユニット内の係数グループがザッピングされる間はこの値を保持し、最初の非ザッピング係数グループの符号化の後に値Ｃ２に切り替えられる。
【０１２１】
図８は、発明の１以上の実施形態における実装のためのコンピューティング装置８００のブロック図である。コンピューティング装置８００は、マイクロコンピュータ、ワークステーション、或いは、軽量携帯デバイス等の装置であってもよい。コンピューティング装置の他の例は、集積回路に実装されたカスタムメイド処理装置、ＡＳＩＣ（特定用途向け集積回路）、システムオンチップ（ＳｏＣ）、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）、或いは、ディスクリートコンポーネントを含む論理回路を含む。コンピューティング装置は、例えば、カメラ、モニタリングカメラ、ドアステーション、或いは、符号化装置の一部を構成してもよい。コンピューティング装置８００は、以下と接続する通信バスを備える：
【０１２２】
−処理ユニット８０１は、任意の種類のプロセッサであり、例えば、マイクロプロセッサのような、ＣＰＵ（中央処理回路）、ＧＰＵ（グラフィック処理回路）であってもよい。
【０１２３】
−ランダムアクセスメモリ８０２であって、ＲＡＭと示される。発明の実施形態の方法の実行可能なコードを記憶し、本発明の実施形態に対応する画像の少なくとも一部を符号化または復号するための方法を実施するために必要な変数およびパラメータを記録するように適合されたレジスタを含む。そのメモリ容量は、例えば拡張ポートに接続されたオプションのＲＡＭによって拡張することができる。
【０１２４】
−リードオンリーメモリ８０３であって、ＲＯＭと示される。発明の実施形態を実施するためのコンピュータプログラムを格納する。
【０１２５】
−ネットワークインタフェース８０４は、典型的には通信ネットワークに接続され、それを介して処理対象のデジタルデータを送受信する。ネットワークインタフェース８０４は、単一ネットワークインタフェースとすることができる。また、異なるネットワークインタフェースのセット（例えば、有線及び無線インタフェース、或いは、異なる種類の有線または無線インタフェース）として構成することができる。データパケットは、送信のためにネットワークインタフェースに書き込まれるか、又は処理ユニット８０１で動作するソフトウェアアプリケーションの制御下での受信のために、ネットワークインタフェースから読み出される。
【０１２６】
−ユーザインターフェース（UI）８０５は、ユーザからの入力を受信するため、またはユーザに情報を表示するために使用することができる。
【０１２７】
−ハードディスク８０６はHDと示され、大容量記憶装置として提供されてもよい。
【０１２８】
−Ｉ／Ｏモジュール８０７は、ビデオソースまたはディスプレイなどの外部装置との間でデータを受信/送信するために使用されてもよい。
【０１２９】
実行可能コードは、リードオンリーメモリ８０３、ハードディスク８０６、または例えばディスクのような取外し可能なデジタル媒体のいずれかに格納することができる。変形例によれば、プログラムの実行可能コードは、ネットワーク８０４を介して通信ネットワークによって受信され、実行前にハードディスク８０６などの通信デバイス８００の記憶手段の1つに記憶される。
【０１３０】
処理ユニット８０１は、本発明の実施形態に対応する1つ以上のプログラムのソフトウェアコードの命令または部分の実行を制御および指示するように適合され、命令は前述の記憶手段のうちの1つに記憶される。電源投入後、処理ユニット８０１は、例えばROM８０３またはハードディスク（HD）８０６から命令がロードされた後に、ソフトウェアアプリケーションに関するメインRAMメモリ８０２からの命令を実行することができる。このようなソフトウェアアプリケーションは、CPU８０１によって実行されると、本発明に対応する方法のステップが実行される。
【０１３１】
図５から図７に示されたアルゴリズムの任意のステップは、PC（「パーソナルコンピュータ」）、DSP（「デジタル・シグナル・プロセッサ」）、或いは、マイクロコントローラ等のプログラム可能な計算機によって一連の命令またはプログラムを実行することによってソフトウェア的に実施されてもよい。或いは、ＦＰＧＡやＡＳＩＣのようなマシーンや専用コンポーネントによりハードウェア的に実施されてもよい。
【０１３２】
本発明を特定の実施形態を参照して上で説明したが、本発明は特定の実施形態に限定されず、本発明の範囲内にある変更は当業者には明らかであろう。
【０１３３】
前述の例示的な実施形態を参照することにより、多くのさらなる変更および変形が当業者に示唆されるものであり、また、これらは本発明の範囲を限定することを意図したものではなく、添付の特許請求の範囲によってのみ決定されるものである。特に、適切な場合には、異なる実施形態からの異なる特徴を交換することができる。
【０１３４】
特許請求の範囲において、「備える（comprising）」という単語は他の要素またはステップを排除するものではなく、不定冠詞「a」または「an」は複数を除外しない。異なる特徴が相互に異なる従属請求項に列挙されているという単なる事実は、これらの特徴の組み合わせが有利に使用できないことを示すものではない。
【図１】
2019110530.tif 000005
【図２】
2019110530.tif 000006
【図３】
2019110530.tif 000007
【図４】
2019110530.tif 000008
【図５】
2019110530.tif 000009
【図６ａ】
2019110530.tif 000010
【図６ｂ】
2019110530.tif 000011
【図７】
2019110530.tif 000012
【図８】
2019110530.tif 000013