(57)【要約】      （修正有）【課題】改善されたエントロピー符号化および復号を行う方法および装置を提供する。【解決手段】装置は、ピクチャ内のブロックの少なくとも１つのブロックを符号化するビデオ符号化器２００を含む。符号化は、ブロックの残差を変換して変換係数を取得し、変換係数を量子化して量子化された変換係数を取得し、量子化された変換係数をエントロピー符号化することによって行われる。量子化された変換係数は、フラグを使用して符号化することにより、量子化された変換係数のうち、処理が行われている現在の変換係数が、特定の値以上の値を有するブロックのための最後の非零係数であることを示す。【選択図】図２
2019110592.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
ピクチャ内の少なくとも一つのブロックを符号化するビデオ符号化器（２００）を備え、
前記ビデオ符号化器（２００）は、前記ブロックの残差を変換して変換係数を取得し、前記変換係数を量子化して量子化された変換係数を取得し、前記量子化された変換係数をエントロピー符号化することによって符号化を行い、
前記量子化された変換係数はフラグを使用して符号化され、該フラグは前記量子化された変換係数のうち処理が行われている現在の変換係数が特定の値と同等かそれよりも大きい値を有するブロックに対する最後の非零係数であることを示す、前記装置。
【請求項２】
前記特定の値が２である、請求項１に記載の装置。
【請求項３】
前記特定の値よりも小さい値を有する前記量子化された変換係数のうちの後続する非零係数は、該特定の値よりも小さい値を有する該後続する非零係数の各々の符号のみを符号化することによって符号化される、請求項１に記載の装置。
【請求項４】
前記特定の値が複数の値から選択される、請求項１に記載の装置。
【請求項５】
前記ピクチャはビデオ・シーケンスに含まれる複数のピクチャのうちの１つであり、前記特定の値は該ピクチャ内または該ビデオ・シーケンス内の該複数のピクチャのうちの１つあるいはそれよりも多い他のピクチャ内の既に処理されたブロックから導出された統計値に応じて適応的に選択される、請求項４に記載の装置。
【請求項６】
前記特定の値が明示的に信号伝達される、請求項１に記載の装置。
【請求項７】
前記特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベルおよびブロック・レベルのうちの少なくとも１つで明示的に信号伝達される、請求項１に記載の装置。
【請求項８】
前記量子化された変換係数のうちの現在の変換係数のレベルは、該量子化された変換係数のうちの該現在の変換係数の実際の値から前記特定の値を減算して差分値を取得し前記レベルとして前記差分値を符号化することによって符号化され、対応する復号器が前記差分値を前記特定の値に加算することによって前記レベルを再生できるようにする、請求項１に記載の装置。
【請求項９】
ｓｉｇ＿ｆｌａｇシンタックス要素、前記フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で符号化され、
前記ｓｉｇ＿ｆｌａｇシンタックス要素は前記量子化された変換係数のうちの前記現在の変換係数が非零値を有するかどうかを示し、
前記ｌａｓｔ＿ｆｌａｇシンタックス要素は前記非零値を有する前記量子化された変換係数のうちの前記現在の変換係数が所与の走査順にある前記ブロック内の前記非零値を有する最後の量子化された変換係数であるかどうかを示し、
前記Ｂｉｎ＿１シンタックス要素は前記量子化された変換係数のうちの前記現在の変換係数の絶対値が現在既知でない非零値を有することを示し、
前記レベル・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が前記特定の値よりも大いとき、該量子化された変換係数のうちの該現在の変換係数の絶対値を示し、
前記サイン・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の対応する符号を示す、請求項１に記載の装置。
【請求項１０】
ビデオ符号化器における方法であって、
ピクチャ内の少なくともブロックの符号化を行うステップを含み、
前記符号化を行うステップは、前記ブロックの残差を変換して変換係数を取得し、前記変換係数を量子化して量子化された変換係数を取得し、前記量子化された変換係数をエントロピー符号化することによって変換を行い、
前記量子化された変換係数はフラグを使用して符号化され、該フラグは前記量子化された変換係数のうち処理が行われている現在の変換係数が特定の値と同等かそれよりも大きい値を有するブロックに対する最後の非零係数であることを示す（２００、７００）、前記方法。
【請求項１１】
前記特定の値が２である（７５１）、請求項１０に記載の方法。
【請求項１２】
前記特定の値よりも小さい値を有する前記量子化された変換係数のうちの後続する非零係数は、該特定の値よりも小さい値を有する該後続する非零係数の各々の符号のみを符号化することによって符号化される（７１０、７２１、７３１、７４１、７５１）、請求項１０に記載の方法。
【請求項１３】
前記特定の値が複数の値のうちから選択される（９１０、９２０）、請求項１０に記載の方法。
【請求項１４】
前記ピクチャは、ビデオ・シーケンスに含まれる複数のピクチャのうちの１つであり、前記特定の値は該ピクチャ内、または該ビデオ・シーケンス内の該複数のピクチャのうちの１つあるいはそれよりも多い他のピクチャ内の既に処理されたブロックから導出された統計値に応じて適応的に選択される（９２０）、請求項１３に記載の方法。
【請求項１５】
前記特定の値が明示的に信号伝達される（９３０）、請求項１０に記載の方法。
【請求項１６】
前記特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベル、およびブロック・レベルのうちの少なくとも１つで明示的に信号伝達される（９３０）、請求項１０に記載の方法。
【請求項１７】
前記量子化された変換係数のうちの現在の変換係数のレベルは、該量子化された変換係数のうちの該現在の変換係数の実際の値から前記特定の値を減算して差分値を取得し、前記レベルとして前記差分値を符号化することによって符号化され、対応する復号器が前記差分値を前記特定の値に加算することによって前記レベルを再生できるようにする（７５２）、請求項１０に記載の方法。
【請求項１８】
ｓｉｇ＿ｆｌａｇシンタックス要素、前記フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で符号化され、
前記ｓｉｇ＿ｆｌａｇシンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数が非零値を有するかどうかを示し、
前記ｌａｓｔ＿ｆｌａｇシンタックス要素は、前記非零値を有する前記量子化された変換係数のうちの前記現在の変換係数が所与の走査順にある前記ブロック内の前記非零値を有する最後の量子化された変換係数であるかどうかを示し、
前記Ｂｉｎ＿１シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が現在既知でない非零値を有することを示し、
前記レベル・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が前記特定の値よりも大きいとき、該量子化された変換係数のうちの該現在の変換係数の絶対値を示し、
前記サイン・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の対応する符号を示す、請求項１０に記載の方法。
【請求項１９】
装置であって、
ピクチャ内の少なくともブロックを復号するビデオ復号器（３００）を備え、
前記ビデオ復号器は、量子化された変換係数をエントロピー復号し、前記量子化された変換係数を逆量子化して変換係数を取得し、前記変換係数を逆変換して前記ブロックを再構築する際に使用するための前記ブロックの再構築された残差を取得することによって復号を行い、
前記量子化された変換係数はフラグを使用して復号され、該フラグは前記量子化された変換係数のうち処理が行われている現在の変換係数が特定の値と同等かそれよりも大きい値を有するブロックに対する最後の非零係数であることを示す、前記装置。
【請求項２０】
前記特定の値が２である、請求項１９に記載の装置。
【請求項２１】
前記特定の値よりも小さい値を有する前記量子化された変換係数のうちの後続する非零係数は、該特定の値よりも小さい値を有する該後続する非零係数の各々の符号のみを復号することによって復号される、請求項１９に記載の装置。
【請求項２２】
前記特定の値が明示的に決定される、請求項１９に記載の装置。
【請求項２３】
前記特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベル、およびブロック・レベルのうちの少なくとも１つから明示的に決定される、請求項１９に記載の装置。
【請求項２４】
前記量子化された変換係数のうちの現在の変換係数のレベルは、該量子化された変換係数のうちの該現在の変換係数の実際の値と前記特定の値との間で予め求められた差分値を復号し、該差分値を該特定の値に加算して前記レベルを取得することによって復号される、請求項１９に記載の装置。
【請求項２５】
ｓｉｇ＿ｆｌａｇシンタックス要素、前記フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で符号化され、
前記ｓｉｇ＿ｆｌａｇシンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数が非零値を有するかどうかを示し、
前記ｌａｓｔ＿ｆｌａｇシンタックス要素は、前記非零値を有する前記量子化された変換係数のうちの前記現在の変換係数が所与の走査順にある前記ブロック内の前記非零値を有する最後の量子化された変換係数であるかどうかを示し、
前記Ｂｉｎ＿１シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が現在既知でない非零値を有することを示し、
前記レベル・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が前記特定の値よりも大きいとき、該量子化された変換係数のうちの該現在の変換係数の絶対値を示し、
前記サイン・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の対応する符号を示す、請求項１９に記載の装置。
【請求項２６】
ビデオ復号器における方法であって、
ピクチャ内の少なくともブロックの復号を行うステップを含み、
前記復号を行うステップは、量子化された変換係数をエントロピー復号し、前記量子化された変換係数を逆量子化して変換係数を取得し、前記変換係数を逆変換して前記ブロックを再構築する際に使用するための前記ブロックの再構築された残差を取得することによって復号を行い、
前記量子化された変換係数はフラグを使用して復号され、該フラグは前記量子化された変換係数のうち処理が行われている現在の変換係数が特定の値と同等かそれよりも大きい値を有するブロックに対する最後の非零係数であることを示す（３００、８００）、前記方法。
【請求項２７】
前記特定の値が２である（８０２）、請求項２６に記載の方法。
【請求項２８】
前記特定の値よりも小さい値を有する前記量子化された変換係数のうちの後続する非零係数は、該特定の値よりも小さい値を有する該後続する非零係数の各々の符号のみを復号することによって復号される（８１０、８２１、８３１、８４２、８５１）、請求項２６に記載の方法。
【請求項２９】
前記特定の値が明示的に決定される（１００５）、請求項２６に記載の方法。
【請求項３０】
前記特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベル、およびブロック・レベルのうちの少なくとも１つから明示的に決定される（１００５）、請求項２６に記載の方法。
【請求項３１】
前記量子化された変換係数のうちの現在の変換係数のレベルは、該量子化された変換係数のうちの該現在の変換係数の実際の値と前記特定の値との間で予め求められた差分値を復号し、該差分値を該特定の値に加算して前記レベルを取得することによって復号される（８５２）、請求項２６に記載の方法。
【請求項３２】
ｓｉｇ＿ｆｌａｇシンタックス要素、前記フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で符号化され、
前記ｓｉｇ＿ｆｌａｇシンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数が非零値を有するかどうかを示し、
前記ｌａｓｔ＿ｆｌａｇシンタックス要素は、前記非零値を有する前記量子化された変換係数のうちの前記現在の変換係数が所与の走査順にある前記ブロック内の前記非零値を有する最後の量子化された変換係数であるかどうかを示し、
前記Ｂｉｎ＿１シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が現在既知でない非零値を有することを示し、
前記レベル・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が前記特定の値よりも大きいとき、該量子化された変換係数のうちの該現在の変換係数の絶対値を示し、
前記サイン・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の対応する符号を示す、請求項２６に記載の方法。
【請求項３３】
符号化されたビデオ信号データを記憶するコンピュータによって読み取り可能な記憶媒体であって、
ピクチャ内の少なくともブロックを含み、前記ピクチャは、前記ブロックの残差を変換して量子化された変換係数を取得し、前記変換係数を量子化して量子化された変換係数を取得し、前記量子化された変換係数をエントロピー符号化することによって符号化されており、
前記量子化された変換係数はフラグを使用して符号化される、該フラグは前記量子化された変換係数のうち処理が行われている現在の変換係数が特定の値と同等かそれよりも大きい値を有するブロックに対する最後の非零係数であることを示す、前記記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１０年１０月１４日付で出願された米国仮特許出願第６１／３９３，１９５号の利益を主張するものであり、その開示内容全体を本明細書に盛り込んだものとする。
【０００２】
本発明の原理は、一般的には、ビデオ符号化および復号に関し、より具体的には、改善されたエントロピー符号化および復号を行う方法および装置に関する。
【背景技術】
【０００３】
ビデオ符号化規格は、イントラ／インター・フレーム相関における冗長性を活用し、高い圧縮効率を得るために、予測変換およびブロックベースの変換を使用する。さらに、エントロピー符号化は、符号化されたビットストリームが自己のエントロピー境界に達するようにし、符号化効率をさらに向上させる。
【０００４】
ビデオ符号化システムにおけるエントロピー符号化の重要な使用はブロックの量子化された変換係数の符号化処理である。このブロックは、イントラ／インター予測、ブロック変換、および量子化の後の残差データ・ブロックである。このようなデータのために、ハフマン符号化のような可変長符号化処理から算術符号化処理に亘るエントロピー符号化ツールが開発されている。現行のコンテクスト適応型バイナリ算術符号化方式（ＣＡＢＡＣ）は、高い符号化効率を得ることができるが、ＣＡＢＡＣ符号化手順を非システマティックに実施した場合には、データ・ブロックを符号化するために２つの走査パスを実行することになる。
【０００５】
ＣＡＢＡＣは、ＩＳＯ／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）  ＭＥＰＧ‐４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ‐４）  Ｐａｒｔ  １０  ＡＶＣ（Ｐａｒｔ  １０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格／ＩＴＵ‐Ｔ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ，  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ）Ｈ．２６４勧告（以下、「ＭＰＥＧ‐４  ＡＶＣ規格」と呼ぶ）における量子化された変換係数ブロックのエントロピー符号化方法である。ＣＡＢＡＣは、２つのメイン・パスでブロックを符号化する。第１のパスでは、ＣＡＢＡＣは、ブロックの重要度マップ（ｓｉｇｎｉｆｉｃａｎｃｅ  ｍａｐ）を前方ジグザグ走査順に符号化する。第２のパスでは、ＣＡＢＡＣは、逆ジグザグ走査順に非零値を符号化する。
【０００６】
図１を参照するに、ＣＡＢＡＣ符号化の例が概ね参照符号１００によって示されている。重要度マップ符号化パス、すなわち、第１のパスにおいて、ＣＡＢＡＣは、ｓｉｇ＿ｆｌａｇおよびｌａｓｔ＿ｆｌａｇを使用して非零係数の位置を示す。
【０００７】
非零値の逆ジグザグ符号化においては、２つのサブ符号化処理が使用される。第１のサブ符号化処理においては、Ｂｉｎ＿１（すなわち、第１のｂｉｎ（ビン））を使用して非零係数がその絶対値が１であるかどうかを示す。非零係数がその絶対値が１である場合には、Ｂｉｎ＿＝１であり、非零係数の正負の符号が送出される。非零係数がその絶対値が１でない場合には、Ｂｉｎ＿１＝０であり、符号化が第２のサブ符号化処理に移行する。第２のサブ符号化処理においては、ＣＡＢＡＣは、Ｂｉｎ＿１＝０に対応する、１よりも大きな絶対値を有する係数を符号化し、これらの係数の各々の正負の符号を送出する。
【０００８】
ＣＡＢＡＣの短所は、対応する符号化に２つの走査パス（すなわち、重要度マップを符号化するための前方ジグザグ走査および値を符号化するための逆ジグザグ走査）を必要とする点である。さらに、ＣＡＢＡＣの設計は、主に、小さなブロック・サイズ（例えば、４×４および８×８）に適している。ＣＡＢＡＣは、主に、大きなブロック（例えば、１６×１６、３２×３２、および６４×６４）では効率が低下することが判明している。
【０００９】
従来技術に係るアプローチの１つは、フラグを追加して１よりも大きな離散コサイン変換（ＤＣＴ）係数の最後の位置を信号伝達することを提案している。しかしながら、この従来技術に係るアプローチは、１よりも大きなフラグに制限され、依然として、２つの走査パスを使用している。
【発明の概要】
【００１０】
従来技術のこれらの欠点および短所、さらに、その他の欠点および短所は本発明の原理によって対処される。本発明の原理は、改善されたエントロピー符号化および復号を行う方法および装置に関する。
【００１１】
本発明の原理の一態様によれば、装置が提供される。この装置は、ピクチャ内の少なくともブロックを符号化するビデオ符号化器を有し、このビデオ符号化器は、ブロックの残差を変換して変換係数を取得し、変換係数を量子化して量子化された変換係数を取得し、量子化された変換係数をエントロピー符号化することによって符号化を行う。量子化された変換係数はフラグを使用して符号化されることにより、量子化された変換係数のうち処理が行われている現在の変換係数が、特定の値と等しいかそれよりも大きい値を有するブロックに対する最後の非零係数であることを示す。
【００１２】
本発明の原理の別の態様によれば、ビデオ符号化器における方法が提供される。この方法は、ピクチャ内の少なくともブロックを符号化するステップを含み、この符号化するステップはブロックの残差を変換して変換係数を取得し、変換係数を量子化して量子化された変換係数を取得し、この量子化された変換係数をエントロピー符号化することによって符号化を行う。この量子化された変換係数は、フラグを使用して符号化されることにより、量子化された変換係数のうち処理が行われている現在の変換係数が、特定の値以上の値を有するブロックのための最後の非零係数であることを示す。
【００１３】
本発明の原理のさらに別の態様によれば、装置が提供される。この装置は、ピクチャ内の少なくともブロックを復号するビデオ復号器を有し、このビデオ復号器は、量子化された変換係数をエントロピー復号し、量子化された変換係数を逆量子化して変換係数を取得し、変換係数を逆変換してブロックを再構築する際に使用するためのブロックの再構築された残差を取得することによって復号を行う。量子化された変換係数は、フラグを使用して復号されることにより、量子化された変換係数のうち処理が行われている現在の変換係数が、特定の値以上の値を有するブロックのための最後の非零係数であることを示す。
【００１４】
本発明のさらに別の態様によれば、ビデオ復号器における方法が提供される。この方法は、ピクチャ内の少なくともブロックを復号するステップを含み、この復号するステップは、量子化された変換係数をエントロピー復号し、量子化された変換係数を逆量子化して変換係数を取得し、変換係数を逆変換してブロックを再構築する際に使用するためのブロックの再構築された残差を取得することによって復号を行う。量子化された変換係数は、フラグを使用して復号されることにより、量子化された変換係数のうち、処理が行われている現在の変換係数が、特定の値以上の値を有するブロックのための最後の非零係数であることを示す。
【００１５】
本願の発明のこれらの態様、特徴、および利点、さらに、その他の態様、特徴、および利点は、添付の図面と併せて読まれるべき、以下の例示的な実施形態の詳細な説明によって明らかになるであろう。
【００１６】
本願の原理は、以下の例示的な図面に従ってより良好に理解されるであろう。
【図面の簡単な説明】
【００１７】
【図１】従来技術に従った、ＣＡＢＡＣ符号化の例を示す図である。
【図２】本発明の原理の実施形態に従った、本発明の原理が適用される例示的なビデオ符号化器を示すブロック図である。
【図３】本発明の原理の実施形態に従った、本発明の原理が適用される例示的なビデオ復号器を示すブロック図である。
【図４】本発明の原理の実施形態に従った、サイズ４×４の例示的な量子化された変換ブロックを示す図である。
【図５】本発明の原理の実施の形態に従った、符号化処理の例を示す図である。
【図６】本発明の原理の実施形態に従った、Ｂｉｎ＿１が保存されていない場合の例示的な特別なケースを示す図である。
【図７Ａ】本発明の原理の実施形態に従ったエントロピー符号化の例示的な方法を示すフロー図である。
【図７Ｂ】本発明の原理の実施形態に従った、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを符号化する例示的な方法を示すフロー図である。
【図７Ｃ】本発明の原理の実施形態に従った、ｌａｓｔ＿ｆｌａｇを符号化する例示的な方法を示すフロー図である。
【図７Ｄ】本発明の原理の実施形態に従った、Ｂｉｎ＿１を符号化する例示的な方法を示すフロー図である。
【図７Ｅ】本発明の原理の実施形態に従った、レベルを符号化する例示的な方法を示すフロー図である。
【図８Ａ】本発明の原理の実施形態に従った、エントロピー復号を行う例示的な方法を示すフロー図である。
【図８Ｂ】図８Ｂは、本発明の原理の実施形態に従った、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを復号する例示的な方法を示すフロー図である。
【図８Ｃ】本発明の原理の実施形態に従った、ｌａｓｔ＿ｆｌａｇを復号する例示的な方法を示すフロー図である。
【図８Ｄ】本発明の原理の実施形態に従った、Ｂｉｎ＿１を復号する例示的な方法を示すフロー図である。
【図８Ｅ】本発明の原理の実施形態に従った、レベルを復号する例示的な方法を示すフロー図である。
【図９】本発明の原理の実施形態に従った、現在の変換係数に対する値を選択し、信号伝達する方法を示すフロー図である。
【図１０】本発明の原理の実施形態に従った、現在の変換係数に対する値を復号する例示的な方法を示すフロー図である。
【発明を実施するための形態】
【００１８】
本発明の原理は、改善されたエントロピー符号化および復号を行う方法および装置に関する。
【００１９】
本説明は、本発明の原理を例示するものである。従って、本明細書において明示的に記載、または図示されていなくとも、当業者が本願の原理を実施する様々な構成を企図することが可能であり、このような構成が本願の精神および範囲の中に包含されることが理解できるであろう。
【００２０】
本明細書に記載された全ての例および条件付の文言は、本発明の原理を読者が理解するのを助けるための教示目的のものであり、発明者によって寄与された概念は、技術を発展させるものであり、このような具体的に記載された例や条件に限定されるように解釈されるべきではない。
【００２１】
また、本明細書における本発明の原理、態様、および、実施形態についての全ての記載、さらに、その特定の例は、構造的な均等物、機能的な均等物の双方を包含するように意図したものである。さらに、このような均等物は、現在公知の均等物だけでなく、将来において開発される均等物、すなわち、構造に係らず、同一の機能を実行するように開発された全ての要素を包含するように意図されている。
【００２２】
従って、例えば当業者であれば、本明細書において示されたブロック図は、本発明の原理を実施する回路を例示する概念図であることが理解できよう。同様に、フローチャート、フロー図、状態遷移図、擬似コードなどは、いずれも様々な処理を表すことが理解できよう。これらの処理は、実質的にコンピュータによって読み取り可能なメディアにおいて表すことができ、コンピュータまたはプロセッサにより実行され、このようなコンピュータまたはプロセッサがはっきりと図示されているかどうかに係るものではない。
【００２３】
各図面において示される様々な要素の機能は、専用のハードウエアの使用により提供されてもよく、適切なソフトウエアと関連付けてソフトウエアを実行することが可能なハードウエアの使用によって提供されてもよい。機能がプロセッサによって提供される場合にも、単一の専用プロセッサによって提供されてもよく、単一の共有プロセッサによって提供されてもよく、複数の別個のプロセッサによって提供されてもよく、プロセッサの中に共有されているものがあってもよい。さらに、用語「プロセッサ」または「コントローラ」を明示的に使用した場合であっても、ソフトウエアを実行することが可能なハードウエアのみを意味するように解釈されるべきではなく、限定するものではないが、ディジタル信号プロセッサ（ＤＳＰ）・ハードウエア、ソフトウエアを格納する読み出し専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、および不揮発性の記憶装置を暗黙的に含むことがある。
【００２４】
また、従来のおよび／または慣習的な他のハードウエアを含むこともある。同様に、図面に示されたどのスイッチも概念的なものに過ぎない。これらの機能はプログラム・ロジックの動作を介して、専用のロジックを介して、プログラム制御と専用のロジックとのインタラクションを介して、または、手動でも実行されることがある。状況に応じて具体的に理解されるように、実施者により、特定の技術を選択可能である。
【００２５】
請求の範囲において、特定の機能を実施するための手段として表現されたいずれの要素も、この機能をどのような方法で実行するものも包含するように意図している。例えばａ）機能を実行する回路要素を組み合わせたもの、または、ｂ）形態に関わらず、ソフトウエア、つまり、ファームウエア、マイクロコード等を含み、機能を実施するためにソフトウエアの実行に適した回路と組み合わせたものも包含する。このような請求の範囲によって定義される本発明の原理は、請求項に記載された様々な手段によって提供される機能が請求の範囲の要件として、組み合わせられ、まとめられている事実に基づいたものである。従って、このような機能を提供することが可能な手段はどのようなものであっても、本願において示されているものと均等であるとみなされる。
【００２６】
明細書において、本発明の原理の「一実施形態」、「実施形態」、または、この類の表現が言及されている場合、これは、実施形態に関して記載される特定の特徴事項、構造、特性などが本発明の原理の少なくとも１つの実施形態に含まれることを意味する。従って、明細書全体に渡って様々な箇所に存在する文言「一実施形態においては」、「実施形態においては」、または、この類の表現は、必ずしも、全てが同一の実施形態について言及するものではない。
【００２７】
「／（スラッシュ）」、「および／または」、さらに、「〜のうちの少なくとも一方（〜のうちの少なくとも１つ）」の使用は、例えば「Ａ／Ｂ」、「Ａおよび／またはＢ」、「ＡおよびＢのうちの少なくとも一方」の場合、１番目に列挙されたオプション（Ａ）のみの選択、２番目に列挙されたオプション（Ｂ）のみの選択、または、両方のオプション（ＡおよびＢ）の選択を包含するものと意図されている。別の例として、「Ａ、Ｂ、および／またはＣ」、さらに、「Ａ、Ｂ、およびＣのうちの少なくとも１つ」の場合、このような文言は、１番目に列挙されたオプション（Ａ）のみの選択、２番目に列挙されたオプション（Ｂ）のみの選択、３番目に列挙されたオプション（Ｃ）のみの選択、１番目および２番目に列挙されたオプション（ＡおよびＢ）のみの選択、１番目および３番目に列挙されたオプション（ＡおよびＣ）のみの選択、２番目および３番目に列挙されたオプション（ＢおよびＣ）のみの選択、または、全ての３つのオプション（Ａ、Ｂ、およびＣ）の選択を包含するものと意図されている。列挙された数の項目の分だけ、このことが拡張されることは、当該技術分野、さらに、関連する技術分野における通常の技術知識を有するものであれば容易に理解できるであろう。
【００２８】
また、本明細書において使用される単語「ピクチャ」および「イメージ」は、同じ意味で使用され、静止画像または、ビデオ・シーケンスからのピクチャを意味する。公知であるように、ピクチャは、フレームやフィールドであったりする。
【００２９】
図２を参照するに、本発明の原理が適用される例示的なビデオ符号化器が概ね参照符号２００によって示されている。ビデオ符号化器２００は、結合器２８５の非反転入力部と信号通信する出力部を有するフレーム順序付けバッファ２１０を含む。結合器２８５の出力部は、変換器／量子化器２２５の第１の入力部と信号通信するように結合されている。変換器／量子化器２２５の出力部は、エントロピー符号化器２４５の第１の入力部と、逆変換器／逆量子化器２５０の第１の入力部と信号通信するように結合されている。エントロピー符号化器２４５の出力部は、結合器２９０の第１の非反転入力部と信号通信するように結合されている。結合器２９０の出力部は、出力バッファ２３５の第１の入力部と信号通信するように結合されている。
【００３０】
符号化器コントローラ２０５の第１の出力部は、フレーム順序付けバッファ２１０の第２の入力部と、逆変換器／逆量子化器２５０の第２の入力部と、ピクチャ・タイプ決定モジュール２１５の入力部と、マクロブロック・タイプ（ＭＢタイプ）決定モジュール２２０の第１の入力部と、イントラ予測モジュール２６０の第２の入力部と、デブロッキング・フィルタ２６５の第２の入力部と、動き補償器２７０の第１の入力部と、動き推定器２７５の第１の入力部と、参照ピクチャ・バッファ２８０の第２の入力部と信号通信するように結合されている。
【００３１】
符号化器コントローラ２０５の第２の出力部は、補助拡張情報（ＳＥＩ）挿入器２３０の第１の入力部と、変換器／量子化器２２５の第２の入力部と、エントロピー符号化器２４５の第２の入力部と、出力バッファ２３５の第２の入力部と、シーケンス・パラメータ・セット（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ（ＳＰＳ））／ピクチャ・パラメータ・セット（Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ（ＰＰＳ））挿入器２４０の入力部と信号通信するように結合されている。
【００３２】
ＳＥＩ挿入器２３０の出力部は、結合器２９０の第２の非反転入力部と信号通信するように結合されている。
【００３３】
ピクチャ・タイプ決定モジュール２１５の第１の出力部は、フレーム順序付けバッファ２１０の第３の入力部と信号通信するように結合されている。ピクチャ・タイプ決定モジュール２１５の第２の出力部は、マクロブロック・タイプ決定モジュール２２０の第２の入力部と信号通信するように結合されている。
【００３４】
シーケンス・パラメータ・セット（ＳＰＳ）／ピクチャ・パラメータ・セット（ＰＰＳ）挿入器２４０の出力部は、結合器２９０の第３の非反転入力部と信号通信するように結合されている。
【００３５】
逆変換器／逆量子化器２５０の出力部は、結合器２１９の第１の非反転入力部と信号通信するように結合されている。結合器２１９の出力部は、イントラ予測モジュール２６０の第１の入力部と、デブロッキング・フィルタ２６５の第１の入力部と信号通信するように結合されている。デブロッキング・フィルタ２６５の出力部は、参照ピクチャ・バッファ２８０の第１の入力部と信号通信するように結合されている。参照ピクチャ・バッファ２８０の出力部は、動き推定器２７５の第２の入力部と動き補償器２７０の第３の入力部と信号通信するように結合されている。動き推定器２７５の第１の出力部は、動き補償器２７０の第２の入力部と信号通信するように結合されている。動き推定器２７５の第２の出力部は、エントロピー符号化器２４５の第３の入力部と信号通信するように結合されている。
【００３６】
動き補償器２７０の出力部は、スイッチ２９７の第１の入力部と信号通信するように結合されている。イントラ予測モジュール２６０の出力部は、スイッチ２９７の第２の入力部と信号通信するように結合されている。マクロブロック・タイプ決定モジュール２２０の出力部は、スイッチ２９７の第３の入力部と信号通信するように結合されている。スイッチ２９７の第３の入力部は、スイッチの（制御入力部、即ち、第３の入力部と比較される）「データ」入力が、動き補償器２７０またはイントラ予測モジュール２６０によって供給されるかどうかを判定する。スイッチ２９７の出力部は、結合器２１９の第２の非反転入力部および結合器２８５の反転入力部と信号通信するように結合されている。
【００３７】
フレーム順序付けバッファ２１０の第１の入力部および符号化器コントローラ２０５の入力部は、符号化器２００の入力部として、入力ピクチャを受信するために利用可能である。さらに、補助拡張情報（ＳＥＩ）挿入器２３０の第２の入力部は、符号化器２００の入力部として、メタデータを受信するために利用可能である。出力バッファ２３５の出力部は、符号化器２００の出力部として、ビットストリームを出力するために利用可能である。
【００３８】
図３を参照するに、本発明の原理が適用される例示的なビデオ復号器が概ね参照符号３００によって示されている。ビデオ復号器３００は、エントロピー復号器３４５の第１の入力部と信号通信するように結合された出力部を有する入力バッファ３１０を含む。エントロピー復号器３４５の第１の出力部は、逆変換器／逆量子化器３５０の第１の入力部と信号通信するように結合されている。逆変換器／逆量子化器３５０の出力部は、結合器３２５の第２の非反転入力部と信号通信するように結合されている。結合器３２５の出力部は、デブロッキング・フィルタ３６５の第２の入力部と、イントラ予測モジュール３６０の第１の入力部と信号通信するように結合されている。デブロッキング・フィルタ３６５の第２の出力部は、参照ピクチャ・バッファ３８０の第１の入力部と信号通信するように結合されている。参照ピクチャ・バッファ３８０の出力部は、動き補償器３７０の第２の入力部と信号通信するように結合されている。
【００３９】
エントロピー復号器３４５の第２の出力部は、動き補償器３７０の第３の入力部と、デブロッキング・フィルタ３６５の第１の入力部とイントラ予測モジュール３６０の第３の入力部と信号通信するように結合されている。エントロピー復号器３４５の第３の出力部は、復号器コントローラ３０５の入力部と信号通信するように結合されている。復号器コントローラ３０５の第１の出力部は、エントロピー復号器３４５の第２の入力部と信号通信するように結合されている。復号器コントローラ３０５の第２の出力部は、逆変換器／逆量子化器３５０の第２の入力部と信号通信するように結合されている。復号器コントローラ３０５の第３の出力部は、デブロッキング・フィルタ３６５の第３の入力部と信号通信するように結合されている。復号器コントローラ３０５の第４の出力部は、イントラ予測モジュール３６０の第２の入力部と、動き補償器３７０の第１の入力部と、参照ピクチャ・バッファ３８０の第２の入力部と信号通信するように結合されている。
【００４０】
動き補償器３７０の出力部は、スイッチ３９７の第１の入力部と信号通信するように結合されている。イントラ予測モジュール３６０の出力部は、スイッチ３９７の第２の入力部と信号通信するように結合されている。スイッチ３９７の出力部は、結合器３２５の第１の非反転入力部と信号通信するように結合されている。
【００４１】
入力バッファ３１０の入力部は、復号器３００の入力部として、入力ビットストリームを受信するために利用可能である。デブロッキング・フィルタ３６５の第１の出力部は、復号器３００の出力部として、出力ピクチャを出力するために利用可能である。
【００４２】
上述したように、本発明の原理は、改善されたビデオ符号化および復号を行う方法および装置に関する。本発明の原理は、ＣＡＢＡＣの非システマティックな短所を克服するという利点がある。さらに、本発明の原理は、バイナリ算術符号化エンジンを使用するが、バイナリ・ビンの数を低減するシステマティックな符号化エンジンにより、符号化器および復号器の双方におけるバイナリ算術符号化エンジンの使用を低減する。このシステマティックな符号化方法および低減されたバイナリ・ビンにより、従来技術に係るＣＡＢＡＣシステムと比較して、より単純な符号化システムとより高い圧縮効率が達成される。
【００４３】
よって、本発明の原理は、より少ないシンタックス・ビンを使用する係数ブロックのシステマティックなエントロピー符号化に関する。係数値が所定の走査順で見つかった（または、処理される）ときに、システマティックにこの係数値を符号化する。具体的には、「重要度フラグ」（ｓｉｇ＿ｆｌａｇ）を使用し、零係数および非零係数を示す。非零の場合には、「２以上の最後の係数」（ｌａｓｔ＿ｇｅ２＿ｆｌａｇ）および「最後のフラグ」（ｌａｓｔ＿ｆｌａｇ）を使用して残りの位置のセットが幾つかの「２以上の」（ｇｅ２）非零係数および重要係数（ｓｉｇｎｉｆｉｃａｎｔ  ｃｏｅｆｆｉｃｉｅｎｔｓ）をそれぞれ含むかどうかを示す。重要係数がｓｉｇ＿ｆｌａｇ（ｓｉｇ＿ｆｌａｇ＝１）によって見つかった、または、示される場合にはいつでも、その値が直ちに符号化される。本発明の原理のアプローチには、少なくとも３つの利点が存在する。
（１）ブロック全体が１回の走査で符号化されるため、システムが単純になる。
（２）バイナリ・ビンが低減されるため、符号化器側および復号器側での幾らかのバイナリ算術符号化演算量が低減される。
（３）ｓｉｇ＿ｆｌａｇ、ｌａｓｔ＿ｆｌａｇ、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ、およびレベル・ビンなどのシンタックスのためのコンテキスト・モデルを設計するために、近傍の符号化された係数のレベル情報が利用可能である。
【００４４】
従って、開示し、説明するエントロピー符号化システムは、従来技術に係るシステムよりもより単純で効率的なエントロピー符号化システムである。
【００４５】
ビデオ符号化システムにおいて、生データがイントラまたはインター予測を用いて処理され、イントラまたはインター・フレーム相関が取り除かれた後、４×４、８×８、１６×１６、３２×３２、および６４×６４ＤＣＴのようなブロックベースの変換（または何らかの他の変換）を用いて処理され、相関がさらに取り除かれる。次に、変換ブロックにおける係数に量子化が適用される。一実施形態においては、最後にエントロピー符号化を行って各変換されたブロックの量子化された係数を符号化し、これを出力ビットストリームに供給する。
【００４６】
図４を参照するに、４×４サイズの例示的な量子化された変換ブロックが概ね参照符号４００によって示されている。予測、変換、および量子化の後、ブロックのエネルギーの多くは、（変換ブロックの左上の角部に存在する）低周波位置に集中する一方で、（ブロックの右下の角部に位置する）高周波数係数の多くは、零である。このようなデータ・ブロックをエントロピー符号化するために、バイナリ・ビンを用いて係数値およびブロック内のこれらの係数の位置を含むブロック情報を効率的に表現する必要がある。従って、バイナリ・ビンは、バイナリ算術符号化エンジンを用いて符号化される。
【００４７】
バイナリ・ビンを用いてブロック情報を表現するために、以下のシンタックスを使用する。説明を簡略化するために、シンタックス要素のうちのいくつかをＣＡＢＡＣなどの既存の方法から借用する。さらに、新たなシンタックス要素が以下のような本発明の原理を実現できるようにするために導入される。
ｓｉｇ＿ｆｌａｇ：
このフラグは、ＣＡＢＡＣでの場合と同様に定義される。ｓｉｇ＿ｆｌａｇ＝１は、対応する係数が非零である（重要である）ことを意味する。ｓｉｇ＿ｆｌａｇ＝０は、対応する係数が零であることを意味する。
ｌａｓｔ＿ｇｅ２＿ｆｌａｇ：
このフラグは、本発明の原理に従って導入された新たなシンタックス要素であり、現在の非零係数が、所与の走査順による現在のブロックで絶対値が１よりも大きな値を有する最後の係数であるかどうかを示す。「ｇｅ２」という表現は、「２以上」からきているものである。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１は、現在の非零係数が最後のこのような係数であることを意味している。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０は、現在の非零係数が最後のこのような係数でないことを意味する。
ｌａｓｔ＿ｆｌａｇ：
このフラグは、ＣＡＢＡＣでの場合と同様に定義される。ｌａｓｔ＿ｆｌａｇは、現在の非零係数が所与の走査順で現在のブロック内の最後の非零係数であるかどうかを意味する。ｌａｓｔ＿ｆｌａｇ＝１は、現在の非零係数が所与の走査順で現在のブロック内の最後の非零係数であることを意味する。ｌａｓｔ＿ｆｌａｇ＝０は、現在の非零係数が所与の走査順で現在のブロック内の最後の非零係数でないことを意味する。
Ｂｉｎ＿１：
係数が非零となることが知られているが、絶対値が１である、または、絶対値が１よりも大きい（ｇｅ２）ことが知られていない場合、これを明確にするためにＢｉｎ＿１が送出される。Ｂｉｎ＿１＝１は、非零係数がその絶対値が１であることを意味する。Ｂｉｎ＿１＝０は、非零係数が１よりも大きな絶対値（ｇｅ２）を有することを意味する。なお、この情報を２、３、または、それよりも大きな他の係数値として符号化する代わりに、係数がその絶対値が１以上であることを示すためにＢｉｎ＿１を使用する。これは、通常のデータ・ブロックにおいて、非零の約半分がその絶対値が１であるため、これらを特別に処理するのがより効率的だからである。
レベル：
係数がその絶対値が１よりも大きいこと（ｇｅ２）が知られている場合、絶対値としてそのレベルを送出する。元々は、このレベルはバイナリでなく、例えば、限定するものではないが、ＣＡＢＡＣにおいて使用されるＵＥＧ０方法などの何らかのバイナリ化方法を使用してバイナリ化を行い、バイナリ算術符号化を用いてこれらのバイナリ・ビンを符号
化する。
Ｓｉｇｎ：
全ての非零係数に対して、「＋」および「―」に対し、それぞれ０、１として符号が送
出される。
【００４８】
図５を参照するに、符号化処理の例が参照符号５００によって概ね示されている。符号化処理５００は、図４における例示的なブロック４００の符号化に関して説明される。所与の走査順、例えば、ＣＡＢＡＣにおける前方ジグザグ走査でデータを走査する。再配列された係数は、図５の最初の行で与えられている。
【００４９】
最初の係数「１０」では、この係数は非零であり（ｓｉｇ＿ｆｌａｇ＝１）、最後のｇｅ２ではない（ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０）。この係数の値を符号化するために、まず、Ｂｉｎ＿１＝０を送出してその絶対値が１よりも大きいことを示す。次に、その絶対値をレベルを用いて符号化する。ここで、１０−２＝８を符号化するだけで、復号器には、絶対値が８＋２＝１０となることが分かる。最後に、その符号「＋」を０を用いて送出する。
【００５０】
２番目の係数「０」では、ｓｉｇ＿ｆｌａｇ＝０である。これで、この係数についての全ての情報が送出されていることになり、符号化器は、次の係数の処理に動作を移行させる。
【００５１】
次の係数「−１」は、非零であり（ｓｉｇ＿ｆｌａｇ＝１）、最後のｇｅ２ではない（ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０）。その値を符号化するために、Ｂｉｎ＿１＝１を送出してその絶対値が１であることを示すと、レベルを処理する必要がなくなる。最後に、その符号「−」を１を用いて送出する。
【００５２】
次の係数「２」は、非零であり（ｓｉｇ＿ｆｌａｇ＝１）、最後のｇｅ２である（ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１）。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１となった後は、ｌａｓｔ＿ｆｌａｇを送出して現在の係数が最後の非零係数であるかどうかを示す必要がある。ここで、係数が最後の非零係数でないため、ｌａｓｔ＿ｆｌａｇ＝０である。なお、ここでｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１であることは、暗黙的に、この係数が１よりも大きな絶対値を有していなければならないこと（すなわち、ｇｅ２でなければならないこと）を示すため、Ｂｉｎ＿１＝０の使用が省かれる。２−２＝０を符号化することによってレベルを用いてその絶対値を送出すると、復号器は、絶対値が０＋２＝２であることを知る。最後に、その符号「＋」０を用いて送出する。
【００５３】
次の係数「０」では、ｓｉｇ＿ｆｌａｇ＝０である。
【００５４】
次の係数「１」は、非零であり（ｓｉｇ＿ｆｌａｇ＝１）、最後の非零係数ではない（ｌａｓｔ＿ｆｌａｇ＝０）。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１となった後は、全ての重要係数は、１の絶対値を有さなければならないため、これ以上Ｂｉｎ＿１またはレベルを用いてその絶対値を符号化する必要はない。その符号「＋」を０を用いて送出するのみでよい。
【００５５】
次の係数「０」では、ｓｉｇ＿ｆｌａｇ＝０である。
【００５６】
次の係数「−１」は、非零であり（ｓｉｇ＿ｆｌａｇ＝１）、最後の非零である（ｌａｓｔ＿ｆｌａｇ＝１）。その符号「−」を１を用いて送出すると、このブロックの符号化が完了する。
【００５７】
上述した符号化の例からは、説明した実施形態の少なくとも１つの新規な態様は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇの使用であることが分かる。少なくとも以下の内容を含む、幾つかのｌａｓｔ＿ｇｅ２＿ｆｌａｇの利点が存在する。
【００５８】
１．ｌａｓｔ＿ｇｅ２＿ｆｌａｇにより、ｌａｓｔ＿ｆｌａｇの使用を幾らか減少させることができる。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０であると、後続する走査位置に非零（具体的には、絶対値が１よりも大きな）係数が存在しなければならない。その場合、ｌａｓｔ＿ｆｌａｇは、０でなければならないため、これらのｌａｓｔ＿ｆｌａｇの使用をｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１となるまで省く。
【００５９】
ＣＡＢＡＣを用いた場合と提案した方法を用いた場合とで、同じ例のブロックの符号化を比較する。図１において、ＣＡＢＡＣを用いたブロックの符号化には、５個のｌａｓｔ＿ｆｌａｇが必要となり、これらは、００００１である。これに対し、図５において、新たな方法を用いた同じブロックの符号化には、３個のｌａｓｔ＿ｇｅ２＿ｆｌａｇ（００１）および３個のｌａｓｔ＿ｆｌａｇ（００１）が必要となる。ブロック内にＮ個の非零係数が存在すると仮定すると、ＣＡＢＡＣでは、Ｎ個のｌａｓｔ＿ｆｌａｇが必要となる。これに対し、新たな方法では、合計でＮ＋１個のｌａｓｔ＿ｇｅ２＿ｆｌａｇおよびｌａｓｔ＿ｆｌａｇが必要となる。ｌａｓｔ＿ｇｅ２＿ｆｌａｇによって次の２個が省かれることと比べると、ここでの１個の追加のフラグは、非常に重要である。
【００６０】
２．走査パスの最後では、連続した「末尾の複数の１（ｔｒａｉｌｉｎｇ  ｏｎｅｓ）」と呼ばれる、すなわち、絶対値が１である複数の変換係数レベルが発生する可能性が極めて高い。図５の例では、５個の重要係数１０、−１、２、１、−１が存在し、最後の「１」および「−１」は、「末尾の複数の１」である。ｌａｓｔ＿ｇｅ２＿ｆｌａｇにより、ＣＡＢＡＣにおける末尾の複数の１について、Ｂｉｎ＿１の使用が略かれる。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１となった後は、幾らかの係数が非零として示される場合には、これらの係数は、１の絶対値を有していなければならない。これらは、実際には、ＣＡＢＡＣ符号化における末尾の複数の１である。ＣＡＢＡＣにおいては、このような末尾の複数の１の各々について、それが１であることを示すために（ｇｅ２の代わりに）１つのＢｉｎ＿１が必要である。本発明の方法では、これらをｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１を用いて暗黙的に示すため、ここで、末尾の複数の１について、Ｂｉｎ＿１の使用が省かれる。大きな変換ブロックでは、比較的多数の末尾の１が存在するため、ここでＢｉｎ＿１の使用が省かれたことは重要である。
【００６１】
３．ｌａｓｔ＿ｇｅ２＿ｆｌａｇにより、末尾でない１について、他のＢｉｎ＿１の使用が省くことができる。何らかの係数でｌａｓｔ＿ｇｅ２＿ｆｌａｇが０から１に変化する場合、係数はｇｅ２でなければならない（すなわち、係数は１よりも大きな絶対値を有していなければならない）ため、０でなければならないＢｉｎ＿１を送出する必要はない。一例は、図１の符号化例の係数２である。
【００６２】
このようにＢｉｎ＿１を省くことは、ｌａｓｔ＿ｇｅ２＿ｆｌａｇが０から１に変化するブロックのみで行われる。すなわち、ブロックのために複数のｌａｓｔ＿ｇｅ２＿ｆｌａｇが送出される。ブロックのために１つのｌａｓｔ＿ｇｅ２＿ｆｌａｇのみが送出されると仮定すると、それは１でなければならず、対応する係数は、１またはｇｅ２の絶対値を有するであろう。図６には、複数の係数が何らかの所与の走査順に並んでいる幾つか例示的なケースが提供されている。
【００６３】
図６を参照するに、Ｂｉｎ＿１が省かれない例示的な特別なケースが概ね参照符号６００によって示されている。さらに、４つの特別なケースが存在することに着目し、これらは、それぞれ、ケース１、ケース２、ケース３、およびケース４として示されている。ケース１およびケース２では、全ての重要係数の絶対値は、２よりも小さい。ケース３およびケース４では、最初の重要係数のみが１よりも大きな絶対値を有する。全ての場合において、最初の重要係数でｌａｓｔ＿ｇｅ２＿ｆｌａｇが１に設定されるため、ｌａｓｔ＿ｇｅ２＿ｆｌａｇには「０から１への変化」が存在せず、１つのビンのみがｌａｓｔ＿ｇｅ２＿ｆｌａｇに使用される。従って、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１を有する係数は、１であるか（ケース１およびケース２の場合）、１よりも大きく（ケース３およびケース４の場合）、これは、Ｂｉｎ＿１によって示されるべきである。ケース１およびケース２においては、最初の重要係数「１」は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１およびＢｉｎ＿１＝１を有する。ケース３およびケース４の場合には、最初の重要係数２（より一般的には、２以上である）は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１およびＢｉｎ＿１＝０を有する。すなわち、ブロックのｌａｓｔ＿ｇｅ２＿ｆｌａｇが１つのビンのみを含む場合、このビンは１でなければならず、対応するＢｉｎ＿１が符号化される必要がある。
【００６４】
図７Ａを参照するに、エントロピー符号化の例示的な方法が概ね参照符号７００によって示されている。この方法は、制御を判定ブロック７０１に受け渡す開始ブロック７１２を含む。判定ブロック７０１は、ブロック内に重要係数が存在するかどうかを判定する。ブロック内に重要係数が存在する場合には、制御は機能ブロック７０２に受け渡される。ブロック内に重要係数が存在しない場合には、制御が終了ブロック７９９に受け渡される。機能ブロック７０２は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０およびｌａｓｔ＿ｆｌａｇ＝０を設定し、制御を機能ブロック７０３に受け渡す。機能ブロック７０３は、ｌａｓｔ＿ｆｌａｇ＝０であれば、１から係数の数（♯）までの範囲を有する変数ｊを使用したループを開始し、制御を機能ブロック７０４に受け渡す。機能ブロック７０４は、ｓｉｇ＿ｆｌａｇを符号化し、制御を判定ブロック７０５に受け渡す。判定ブロック７０５は、ｓｉｇ＿ｆｌａｇ＝１であるかどうかを判定する。ｓｉｇ＿ｆｌａｇ＝１である場合には、制御が機能ブロック７０６に受け渡される。ｓｉｇ＿ｆｌａｇ＝１でない場合には、制御がループ端ブロック７１１に受け渡される。機能ブロック７０６は、必要であれば、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを符号化し、制御を機能ブロック７０７に受け渡す。機能ブロック７０７は、必要であれば、ｌａｓｔ＿ｆｌａｇを符号化し、制御を機能ブロック７０８に受け渡す。機能ブロック７０８は、必要であれば、Ｂｉｎ＿１を符号化し、制御を機能ブロック７０９に受け渡す。機能ブロック７０９は、必要であれば、レベルを符号化し、制御を機能ブロック７１０に受け渡す。機能ブロック７１０は、符号を符号化し、制御をループ端ブロック７１１に受け渡す。ループ端ブロック７１１は、ループを終了し、制御を終了ブロック７９９に受け渡す。
【００６５】
機能ブロック７０３に関し、何らかの走査順にあるブロック内の係数をループする。ｌａｓｔ＿ｆｌａｇ＝１を有する係数の後の係数は、ループが不要である。判定ブロック７０５に関し、ｓｉｇ＿ｆｌａｇ＝１（重要）であれば、ブロック７０６〜７１０によって係数をさらに符号化する。そうでなければ、次の係数にループする。機能ブロック７０６に関し、この機能ブロック７０６は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを取り扱う。なお、ｌａｓｔ＿ｇｅ２＿ｆｌａｇの処理は、図７Ｂを参照してさらに説明する。機能ブロック７０７に関し、この機能ブロック７０７は、ｌａｓｔ＿ｆｌａｇを取り扱う。なお、ｌａｓｔ＿ｆｌａｇの処理は、図７Ｃを参照してさらに説明する。機能ブロック７０８に関し、この機能ブロック７０８は、Ｂｉｎ＿１を取り扱う。なお、Ｂｉｎ＿１の処理は、図７Ｄを参照してさらに説明する。機能ブロック７０９に関し、この機能ブロック７０９は、レベルを取り扱う。なお、レベルの処理は、図７Ｅを参照してさらに説明する。
【００６６】
図７Ｂを参照するに、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを符号化する例示的な方法が概ね参照符号７２０によって示されている。方法７２０は、制御を判定ブロック７２１に受け渡す開始ブロック７１９を含む。判定ブロック７２１は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０であるかどうかを判定する。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０である場合には、制御が判定ブロック７２２に受け渡される。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０でない場合には、制御が終了ブロック７９８に受け渡される。判定ブロック７２２は、現在の係数の後に１よりも大きな係数が存在するかどうかを判定する。現在の係数の後に１よりも大きな係数が存在する場合には、制御が機能ブロック７２３に受け渡される。現在の係数の後に１よりも大きな係数が存在しない場合には、制御が機能ブロック７２４に受け渡される。機能ブロック７２３は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０を設定し、制御を判定ブロック７２５に受け渡す。判定ブロック７２４は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１を設定し、制御を判定ブロック７２５に受け渡す。判定ブロック７２５は、現在の走査位置が最後の走査位置であるかどうかを判定する。現在の走査位置が最後の走査位置である場合には、制御が終了ブロック７９８に受け渡される。現在の走査位置が最後の走査位置でない場合には、制御が機能ブロック７２６に受け渡される。機能ブロック７２６は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを符号化し、制御を終了ブロック７９８に受け渡す。
【００６７】
図７Ｃを参照するに、ｌａｓｔ＿ｆｌａｇを符号化する例示的な方法が概ね参照符号７３０によって示されている。この方法は、制御を判定ブロック７３１に受け渡す開始ブロック７２９を含む。判定ブロック７３１は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１であるかどうかを判定する。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１である場合には、制御が判定ブロック７３２に受け渡される。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１でない場合には、制御が終了ブロック７９７に受け渡される。判定ブロック７３２は、現在の係数の後に重要係数が存在するかどうかを判定する。現在の係数の後に重要係数が存在する場合には、制御が機能ブロック７３３に受け渡される。現在の係数の後に重要係数が存在しない場合には、制御が機能ブロック７３４に受け渡される。機能ブロック７３３は、ｌａｓｔ＿ｆｌａｇ＝０に設定し、制御を判定ブロック７３５に受け渡す。機能ブロック７３４は、ｌａｓｔ＿ｆｌａｇ＝１に設定し、制御を判定ブロック７３５に受け渡す。判定ブロック７３５は、現在の走査位置が最後の走査位置であるかどうかを判定する。現在の走査位置が最後の走査位置である場合には、制御が終了ブロック７９７に受け渡される。現在の走査位置が最後の走査位置でない場合には、制御が機能ブロック７３６に受け渡される。機能ブロック７３６は、ｌａｓｔ＿ｆｌａｇを符号化し、制御を終了ブロック７９７に受け渡す。
【００６８】
図７Ｄを参照するに、Ｂｉｎ＿１を符号化する例示的な方法が概ね参照符号７４０によって示されている。方法７４０は、制御を判定ブロック７４１に受け渡す開始ブロック７３９を含む。判定ブロック７４１は、「ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０」または「ブロック内の最初の重要係数である現在の変換係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」であるかどうかを判定する。「ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０」または「ブロック内の最初の重要係数である現在の変換係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」である場合には、制御が判定ブロック７４２に受け渡される。「ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０」でも「ブロック内の最初の重要係数である現在の変換係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」でもない場合には、制御が終了ブロック７９６に受け渡される。判定ブロック７４２は、変換係数の絶対値が１である（Ａｂｓ（ｃｕｒｒＣｏｅｆｆ）＝１）かどうかを判定する。変換係数の絶対値が１である場合には、制御が機能ブロック７４３に受け渡される。変換係数の絶対値が１でない場合には、制御が機能ブロック７４４に受け渡される。機能ブロック７４３は、Ｂｉｎ＿１＝１に設定し、制御を機能ブロック７４５に受け渡す。機能ブロック７４４は、Ｂｉｎ＿１＝０に設定し、制御を機能ブロック７４５に受け渡す。機能ブロック７４５は、Ｂｉｎ＿１を符号化し、制御を終了ブロック７９６に受け渡す。
【００６９】
図７Ｅを参照するに、レベルを符号化する例示的な方法が概ね参照符号７５０によって示されている。方法７５０は、制御を判定ブロック７５１に受け渡す開始ブロック７４９を含む。判定ブロック７５１は、変換係数の絶対値が２以上である（Ａｂｓ（ｃｕｒｒＣｏｅｆｆ）≧２）かどうかを判定する。変換係数の絶対値が２以上である場合には、制御が機能ブロック７５２に受け渡される。変換係数の絶対値が２以上でない場合には、制御が終了ブロック７９５に受け渡される。機能ブロック７５２は、レベル＝ａｂｓ（ｃｕｒｒＣｏｅｆｆ）−２であるレベルを符号化し、制御を終了ブロック７９５に受け渡す。
【００７０】
方法７００における符号化順は、図５の例の符号化順と同じである。しかしながら、符号化順は、以下のルールに従っている限り、ブロック７０６〜７１０が柔軟に変更されることがある。
（機能ブロック７０６に従った）ｌａｓｔ＿ｇｅ２＿ｆｌａｇは、（機能ブロック７０８に従った）Ｂｉｎ＿１の前に処理され、（機能ブロック７０８に従った）Ｂｉｎ＿１は、（機能ブロック７０９に従った）レベルよりも前に処理される。すなわち、７０６→７０８→７０９→となる。
（機能ブロック７０７に従った）ｌａｓｔ＿ｆｌａｇの処理は、機能ブロック７０６、７０８、または７０９の後に行われることがある。
（機能ブロック７１０に従った）符号の処理は、４つの機能ブロック７０６、７０７、７０８、７０９のいずれかの前または後に行われることがある。
復号器における処理順は、符号化器における処理と一致していなければならない。
【００７１】
なお、ブロック内の最後の走査位置にある係数を符号化する際に特別な取り扱いがある。
方法７２０においては、ｌａｓｔ＿ｇｅ２＿ｆｌａｇが最後の係数の前に依然として０である場合には、最後の係数では、ｌａｓｔ＿ｇｅ２＿ｆｌａｇは、１でなければならないため、ｌａｓｔ＿ｇｅ２＿ｆｌａｇの符号化は不要である。
方法７３０においては、同様に、ｌａｓｔ＿ｆｌａｇが最後の係数の前に依然として０である場合には、最後の係数では、ｌａｓｔ＿ｆｌａｇは、１でなければならないため、ｌａｓｔ＿ｆｌａｇの符号化は不要である。
Ｂｉｎ＿１（７４０）：機能ブロック７４１に関し、（機能ブロック７２６による符号化、送出は不要であるが、）最後の係数でｌａｓｔ＿ｇｅ２＿ｆｌａｇが機能ブロック７２４によって１に設定されている場合には、ブロック内の最初の重要係数であり、Ｂｉｎ＿１はブロック７４２〜７４５に従ってテスト、符号化されるべきである。
（機能ブロック７０９に従った）レベル情報は、必要であれば符号化されるべきである。
【００７２】
図８Ａを参照するに、エントロピー復号の例示的な方法が概ね参照符号８００によって示されている。方法８００は、制御を判定ブロック８０１に受け渡す開始ブロック８１９を含む。判定ブロック８０１は、ブロック内に重要係数が存在するかどうかを判定する。ブロック内に重要係数が存在する場合には、制御が機能ブロック８０２に受け渡される。ブロック内に重要係数が存在しない場合には、制御が終了ブロック８９９に受け渡される。機能ブロック８０２は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０およびｌａｓｔ＿ｆｌａｇ＝０を設定し、制御を機能ブロック８０３に受け渡す。機能ブロック８０３は、ｌａｓｔ＿ｆｌａｇ＝０であれば、１から係数の数（♯）までの範囲を有する変数ｊを使用したループを開始し、制御を機能ブロック８０４に受け渡す。機能ブロック８０４は、ｓｉｇ＿ｆｌａｇを復号し、制御を判定ブロック８０５に受け渡す。判定ブロック８０５は、ｓｉｇ＿ｆｌａｇ＝１であるかどうかを判定する。ｓｉｇ＿ｆｌａｇ＝１である場合には、制御が機能ブロック８０６に受け渡される。ｓｉｇ＿ｆｌａｇ＝１でない場合には、制御がループ端ブロック８１１に受け渡される。機能ブロック８０６は、必要であれば、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを復号し、制御を機能ブロック８０７に受け渡す。機能ブロック８０７は、必要であれば、ｌａｓｔ＿ｆｌａｇを復号し、制御を機能ブロック８０８に受け渡す。機能ブロック８０８は、必要であれば、Ｂｉｎ＿１を復号し、制御を機能ブロック８０９に受け渡す。機能ブロック８０９は、必要であれば、レベルを復号し、制御を機能ブロック８１０に受け渡す。機能ブロック８１０は、符号を復号し、制御をループ端ブロック８１１に受け渡す。機能ブロック８１１は、ループを終了し、制御を終了ブロック８９９に受け渡す。
【００７３】
機能ブロック８０３に関し、符号化器の場合と同じ走査順でブロック内の係数をループする。ｌａｓｔ＿ｆｌａｇ＝１を有する係数の後の係数は、ループが不要である。機能ブロック８０６に関し、この機能ブロック８０６は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを取り扱う。なお、ｌａｓｔ＿ｇｅ２＿ｆｌａｇの処理は、図８Ｂを参照してさらに説明する。機能ブロック８０７に関し、この機能ブロック８０７は、ｌａｓｔ＿ｆｌａｇを取り扱う。なお、ｌａｓｔ＿ｆｌａｇの処理は、図８Ｃを参照してさらに説明する。機能ブロック８０８に関し、この機能ブロック８０８は、Ｂｉｎ＿１を取り扱う。なお、Ｂｉｎ＿１の処理は、図８Ｄを参照してさらに説明する。機能ブロック８０９に関し、この機能ブロック８０９は、レベルを取り扱う。なお、レベルの処理は、図８Ｅを参照してさらに説明する。
【００７４】
一実施形態においては、方法８００の復号順は、方法７００の符号化順と一致することが理解できよう。しかしながら、復号順は、これに対応する符号化順と一致する限り、機能ブロック８０６〜８１０が柔軟に変更されることがある。
【００７５】
図８Ｂを参照するに、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを復号する例示的な方法が概ね参照符号８２０によって示されている。方法８２０は、制御を判定ブロック８２１に受け渡す開始ブロック８１２を含む。判定ブロック８２１は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０であるかどうかを判定する。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０である場合には、制御が判定ブロック８２２に受け渡される。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０でない場合には、制御が終了ブロック８９８に受け渡される。判定ブロック８２２は、現在の走査位置が最後の走査位置にあるかどうかを判定する。現在の走査位置が最後の走査位置にある場合には、制御がブロック８２３に受け渡される。現在の走査位置が最後の走査位置にない場合には、制御が機能ブロック８２４に受け渡される。機能ブロック８２３は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１を設定し、制御を終了ブロック８９８に受け渡す。機能ブロック８２４は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇを復号し、制御を終了ブロック８９８に受け渡す。
【００７６】
図８Ｃを参照するに、ｌａｓｔ＿ｆｌａｇを復号する例示的な方法が概ね参照符号８３０によって示されている。方法８３０は、制御を判定ブロック８３１に受け渡す開始ブロック８２５を含む。判定ブロック８３１は、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１であるかどうかを判定する。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１である場合には、制御が判定ブロック８３２に受け渡される。ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１でない場合には、制御が終了ブロック８９７に受け渡される。判定ブロック８３２は、現在の走査位置が最後の走査位置にあるかどうかを判定する。現在の走査位置が最後の走査位置にある場合には、制御が終了ブロック８９７に受け渡される。現在の走査位置が最後の走査位置にない場合には、制御が機能ブロック８３３に受け渡される。機能ブロック８３３は、ｌａｓｔ＿ｆｌａｇを復号し、制御を終了ブロック８９７に受け渡す。
【００７７】
図８Ｄを参照するに、Ｂｉｎ＿１を復号する例示的な方法が概ね参照符号８４０によって示されている。方法８４０は、制御を機能ブロック８４１に受け渡す開始ブロック８３４を含む。機能ブロック８４１は、Ｂｉｎ＿１＝１に設定し、制御を判定ブロック８４２に受け渡す。判定ブロック８４２は、「ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０」または「ブロック内の最初の重要係数である現在の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」であるかどうかを判定する。「ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０」または「ブロック内の最初の重要係数である現在の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」である場合には、制御が機能ブロック８４３に受け渡される。「ｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝０」でも「ブロック内の最初の重要係数である現在の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」でもない場合には、制御が終了ブロック８９６に受け渡される。機能ブロック８４３は、Ｂｉｎ＿１を復号し、制御を終了ブロック８９６に受け渡す。
【００７８】
図８Ｅを参照するに、レベルを復号する例示的な方法が概ね参照符号８５０によって示されている。方法８５０は、制御を判定ブロック８５１に受け渡す開始ブロック８４４を含む。判定ブロック８５１は、「Ｂｉｎ＿１＝０」または「ブロック内の最初の重要係数でない現在の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」であるかどうかを判定する。「Ｂｉｎ＿１＝０」または「ブロック内の最初の重要係数でない現在の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」である場合には、制御が機能ブロック８５２に受け渡される。「Ｂｉｎ＿１＝０」でも「ブロック内の最初の重要係数でない現在の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇ＝１」でもない場合には、制御が機能ブロック８５３に受け渡される。機能ブロック８５２は、レベルを復号し、現在の係数の絶対値をレベル＋２（Ａｂｓ（ｃｕｒｒＣｏｅｆｆ）＝レベル＋２）に設定し、制御を終了ブロック８９５に受け渡す。機能ブロック８５３は、現在の係数の絶対値を１に設定し（（ａｂｓ（ｃｕｒｒＣｏｅｆｆ））＝１、制御を終了ブロック８９５に受け渡す。
【００７９】
なお、ブロック内の最後の走査位置における係数を復号する際、特別な取り扱いが存在する。
方法８２０においては、ｌａｓｔ＿ｇｅ２＿ｆｌａｇが最後の係数の前に依然として０である場合には、最後の係数では、ｌａｓｔ＿ｇｅ２＿ｆｌａｇは１でなければならないため、ｌａｓｔ＿ｇｅ２＿ｆｌａｇの復号は不要である。その代わりに、ｌａｓｔ＿ｇｅ２＿ｆｌａｇは、機能ブロック８２３に従って単に１に設定される。
方法８３０においては、同様に、ｌａｓｔ＿ｆｌａｇが最後の係数の前に依然として０である場合には、最後の係数では、ｌａｓｔ＿ｆｌａｇは１でなければならないため、ｌａｓｔ＿ｆｌａｇの復号は不要である。
（方法８４０に従った）Ｂｉｎ＿１：機能ブロック８４２に関し、（機能ブロック８２４では復号される必要はないが、）ブロック８２３の最後の係数では、ｌａｓｔ＿ｇｅ２＿ｆｌａｇが１に設定され、ブロック内の最初の重要係数である場合は、Ｂｉｎ＿１が機能ブロック８４３によって復号されるべきである。
（方法８５０に従った）レベル：８５１において、Ｂｉｎ＿１＝０である場合、または、（機能ブロック８２４によって復号される必要はないが、）機能ブロック８２３により最後の係数に対するｌａｓｔ＿ｇｅ２＿ｆｌａｇが１に設定され、最後の係数が最初の重要係数でない場合には、レベルが機能ブロック８５２によって復号されるべきである。そうでない場合には、機能ブロック８５３によってこの最後の係数の絶対値を１に設定する。
【００８０】
提案した方法の別の利点は、ｓｉｇ＿ｆｌａｇ、ｌａｓｔ＿ｆｌａｇなどのような他のシンタックスの同一の走査パスにおける係数レベルの符号化である。ＣＡＢＡＣにおいては、係数レベル情報は、逆ジグザグ走査順に符号化される。これは、ブロックを符号化するための第２のパスのように見える。この逆ジグザグ順符号化においては、レベル情報は、符号化された係数の逆ジグザグ位置を用いて設計されるコンテキスト・モデルを用いて符号化することができる。具体的には、（逆ジグザグ順で）最初の符号化された係数がコンテキスト・モデル０を用いて符号化され、２番目の符号化係数がコンテキスト・モデル１を用いて符号化されるなどである。このコンテキスト・モデル設計は、同様に確からしい（０．５／０．５）モデルを用いたレベル・ビンの符号化と比べると、いくらかの利得を示す（すなわち、複数のビンをビン毎に１ビットで直接出力する）．
【００８１】
小さな短所は、１つのパスの符号化方法において適切に設計されたコンテキスト・モデルで簡単に補償することができる。符号化された係数の係数レベル情報を考慮すると、ｓｉｇ＿ｆｌａｇ、ｌａｓｔ＿ｇｅ２＿ｆｌａｇ、ｌａｓｔ＿ｆｌａｇ、Ｂｉｎ＿１、およびレベル・ビンに対するコンテキスト・モデルは、これらの近傍に存在する符号化済の係数の既知のレベル情報に基づいて設計することができ、さらにコンテキスト・モデルの性能を向上させ、符号化効率を高めることができる。
【００８２】
図９を参照するに、現在の変換係数に対する値を選択、信号伝達する方法が概ね参照符号９００によって示されている。方法９００は、制御を機能ブロック９１０に受け渡す開始ブロック９０５を含む。機能ブロック９１０は、ピクチャおよび値のセットを入力し、制御を機能ブロック９２０に受け渡す。機能ブロック９２０は、既に処理されたブロックまたはピクチャの統計値に基づいて値を適応的に選択し、制御を機能ブロック９３０に受け渡す。機能ブロック９３０は、シーケンス・レベル、フレーム・レベル、スライス・レベル、または、ブロック・レベルで選択された値を明示的に信号伝達し、制御を終了ブロック９９９に受け渡す。
【００８３】
図１０を参照するに、現在の変換係数に対する値を復号する例示的な方法が概ね参照符号１０００によって示されている。方法１０００は、制御を機能ブロック１０１０に受け渡す開始ブロック１００５を含む。機能ブロック１０１０は、シーケンス・レベル、フレーム・レベル、スライス・レベル、または、ブロック・レベルで値を復号し、制御を終了ブロック１０９９に受け渡す。
【００８４】
従って、本発明の原理は、量子化された変換ブロックをシステマティックに符号化する改善されたエントロピー符号化および復号を行う方法および装置を提供するという利点がある。このアプローチには、少なくとも２つの新規な点が存在する。第１に、ｌａｓｔ＿ｇｅ２＿ｆｌａｇの採用により、符号化器および復号器でバイナリ算術符号化されるバイナリ・ビンが低減されるためシステムの簡素化が図られる。第２に、他のシンタックスと同じ走査順にある係数値情報の符号化により、ブロックのエントロピー符号化が１つの走査パスで終了する。値情報を使用してシンタックスのコンテキスト・モデルを改善し、符号化効をさらに高めることができる。
【００８５】
ｌａｓｔ＿ｇｅ２＿ｆｌａｇは、単なる実施形態であることが理解できよう。本技術分野および関連する技術分野における当業者であれば容易に理解できるであろうが、代替的には、フラグをｌａｓｔ＿ｇｅＸ＿ｆｌａｇと呼び、ここで、Ｘは任意の数とすることができる。
【００８６】
本発明の多くの付随する利点／特徴の幾つかについて説明する。これらの幾つかは既に述べた通りのものである。例えば１つの利点／特徴は、ピクチャ内の少なくともブロックを符号化するビデオ符号化器を有する装置である。ビデオ符号化器は、ブロックの残差を変換して変換係数を取得し、変換係数を量子化して量子化された変換係数を取得し、量子化された変換係数をエントロピー符号化することによって符号化を行う。量子化された変換係数は、フラグを使用して１つのパスで符号化されることにより、量子化された変換係数のうち処理が行われている現在の変換係数が、特定の値以上の値を有するブロックのための最後の非零係数であることを示す。
【００８７】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、特定の値が２である、この装置である。
【００８８】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、特定の値未満の値を有する、量子化された変換係数のうちの後続する非零係数は、特定の値未満の値を有する後続する非零係数の各々の符号のみを符号化することによって符号化される、この装置である。
【００８９】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、特定の値が複数の値から選択される、この装置である。
【００９０】
さらに、別の利点／特徴は、上述したような、ビデオ符号化器を有し、特定の値が複数の値から選択される装置であって、ピクチャは、ビデオ・シーケンスに含まれる複数のピクチャのうちの１つであり、特定の値は、ピクチャ内、またはビデオ・シーケンス内の複数のピクチャのうちの１つ以上の他のピクチャ内の既に処理されたブロックから導出された統計値に応じて適応的に選択される、この装置である。
【００９１】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、特定の値が明示的に信号伝達される、この装置である。
【００９２】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベルおよびブロック・レベルのうちの少なくとも１つで明示的に信号伝達される、この装置である。
【００９３】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、量子化された変換係数のうちの現在の変換係数のレベルの符号化は、量子化された変換係数のうちの現在の変換係数の実際の値から特定の値を減算して差分値を取得し、レベルとして差分値を符号化することにより行われ、対応する復号器が差分値を特定の値に追加することによってレベルを再生できるようにする、この装置である。
【００９４】
さらに、別の利点／特徴は、上述したビデオ符号化器を有する装置であって、ｓｉｇ＿ｆｌａｇシンタックス要素、フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で符号化され、ｓｉｇ＿ｆｌａｇシンタックス要素は、量子化された変換係数のうちの現在の変換係数が非零値を有するかどうかを示し、ｌａｓｔ＿ｆｌａｇシンタックス要素は、非零値を有する量子化された変換係数のうちの現在の変換係数が所与の走査順にあるブロック内の非零値を有する最後の量子化された変換係数であるかどうかを示し、Ｂｉｎ＿１シンタックス要素は、量子化された変換係数のうちの現在の変換係数の絶対値が現在既知でない非零値を有することを示し、レベル・シンタックス要素は、量子化された変換係数のうちの現在の変換係数が特定の値よりも大きな絶対値を有するとき、量子化された変換係数のうちの現在の変換係数の絶対値を示し、サイン・シンタックス要素は、量子化された変換係数のうちの現在の変換係数の対応する符号を示す、この装置である。
【００９５】
本発明の原理のこれらの特徴およびその他の特徴は、関連する分野において通常の知識を有するものであれば、本明細書中の開示内容に基づいて、容易に解明することができるであろう。本発明の原理の開示内容は、ハードウエア、ソフトウエア、ファームウエア、特定用途向けプロセッサ、または、これらを組み合わせたものの形態で実施できることが理解できよう。
【００９６】
より好ましくは、本発明の原理の開示内容は、ハードウエアおよびソフトウエアを組み合わせて実施される。さらに、ソフトウエアは、プログラム・ストレージ・ユニットに上に現実的に実装されるアプリケーション・プログラムとして実施される。アプリケーション・プログラムは、適切なアーキテクチャからなるマシンにアップロードされ、このマシンによって実行されるようにしてもよい。好ましくは、このマシンは、１つ以上の中央処理装置（ＣＰＵ）、ランダム・アクセス・メモリ（ＲＡＭ）、入出力（Ｉ／Ｏ）インタフェースを有するコンピュータ・プラットフォーム上で実施される。また、コンピュータ・プラットフォームは、オペレーティング・システムおよびマイクロインストラクション・コードを含むようにしてもよい。本明細書中で開示される様々な処理および機能は、マイクロインストラクション・コードの一部を構成するものでもよいし、アプリケーション・プログラムの一部を構成するものであってもよいし、これらを組み合わせたものであってもよいし、ＣＰＵによって実行されるものであってもよい。さらに、追加的なデータ記憶装置や印刷機等、コンピュータ・プラットフォームに様々な他の周辺機器を結合するようにしてもよい。
【００９７】
さらに、添付図面に示すシステムの構成要素および方法のステップの幾つかは、好ましくは、ソフトウエアの形態によって実施されるため、システムの構成要素または処理機能ブロック間の実際の結合は、本発明の原理をプログラムする方法によって異なる場合があることが理解できよう。本明細書の開示する内容に基づいて、関連する技術における通常の技術知識を有するものであれば、本発明の原理の実施形態または構成、さらに、類似した実施形態または構成を企図できるであろう。
【００９８】
添付図面を参照して本明細書中で例示的な実施形態について説明したが、本発明はこれらの実施形態に厳格に限定されるものではなく、関連技術に関して通常の技術を有する者であれば、本発明の原理の範囲または精神を逸脱することなく、様々な変更、改変を施すことが可能であることが理解できるであろう。このような変更、改変は、全て、添付の請求の範囲に記載されたような本発明の原理の範囲に含まれるように意図されている。
【図１】
2019110592.tif 000003
【図２】
2019110592.tif 000004
【図３】
2019110592.tif 000005
【図４】
2019110592.tif 000006
【図５】
2019110592.tif 000007
【図６】
2019110592.tif 000008
【図７Ａ】
2019110592.tif 000009
【図７Ｂ】
2019110592.tif 000010
【図７Ｃ】
2019110592.tif 000011
【図７Ｄ】
2019110592.tif 000012
【図７Ｅ】
2019110592.tif 000013
【図８Ａ】
2019110592.tif 000014
【図８Ｂ】
2019110592.tif 000015
【図８Ｃ】
2019110592.tif 000016
【図８Ｄ】
2019110592.tif 000017
【図８Ｅ】
2019110592.tif 000018
【図９】
2019110592.tif 000019
【図１０】
2019110592.tif 000020
【手続補正書】
【提出日】平成31年4月1日(2019.4.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置であって、
ピクチャ内の少なくとも一つのブロックを符号化するビデオ符号化器を備え、
前記ビデオ符号化器は、前記ブロックの残差を変換して変換係数を取得し、該変換係数を量子化して量子化された変換係数を取得し、該量子化された変換係数をエントロピー符号化することによって符号化を行い、
前記量子化された変換係数は、第１のシンタックス要素および第２のシンタックス要素を使用して符号化され、
前記第１のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第１の特定の非零値以上の値を有する前記ブロックに対する最後の非零係数であるかを示すフラグであり、前記第２のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第２の非零の特定の値より大きい値を有する前記ブロックに対する非零係数であるかを示すフラグであり、前記第１の特定の非零値が複数の値から選択され、前記選択された値は、前記ブロックに対して固定されたままである、前記装置。
【請求項２】
ビデオ符号化器における方法であって、
ピクチャ内の少なくとも一つのブロックの符号化を行うステップを含み、
前記符号化を行うステップは、前記ブロックの残差を変換して変換係数を取得し、該変換係数を量子化して量子化された変換係数を取得し、該量子化された変換係数をエントロピー符号化することによって符号化を行い、
前記量子化された変換係数は、第１のシンタックス要素および第２のシンタックス要素を使用して符号化され、
前記第１のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第１の特定の非零値以上の値を有する前記ブロックに対する最後の非零係数であるかを示すフラグであり、前記第２のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第２の非零の特定の値より大きい値を有する前記ブロックに対する非零係数であるかを示し、前記第１の特定の非零値が複数の値から選択され、前記選択された値は、前記ブロックに対して固定されたままである、前記方法。
【請求項３】
前記特定の値よりも小さい値を有する前記量子化された変換係数のうちの後続する非零係数は、該特定の値よりも小さい値を有する該後続する非零係数の各々の符号のみを符号化することによって符号化される、請求項２に記載の方法。
【請求項４】
前記ピクチャは、ビデオ・シーケンスに含まれる複数のピクチャのうちの１つであり、前記特定の値は該ピクチャ内、または該ビデオ・シーケンス内の該複数のピクチャのうちの１つあるいはそれよりも多い他のピクチャ内の既に処理されたブロックから導出された統計値に応じて適応的に選択される、請求項２に記載の方法。
【請求項５】
前記特定の値が明示的に信号伝達される、請求項２に記載の方法。
【請求項６】
前記特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベル、およびブロック・レベルのうちの少なくとも１つで明示的に信号伝達される、請求項２に記載の方法。
【請求項７】
前記量子化された変換係数のうちの現在の変換係数のレベルは、該量子化された変換係数のうちの該現在の変換係数の実際の値から前記特定の値を減算して差分値を取得し、前記レベルとして前記差分値を符号化することによって符号化され、対応する復号器が前記差分値を前記特定の値に加算することによって前記レベルを再生できるようにする、請求項２に記載の方法。
【請求項８】
少なくともｓｉｇ＿ｆｌａｇシンタックス要素、前記フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で符号化され、
前記ｓｉｇ＿ｆｌａｇシンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数が非零値を有するかどうかを示し、
前記ｌａｓｔ＿ｆｌａｇシンタックス要素は、前記非零値を有する前記量子化された変換係数のうちの前記現在の変換係数が所与の走査順にある前記ブロック内の前記非零値を有する最後の量子化された変換係数であるかどうかを示し、
前記Ｂｉｎ＿１シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が現在既知でない非零値を有することを示し、
前記レベル・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が前記特定の値よりも大きいとき、該量子化された変換係数のうちの該現在の変換係数の絶対値を示し、
前記サイン・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の対応する符号を示す、請求項２に記載の方法。
【請求項９】
装置であって、
ピクチャ内の少なくとも一つのブロックを復号するビデオ復号器を備え、
前記ビデオ復号器は、量子化された変換係数をエントロピー復号し、該量子化された変換係数を逆量子化して変換係数を取得し、該変換係数を逆変換して前記ブロックを再構築する際に使用するための前記ブロックの再構築された残差を取得することによって復号を行い、
前記量子化された変換係数は、第１のシンタックス要素および第２のシンタックス要素を使用して復号され、
前記第１のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第１の特定の値以上の値を有する前記ブロックに対する最後の非零係数であるかを示すフラグであり、前記第２のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第２の非零の特定の値より大きい値を有する前記ブロックに対する非零係数であるかを示すフラグであり、前記第１の特定の値が複数の値から選択され、前記選択された値は、前記ブロックに対して固定されたままである、前記装置。
【請求項１０】
ビデオ復号器における方法であって、
ピクチャ内の少なくとも一つのブロックの復号を行うステップを含み、
前記復号を行うステップは、量子化された変換係数をエントロピー復号し、該量子化された変換係数を逆量子化して変換係数を取得し、該変換係数を逆変換して前記ブロックを再構築する際に使用するための前記ブロックの再構築された残差を取得することによって復号を行い、
前記量子化された変換係数は、第１のシンタックス要素および第２のシンタックス要素を使用して復号され、
前記第１のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第１の特定の非零値以上の値を有する前記ブロックに対する最後の非零係数であるかを示すフラグであり、前記第２のシンタックス要素は、いつ、前記量子化された変換係数のうち処理が行われている現在の変換係数が第２の非零の特定の値より大きい値を有する前記ブロックに対する非零係数であるかを示すフラグであり、前記第１の特定の非零値が複数の値から選択され、前記選択された値は、前記ブロックに対して固定されたままである、前記方法。
【請求項１１】
前記特定の値よりも小さい値を有する前記量子化された変換係数のうちの後続する非零係数は、該特定の値よりも小さい値を有する該後続する非零係数の各々の符号のみを復号することによって復号される、請求項１０に記載の方法。
【請求項１２】
前記特定の値が明示的に決定される、請求項１０に記載の方法。
【請求項１３】
前記特定の値は、シーケンス・レベル、フレーム・レベル、スライス・レベル、およびブロック・レベルのうちの少なくとも１つから明示的に決定される、請求項１０に記載の方法。
【請求項１４】
前記量子化された変換係数のうちの現在の変換係数のレベルは、該量子化された変換係数のうちの該現在の変換係数の実際の値と前記特定の値との間で予め求められた差分値を復号し、該差分値を該特定の値に加算して前記レベルを取得することによって復号される、請求項１０に記載の方法。
【請求項１５】
少なくともｓｉｇ＿ｆｌａｇシンタックス要素、前記フラグ、ｌａｓｔ＿ｆｌａｇシンタックス要素、Ｂｉｎ＿１シンタックス要素、レベル・シンタックス要素、およびサイン・シンタックス要素が同一の走査順で復号され、
前記ｓｉｇ＿ｆｌａｇシンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数が非零値を有するかどうかを示し、
前記ｌａｓｔ＿ｆｌａｇシンタックス要素は、前記非零値を有する前記量子化された変換係数のうちの前記現在の変換係数が所与の走査順にある前記ブロック内の前記非零値を有する最後の量子化された変換係数であるかどうかを示し、
前記Ｂｉｎ＿１シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が現在既知でない非零値を有することを示し、
前記レベル・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の絶対値が前記特定の値よりも大きいとき、該量子化された変換係数のうちの該現在の変換係数の絶対値を示し、
前記サイン・シンタックス要素は、前記量子化された変換係数のうちの前記現在の変換係数の対応する符号を示す、請求項１０に記載の方法。
【外国語明細書】
2019110592000001.pdf