(57)【要約】      （修正有）【課題】符号化ビデオデータの変換単位のサブブロックを符号化及び復号するための方法及び装置を提供する。【解決手段】ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号する方法において、変換単位のサブブロック用の有意な残差係数を決定し、変換単位のサブブロックのゴロム・ライス復号用の所定のライスパラメータを選択する。所定のライスパラメータは決定された有意な残差係数の数が所定の閾値よりも大きい時はゼロ設定からオフセットされており、所定のライスパラメータをゴロム・ライス復号用の初期パラメータとして使用して変換単位のサブブロックを復号する。【選択図】なし【特許請求の範囲】
【請求項１】
ゴロム・ライス符号化を用いて符号化された符号化ビデオデータにおける変換単位のサブブロックを復号する復号方法であって、
前記変換単位に含まれる複数のサブブロックの内の復号対象のサブブロックにおけるライスパラメータの初期値を、前記復号対象のサブブロックと同じ変換単位における、前記復号対象のサブブロックより前のサブブロックにおいて導出された情報を用いて決定する決定工程と、
前記決定工程において決定された初期値を、ライスパラメータの初期値として用いて、前記復号対象のサブブロックを復号する復号工程と
有し、
前記ライスパラメータの初期値は、輝度と色差のそれぞれにおいて決定される
ことを特徴とする復号方法。
【請求項２】
前記復号対象のサブブロックより前のサブブロックにおいて導出された情報は、前記復号対象のサブブロックより前に復号されたサブブロックのために復号された情報である
ことを特徴とする請求項１記載の復号方法。
【請求項３】
前記決定工程において、前記復号対象のサブブロックを復号するために用いる量子化パラメータが所定の閾値よりも小さい場合、前記ライスパラメータの初期値を、ゼロ設定としない
ことを特徴とする請求項１又は２に記載の復号方法。
【請求項４】
前記決定工程において、復号対象のサブブロックにおけるライスパラメータの初期値を、前記復号対象のサブブロックのために復号された情報を更に用いて決定する
ことを特徴とする請求項１〜３のいずれか１項に記載の復号方法。
【請求項５】
前記決定工程において、復号対象のサブブロックにおけるライスパラメータの初期値を、有意残差係数を用いて決定する
ことを特徴とする請求項１〜４のいずれか１項に記載の復号方法。
【請求項６】
前記決定工程において、前記復号対象のサブブロックにおける有意残差係数が所定の閾値よりも多い場合、前記ライスパラメータの初期値を、ゼロ設定としない
ことを特徴とする請求項４又は５に記載の復号方法。
【請求項７】
前記ライスパラメータの初期値は、輝度と色差とで独立して決定される
ことを特徴とする請求項１〜６のいずれか１項に記載の復号方法。
【請求項８】
前記前のサブブロックにおいて導出された情報は、前記前のサブブロックにおける残差係数に係る情報である
ことを特徴とする請求項１〜７のいずれか１項に記載の復号方法。
【請求項９】
前記復号対象のサブブロックが前記変換単位における右上のサブブロックである場合、前記前のサブブロックは前記変換単位における右下のサブブロックである
ことを特徴とする請求項１〜８のいずれか１項に記載の復号方法。
【請求項１０】
前記復号対象のサブブロックが前記変換単位における左下のサブブロックである場合、前記前のサブブロックは前記変換単位における右上のサブブロックである
ことを特徴とする請求項１〜９のいずれか１項に記載の復号方法。
【請求項１１】
前記復号対象のサブブロックが前記変換単位における左上のサブブロックである場合、前記前のサブブロックは前記変換単位における左下のサブブロックである
ことを特徴とする請求項１〜１０のいずれか１項に記載の復号方法。
【請求項１２】
ゴロム・ライス符号化を用いてビデオデータにおける変換単位のサブブロックを符号化する符号化方法であって、
前記変換単位に含まれる複数のサブブロックの内の符号化対象のサブブロックにおけるライスパラメータの初期値を、前記符号化対象のサブブロックと同じ変換単位における、前記符号化対象のサブブロックより前のサブブロックにおいて導出された情報を用いて決定する決定工程と、
前記決定工程において決定された初期値を、ライスパラメータの初期値として用いて、前記符号化対象のサブブロックを符号化する符号化工程  
を有し、
前記ライスパラメータの初期値は、輝度と色差のそれぞれにおいて決定される
ことを特徴とする符号化方法。
【請求項１３】
前記符号化対象のサブブロックより前のサブブロックにおいて導出された情報は、前記符号化対象のサブブロックより前に符号化されたサブブロックのために符号化される情報である、
ことを特徴とする請求項１２記載の符号化方法。
【請求項１４】
前記決定工程において、前記符号化対象のサブブロックを符号化するために用いる量子化パラメータが所定の閾値よりも小さい場合、前記ライスパラメータの初期値を、ゼロ設定としない
ことを特徴とする請求項１２又は１３に記載の符号化方法。
【請求項１５】
前記決定工程において、符号化対象のサブブロックにおけるライスパラメータの初期値を、前記符号化対象のサブブロックのために符号化された情報を更に用いて決定する
ことを特徴とする請求項１２〜１４のいずれか１項に記載の符号化方法。
【請求項１６】
前記決定工程において、符号化対象のサブブロックにおけるライスパラメータの初期値を、有意残差係数を用いて決定する
ことを特徴とする請求項１２〜１５のいずれか１項に記載の符号化方法。
【請求項１７】
前記決定工程において、前記符号化対象のサブブロックにおける有意残差係数が所定の閾値よりも多い場合、前記ライスパラメータの初期値を、ゼロ設定としない
ことを特徴とする請求項１５又は１６に記載の符号化方法。
【請求項１８】
前記ライスパラメータの初期値は、輝度と色差とで独立して決定される
ことを特徴とする請求項１２〜１７のいずれか１項に記載の符号化方法。
【請求項１９】
前記前のサブブロックにおいて導出された情報は、前記前のサブブロックにおける残差係数に係る情報である
ことを特徴とする請求項１２〜１８のいずれか１項に記載の符号化方法。
【請求項２０】
前記符号化対象のサブブロックが前記変換単位における右上のサブブロックである場合、前記前のサブブロックは前記変換単位における右下のサブブロックである
ことを特徴とする請求項１２〜１９のいずれか１項に記載の符号化方法。
【請求項２１】
前記符号化対象のサブブロックが前記変換単位における左下のサブブロックである場合、前記前のサブブロックは前記変換単位における右上のサブブロックである
ことを特徴とする請求項１２〜２０のいずれか１項に記載の符号化方法。
【請求項２２】
前記符号化対象のサブブロックが前記変換単位における左上のサブブロックである場合、前記前のサブブロックは前記変換単位における左下のサブブロックである
ことを特徴とする請求項１２〜２１のいずれか１項に記載の符号化方法。
【請求項２３】
ゴロム・ライス符号化を用いて符号化された符号化ビデオデータにおける変換単位のサブブロックを復号する復号装置であって、
前記変換単位に含まれる複数のサブブロックの内の復号対象のサブブロックにおけるライスパラメータの初期値を、前記復号対象のサブブロックと同じ変換単位における、前記復号対象のサブブロックより前のサブブロックにおいて導出された情報を用いて決定する決定手段と、
前記決定工程において決定された初期値を、ライスパラメータの初期値として用いて、前記復号対象のサブブロックを復号する復号手段と
を有し、
前記ライスパラメータの初期値は、輝度と色差のそれぞれにおいて決定される
ことを特徴とする復号装置。
【請求項２４】
ゴロム・ライス符号化を用いてビデオデータにおける変換単位のサブブロックを符号化する符号化装置であって、
前記変換単位に含まれる複数のサブブロックの内の符号化対象のサブブロックにおけるライスパラメータの初期値を、前記符号化対象のサブブロックと同じ変換単位における、前記符号化対象のサブブロックより前のサブブロックにおいて導出された情報を用いて決定する決定手段と、
前記決定工程において決定された初期値を、ライスパラメータの初期値として用いて、前記符号化対象のサブブロックを符号化する符号化手段と
を有し、
前記ライスパラメータの初期値は、輝度と色差のそれぞれにおいて決定される
ことを特徴とする符号化装置。
【請求項２５】
請求項１〜１１のいずれか一項に記載の復号方法の各工程を、コンピュータに実行させることを特徴とするプログラム。
【請求項２６】
請求項１２〜２２のいずれか一項に記載の符号化方法の各工程を、コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体的にはデジタルビデオ信号処理に関し、特に、符号化ビデオデータの変換単位のサブブロックを符号化又は復号するための技術に関する。
【背景技術】
【０００２】
現在、ビデオ符号化のための様々な応用例、例えば、ビデオデータの送信及び記憶のための応用例が存在する。また、多くのビデオ符号化規格が開発されてきており、さらなる規格も現在開発中である。ビデオ符号化の標準化における最近の開発により、「Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ビデオ符号化における統合共同チーム）」（ＪＣＴ−ＶＣ）と呼ばれるグループが設立されるに至った。Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）には、Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ビデオ符号化専門家グループ）（ＶＣＥＧ）として知られている、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ（国際電気通信連合）（ＩＴＵ）のＴｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｓａｔｉｏｎ  Ｓｅｃｔｏｒ（電気通信標準化部門）（ＩＴＵ−Ｔ）のＳｔｕｄｙ  Ｇｒｏｕｐ  １６，Ｑｕｅｓｔｉｏｎ  ６（第１６研究会、課題６）（ＳＧ１６／Ｑ６）のメンバー、及びＭｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（動画専門家集団）（ＭＰＥＧ）として知られている、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｓａｔｉｏｎｓ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｓａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｉｓｓｉｏｎ  Ｊｏｉｎｔ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｉｔｔｅ  １  ／  Ｓｕｂｃｏｍｉｔｔｅｅ  ２９  ／  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ  １１（国際標準化機構と国際電気標準会議の第一合同技術委員会／第２９小委員会／第１１作業部会）（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１）のメンバーが含まれている。
【０００３】
Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）は、「Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ」として知られている既存のビデオ符号化規格よりもかなり高機能な新たなビデオ符号化規格を作成することを目標としている。Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ規格それ自体も、ＭＰＥＧ−４やＩＴＵ−Ｔ  Ｈ．２６３のようなかつてのビデオ符号化規格についてかなりの改良を加えたものである。開発中の新たなビデオ符号化規格は、「ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（高効率ビデオ符号化）（ＨＥＶＣ）」と名付けられている。また、Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）は、ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）のために提案された技術に起因し当該規格を高解像度又は高フレームレートで動作するように実施範囲を広げることを困難にする実施課題についても検討している。
【０００４】
Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣビデオ符号化規格では、残差係数を符号化してビデオデータを表す際に高圧縮効率を達成するのが困難になる。
【０００５】
ビデオデータは、一連のフレームで構成され、各フレームは、二次元配列のサンプル値を有している。一般的に、フレームは、１つの輝度（ｌｕｍａ）チャネルと２つの色度（ｃｈｒｏｍａ）チャネルを有している。色情報は、一般的には、ＹＵＶ（Ｙは、輝度チャネル、ＵＶは、２つの色度チャネル）のような色空間を用いて表現される。ＹＵＶのような色空間では、フレーム内容の大部分は輝度チャネルに含まれ、ＵＶチャネルに保存される比較的少量の内容でもカラーフレームを再構成するのに十分であるという利点がある。また、色度チャネルは、視覚上無視できるほど小さい品質低下を伴うより低い空間分解能にダウンサンプリングすることができる。
【０００６】
４：２：０のような一般的に使用される色度フォーマットでは、各色度チャネルは半分の垂直及び水平解像度を持つようになる。各フレームは、最大符号化単位（ＬＣＵ）の配列に分解される。最大符号化単位（ＬＣＵ）は、サイズが固定であり、各エッジ寸法は６４輝度サンプルのように２の累乗でありかつ等しい幅と高さを有する。符号化ツリーは、各最大符号化単位（ＬＣＵ）を４個の符号化単位（ＣＵ）に細分割するのを可能にし、各符号化単位（ＣＵ）は、親の（もとの）最大符号化単位（ＬＣＵ）の幅と高さの半分の幅と高さを有する。各々の符号化単位（ＣＵ）は、さらに４個の等サイズの符号化単位（ＣＵ）に細分割してもよい。そのような細分割工程は、最小符号化単位（ＳＣＵ）サイズに到達するまで再帰的に実行され、符号化単位（ＣＵ）が最小対応サイズになるようにすることができる。最大符号化単位を符号化単位階層へ再帰的に細分割したものは、四分木構造を有し、符号化ツリーと呼ばれる。当該細分割工程は、２値数として符号化された一連のフラグとして通信ビットストリームにおいて符号化されていく。符号化単位は、それ故、正方形を有する。
【０００７】
それ以上細分割されることがない一群の符号化単位が、符号化ツリーの中に存在し、符号化ツリーの葉節点を占めている。各符号化単位には、変換ツリーが存在する。変換ツリーにより、符号化単位を符号化ツリーに用いられる四分木構造を用いてさらに分解してもよい。変換ツリーの各葉節点において、残差データが変換単位（ＴＵ）を用いて符号化される。符号化ツリーとは対照的に、変換ツリーは、符号化単位を正方形でない変換単位にさらに細分割することができる。なお、変換ツリーにおいては、変換単位（ＴＵ）が親符号化単位によって供給される範囲のすべてを占めている必要はない。
【０００８】
符号化ツリーの葉節点における各符号化単位は、一つ又は複数の予測データサンプル配列に細分割され、それらは各々、予測単位（ＰＵ）として知られている。各予測単位（ＰＵ）は、イントラ予測（フレーム内予測）処理又はインター予測（フレーム間予測）処理を行うことによって得られる、入力ビデオフレームデータの一部分の予測を含む。
【０００９】
さまざまな方法が、符号化単位（ＣＵ）内で予測単位（ＰＵ）を符号化するのに用いられる。単一の予測単位（ＰＵ）が符号化単位（ＣＵ）の全域を占めてもよいし、符号化単位（ＣＵ）は垂直方向又は水平方向に２個の等サイズの矩形状の予測単位（ＰＵ）に分割してもよい。さらに、符号化単位（ＣＵ）は、４個の等サイズの正方形の予測単位（ＰＵ）に分割してもよい。
【００１０】
ビデオエンコーダは、ビデオデータをシンタックス要素の配列に変換することによってビデオデータをビットストリームに圧縮する。ｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（コンテキスト適応２値算術符号化）（ＣＡＢＡＣ）手法は、開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（高効率ビデオ符号化）（ＨＥＶＣ）規格内で規定され、ＭＰＥＧ４−ＡＶＣ／Ｈ．２６４ビデオ圧縮規格に規定されているのと同一な算術符号化手法を用いている。開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格においては、ｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）が用いられているとき、各シンタックス要素は、２値数の配列として表される。各２値数は、バイパス符号化又は算術符号化される。バイパス符号化は、２値数が一様に０又は１である可能性が高い場合に用いられる。この場合、さらに圧縮することはあり得ない。算術符号化は、２値数が不均一な確率分布を有する場合に用いられる。算術符号化された各２値数は、「コンテキスト」として知られている情報と関連付けられている。コンテキストは、見込み２値数値（「ｖａｌＭＰＳ」）と確率状態を含んでおり、確率状態は、見込み２値数値の推定確率を示す整数値である。シンタックス要素からそのような、バイパス符号化２値数値と算術符号化２値数値の組み合わせからなる２値数の配列を作成することは、シンタックス要素を「２値化する」こととして知られている。
【００１１】
ビデオエンコーダやビデオデコーダにおいて、各２値数には別々のコンテキスト情報が使用できるので、２値数に応じてコンテキストを選択することにより、符号化効率を高める手段が得られる。特に、関連するコンテキスト情報が用いられた２値数の前回の統計的特性が当該２値数の今回の統計的特性と相関性があるように特定の２値数を選択することで、符号化効率を高めることができる。そのようなコンテキストの選択には、しばしば、空間的局所情報が最適なコンテキストを決定するために用いられる。
【００１２】
開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格や、Ｈ．２６４／ＭＰＥＧ４−ＡＶＣにおいて、現在のブロックについての予測は、他のフレームや現在のブロック内の以前に復号された周辺領域から得られる基準サンプルデータから導き出される。当該予測と所望サンプルデータとの差異は、残差として知られている。残差の周波数領域表現は、残差係数の２次元配列である。通例、この２次元配列の左上角は、低周波情報を表す残差係数を含んでいる。
【００１３】
一般的なビデオデータにおいては、サンプル値の変化の大部分は、穏やかなものであり、残差内において低周波情報が優勢になる。これは、２次元配列の左上角に位置する残差係数がより重要であることを意味する。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明は、従来構成における一つ又は複数の不都合な点を実質的に解消し、又は少なくとも改善することを目的とする。
【課題を解決するための手段】
【００１５】
本開示のある態様によれば、ゴロム・ライス符号化を用いて符号化された符号化ビデオデータにおける変換単位のサブブロックを復号する復号方法であって、前記変換単位に含まれる複数のサブブロックの内の復号対象のサブブロックにおけるライスパラメータの初期値を、前記復号対象のサブブロックと同じ変換単位における、前記復号対象のサブブロックより前のサブブロックにおいて導出された情報を用いて決定する決定工程と、前記決定工程において決定された初期値を、ライスパラメータの初期値として用いて、前記復号対象のサブブロックを復号する復号工程と有し、前記ライスパラメータの初期値は、輝度と色差のそれぞれにおいて決定される。
また、ゴロム・ライス符号化を用いてビデオデータにおける変換単位のサブブロックを符号化する符号化方法であって、前記変換単位に含まれる複数のサブブロックの内の符号化対象のサブブロックにおけるライスパラメータの初期値を、前記符号化対象のサブブロックと同じ変換単位における、前記符号化対象のサブブロックより前のサブブロックにおいて導出された情報を用いて決定する決定工程と、前記決定工程において決定された初期値を、ライスパラメータの初期値として用いて、前記符号化対象のサブブロックを符号化する符号化工程  を有し、前記ライスパラメータの初期値は、輝度と色差のそれぞれにおいて決定される。
【００１６】
本開示の別の態様によれば、ゴロム・ライス復号（Ｇｏｌｏｍｂ−Ｒｉｃｅ  ｄｅｃｏ
ｄｉｎｇ）を用いて符号化ビデオデータの変換単位を復号する方法であって、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライス（Ｒｉｃｅ）パラメータであって、前記決定された有意な残差係数の数が所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号することを特徴とする方法が提供される。
本開示の別の態様によれば、ゴロム・ライス復号（Ｇｏｌｏｍｂ−Ｒｉｃｅ  ｄｅｃｏｄｉｎｇ）を用いて符号化ビデオデータの変換単位を復号する方法であって、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライス（Ｒｉｃｅ）パラメータであって、前記決定された有意な残差係数の数が所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号することを特徴とする方法が提供される。
【００１７】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するための装置であって、前記変換単位のサブセット用の有意な残差係数を決定するための手段と、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された有意な残差係数の数が所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択するための手段と、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するための手段とを具備することを特徴とする装置が提供される。
【００１８】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するためのシステムであって、データ及びコンピュータプログラムを記憶するためのメモリと、前記メモリに接続され前記コンピュータプログラムを実行するためのプロセッサとを具備し、前記コンピュータプログラムは、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された有意な残差係数の数が所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するための命令を含むことを特徴とするシステムが提供される。
【００１９】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するためのコンピュータプログラムを記録したコンピュータ読み取り可能な媒体であって、前記プログラムは、前記変換単位のサブセット用の有意な残差係数を決定するためのコードと、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された有意な残差係数の数が所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択するためのコードと、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するためのコードとを含むことを特徴とするコンピュータ読み取り可能な媒体が提供される。
【００２０】
本開示の別の態様によれば、ビデオデータのストリームを復号してビデオデータの復号ストリームにおける現在の残差係数の値を決定する方法であって、前記ビデオデータのストリームから残差係数の変換単位を受け取り、前記変換単位の現在の残差係数の位置を決定し、前記変換単位における前記現在の残差係数の位置が所定の閾値よりも大きいときは、所定のゴロム・ライス値を使用する無依存型ゴロム・ライス復号を用いて前記現在の残差係数を復号し、前記変換単位における前記現在の残差係数の位置が前記所定の閾値よりも小さいときは、以前に復号された残差係数値を使用してゴロム・ライス値を選択する現在の係数の依存型ゴロム・ライス復号を用いて前記現在の残差係数を復号し、前記選択されたゴロム・ライス復号値を使用して前記現在の残差係数の値を決定することを特徴とする方法が提供される。
【００２１】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号する方法であって、前記変換単位用の量子化パラメータを決定し、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号することを特徴とする方法が提供される。
【００２２】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するための装置であって、前記変換単位のサブセット用の有意な残差係数を決定するための手段と、前記変換単位用の量子化パラメータを決定するための手段と、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いときはゼロ設定からオフセットされている所定のライスパラメータを選択するための手段と、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するための手段とを具備することを特徴とする装置が提供される。
【００２３】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するためのシステムであって、データ及びコンピュータプログラムを記憶するためのメモリと、前記メモリに接続され前記コンピュータプログラムを実行するためのプロセッサとを具備し、前記コンピュータプログラムは、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位用の量子化パラメータを決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するための命令を含むことを特徴とするシステムが提供される。
【００２４】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するためのコンピュータプログラムを記録したコンピュータ読み取り可能な媒体であって、前記プログラムは、前記変換単位のサブセット用の有意な残差係数を決定するためのコードと、前記変換単位用の量子化パラメータを決定するためのコードと、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いときはゼロ設定からオフセットされている所定のライスパラメータを選択するためのコードと、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するためのコードとを含むことを特徴とするコンピュータ読み取り可能な媒体が提供される。
【００２５】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号する方法であって、前記変換単位用の量子化パラメータを決定し、前記変換単位用の幅及び高さを決定し、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いか又は等しく、前記幅が所定の閾値よりも大きく、かつ前記高さが所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号することを特徴とする方法が提供される。
【００２６】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するための装置であって、前記変換単位のサブセット用の有意な残差係数を決定するための手段と、前記変換単位用の量子化パラメータを決定するための手段と、前記変換単位用の幅及び高さを決定するための手段と、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いか又は等しく、前記幅が所定の閾値よりも大きく、かつ前記高さが所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択するための手段と、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するための手段とを具備することを特徴とする装置が提供される。
【００２７】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するためのシステムであって、データ及びコンピュータプログラムを記憶するためのメモリと、前記メモリに接続され前記コンピュータプログラムを実行するためのプロセッサとを具備し、前記コンピュータプログラムは、前記変換単位のサブセット用の有意な残差係数を決定し、前記変換単位用の量子化パラメータを決定し、前記変換単位用の幅及び高さを決定し、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いか又は等しく、前記幅が所定の閾値よりも大きく、かつ前記高さが所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択し、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するための命令を含むことを特徴とするシステムが提供される。
【００２８】
本開示の別の態様によれば、ゴロム・ライス復号を用いて符号化ビデオデータの変換単位を復号するためのコンピュータプログラムを記録したコンピュータ読み取り可能な媒体であって、前記プログラムは、前記変換単位のサブセット用の有意な残差係数を決定するためのコードと、前記変換単位用の量子化パラメータを決定するためのコードと、前記変換単位用の幅及び高さを決定するためのコードと、前記変換単位の前記サブセットのゴロム・ライス復号用の所定のライスパラメータであって、前記決定された量子化パラメータが所定の閾値よりも低いか又は等しく、前記幅が所定の閾値よりも大きく、かつ前記高さが所定の閾値よりも大きいときはゼロ設定からオフセットされている所定のライスパラメータを選択するためのコードと、前記所定のライスパラメータを前記ゴロム・ライス復号用の初期パラメータとして使用して前記変換単位の前記サブセットを復号するためのコードとを含むことを特徴とするコンピュータ読み取り可能な媒体が提供される。
【００２９】
また、その他の態様も開示する。
以後、次に示す図面を参照して、本発明の少なくとも一つの実施形態を説明する。
【図面の簡単な説明】
【００３０】
【図１】ビデオエンコーダの機能モジュールを示す概略ブロック図である。
【図２】ビデオデコーダの機能モジュールを示す概略ブロック図である。
【図３Ａ】図１のエンコーダが実施される汎用コンピュータシステムの概略ブロック図を示す。
【図３Ｂ】図２のデコーダが実施される汎用コンピュータシステムの概略ブロック図を示す。
【図４Ａ】変換単位の一例の空間的構造を示す。
【図４Ｂ】変換単位の一例の空間的構造を示す。
【図５】変換単位の一例のシンタックス要素構造を示す概略ブロック図である。
【図６Ａ】変換単位（ＴＵ）を符号化する方法を示す概略ブロック図である。
【図６Ｂ】変換単位（ＴＵ）を復号する方法を示す概略フローダイヤグラムである。
【図７】図５の変換単位の一例のサブセットのシンタックス要素構造を示す概略ブロック図である。
【図８Ａ】変換単位のサブセットを符号化する方法を示す概略フローダイヤグラムである。
【図８Ｂ】変換単位のサブセットを復号する方法を示す概略フローダイヤグラムである。
【図９】ゴロム・ライス符号語を用いた残差係数の２進法表示を示す表である。
【図１０】ゼロ次の指数ゴロム符号語を用いた残差係数の２進法表示を示す表である。
【図１１】ゴロム・ライスパラメータの現在値と前回の残差係数の値に基づいてゴロム・ライスパラメータの値を決定するためのルックアップテーブルを示す表である。
【図１２Ａ】残差係数を符号化する方法を示す概略フローダイヤグラムである。
【図１２Ｂ】残差係数を復号する方法を示す概略フローダイヤグラムである。
【図１３】ゴロム・ライス復号を用いて残差係数を復号するための方法により用いられるパラメータＫの値を決定するための方法を示す概略フローダイヤグラムである。
【図１４Ａ】変換単位（ＴＵ）のサブセット用の残存残差係数強度値を復号するための２値化器を示す。
【図１４Ｂ】変換単位（ＴＵ）のサブセット用の残存残差係数強度値を復号するための別の２値化器を示す。
【図１５】変換単位の他の例を示す。
【発明を実施するための形態】
【００３１】
添付図面の一つ又は複数の図においてそれぞれ同じ参照数字を有するステップや特徴部分を参照する際には、特に別の意図が示されていない限り、それらのステップや特徴部分は本明細書の記述に関してはそれぞれ同様な機能又は動作を有しているものとする。
【００３２】
残差係数の２次元配列の左上角において優勢であるという低周波情報の特性は、２値化手法により、ビットストリームにおける残差係数のサイズを最小化するために利用することができる。
【００３３】
２値化の一態様として、各々のフラグに対応するシンタックス要素を符号化するために使用するコンテキストを選択する。１つのフラグが複数のコンテキストを使用してもよい。あるフラグの特定のインスタンスにどのコンテキストを用いるべきかを決定することは、他のすでに有用である情報次第であり、「コンテキストモデリング（モデル化）」として知られている。コンテキストモデリングは、フラグの現在のインスタンスの統計的特性を最も正確に表現するコンテキストが選択されることになる過程である。例えば、しばしば、フラグの値は当該フラグの周辺のインスタンスの値により影響を受け、その場合、当該フラグの周辺のインスタンスの値に基づいてコンテキストが選択されることになる。フレーム情報の大部分は輝度チャネルに含まれていることから、コンテキストモデリングはしばしば輝度チャネルと色度チャネルとで別々のコンテキストを使用する。しかしながら、２つの色度チャネルの統計的特性は比較的似ているので、コンテキストは一般的には色度チャネル間で共用される。
【００３４】
ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）テストモデルの第６版（「ＨＭ−６．０」）は、変換単位（ＴＵ）を複数のサブセットに分割し、各サブセットにおける残差係数を２つのパスで走査する。第１のパスは、残差係数の状況が非ゼロ値（有意）であるかゼロ値（非有意）であるかを示す各フラグを符号化する。このデータは、有意性マップとして知られている。第２のパスは、有意な残差係数の大きさと符号を符号化するものであり、係数レベルとして知られている。
【００３５】
走査パターンを設けることにより、残差係数の２次元配列の１次元配列への走査が可能となる。ＨＭ−６．０においては、設けられた走査パターンは、有意性マップと係数レベルの双方を処理するのに使用される。設けられた走査パターンを用いて有意性マップを走査することで、２次元有意性マップにおける最後の有意の係数の位置を決定してもよい。走査パターンは、水平方向、垂直方向、斜め方向（対角線方向）のいずれでもよい。
【００３６】
ＨＭ−６．０は、正方形であったり非正方形であったりする変換単位（ＴＵ）としても知られている残差ブロックへのサポートを行う。各変換単位（ＴＵ）は、一群の残差係数を含んでいる。等サイズの側辺寸法を有する残差ブロックは、正方形変換単位（ＴＵ）として知られており、等サイズでない側辺寸法を有する残差ブロックは、非正方形変換単位（ＴＵ）として知られている。
【００３７】
ＨＭ−６．０においてサポートされている変換単位（ＴＵ）サイズは、４ｘ４、８ｘ８、１６ｘ１６、３２ｘ３２、４ｘ１６、１６ｘ４、８ｘ３２及び３２ｘ８である。変換単位（ＴＵ）サイズは、一般的には輝度サンプル値に関して記述される。しかしながら、４：２：０の色度フォーマットが使用される際は、各色度サンプルは２ｘ２輝度サンプル値の範囲を占める。したがって、色度残差データを符号化するために変換単位（ＴＵ）を走査するには、半分の水平方向及び垂直方向寸法を有する走査パターン、例えば、４ｘ４輝度残差ブロックに対して２ｘ２のサイズのものを使用することになる。残差係数を走査し符号化するために、１６ｘ１６、３２ｘ３２、４ｘ１６、１６ｘ４、８ｘ３２及び３２ｘ８変換単位（ＴＵ）は、ＨＭ−６．０内に対応するマップが存在し、４ｘ４のサイズを有する複数のサブブロック、即ち、変換単位（ＴＵ）の下層に分割される。
【００３８】
ＨＭ−６．０において、上記の変換単位（ＴＵ）サイズに対応するサブブロックは、変換単位（ＴＵ）におけるサブセットと同一の場所に配置される。別の実施形態では、サブセットは、サブセットのサイズとは異なるサイズを有するサブブロックとは同一の場所に配置しなくてもよい。１つのサブブロック内の同一の場所に配置された有意性マップの一部分内に設定された有意な係数フラグを、有意な係数グループと称する。
【００３９】
１６ｘ１６、３２ｘ３２、４ｘ１６、１６ｘ４、８ｘ３２及び３２ｘ８変換単位（ＴＵ）に関しては、有意性マップ符号化は、２レベル走査を利用する。上位レベルの走査では、後方斜め左下方向走査のような、各サブブロックの有意係数グループを表すフラグを符号化し又は推測する走査を実行する。サブブロック内においては、後方斜め左下方向走査のような走査が行われ、一価の有意な係数グループフラグを有するサブブロック用の有意な係数フラグを符号化する。１６ｘ１６変換単位（ＴＵ）については、４ｘ４上位レベル走査が用いられる。３２ｘ３２変換単位（ＴＵ）については、８ｘ８上位レベル走査が用いられる。１６ｘ４、４ｘ１６、３２ｘ８及び８ｘ３２変換単位（ＴＵ）については、４ｘ１、１ｘ４、８ｘ２及び２ｘ８上位レベル走査がそれぞれ用いられる。
【００４０】
各変換単位（ＴＵ）において、残差係数データはビットストリームに符号化してもよい。各「残差係数」は、周波数（ＤＣＴ）領域における変換単位内の画像特性を表し、かつその変換単位内で独自の位置を占める数字である。変換単位は、空間領域と周波数領域との間で変換することができる残差データサンプルのブロックである。周波数領域においては、変換単位（ＴＵ）は、残差データサンプルを残差係数データとして符号化する。変換単位の側辺の寸法は、２の累乗の大きさとなっており、「輝度」チャネルについいては４サンプルから３２サンプルの範囲にあり、「色度」チャネルについいては２サンプルから１６サンプルの範囲にある。変換単位（ＴＵ）ツリーの葉節点は、残差係数データが必要でない場合は、一つの変換単位（ＴＵ）を含むかそれとも全く変換単位（ＴＵ）を含まないかのいずれかになる。
【００４１】
変換単位（ＴＵ）の空間表現は、残差データサンプルの２次元配列であるから、後に詳述するように、修正離散コサイン変換（ＤＣＴ）のような変換に起因する周波数領域表現もまた、残差係数の２次元配列である。変換単位（ＴＵ）内の代表的なサンプルデータの空間的特徴は、周波数領域表現が空間表現に比してよりコンパクトであるということである。また、変換単位（ＴＵ）において代表的な低周波スペクトル情報が優勢になると、より大きな値の残差係数が変換単位（ＴＵ）の左上に群がることになり、そこでは低周波残差係数が表現されている。
【００４２】
修正離散コサイン変換（ＤＣＴ）や修正離散サイン変換（ＤＳＴ）は、残差変換を実施するために用いることができる。残差変換の実施は、各々必要な変換単位（ＴＵ）サイズに対応するように構成されている。ビデオエンコーダにおいて、残差変換から得られる残差係数がスケーリングされ、かつ量子化される。このスケーリング及び量子化は、残差係数の大きさを減少させ、その結果、画質を犠牲にしてビットストリームに符号化されたデータのサイズを減少させる。
【００４３】
残差変換を実行した後、量子化処理を行う。量子化処理は、残差係数の大きさの精度を減少させることでより高い圧縮率を達成することを目的としている。この大きさ精度の減少は、情報の損失を伴う処理であり、それ故、見栄えに影響を及ぼす。精度減少のレベルは、量子化パラメータ（ＱＰ）により制御される。このパラメータの値が高いほど、見栄えがより多く影響を受ける。量子化パラメータは、後述のｄｅｌｔａ（デルタ）−ｑｐシンタックス要素を用いることにより、変換単位（ＴＵ）レベルで変更することができる。
【００４４】
開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格は、ビデオデータの高効率圧縮を達成することを目指している。ビデオデータの高効率圧縮の達成には、推定や統計的データ解析を用いることができる。また、開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格は、ビデオデータを高ビットレートで符号化又は復号することを目指している。開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格において採用されているｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）手法は、「バイパス符号化」と称される「等確率」動作モードをサポートしている。このモードにおいては、２値数はコンテキストモデルからのコンテキストに関連付けられておらず、それ故、コンテキストモデル更新ステップは無い。そのようなモードでは、各２値数がスループットを増大させるバイパス符号化されるという条件で、複数の隣接２値数をビットストリームから並行して読み出すことができる。例えば、ハードウェア実装により、隣接するバイパス符号化データのグループを並行して書き込み又は読み出し、ビットストリームを符号化又は復号するスループットを増大させることができる。
【００４５】
図１は、ビデオエンコーダ１００の機能モジュールを示す概略ブロック図である。図２は、対応するビデオデコーダ２００の機能モジュールを示す概略ブロック図である。ビデオエンコーダ１００及びビデオデコーダ２００は、図３Ａ及び３Ｂに示す汎用のコンピュータシステム３００を用いて構成することができる。図３Ａ及び３Ｂにおいて、種々の機能モジュールは、コンピュータシステム３００内の専用ハードウェアによって構成し、又はコンピュータシステム３００内で実行可能なソフトウェアによって構成し、あるいはコンピュータシステム３００内の専用ハードウェアとコンピュータシステム３００内で実行可能なソフトウェアとの組み合わせによって構成してもよい。
【００４６】
図３Ａに示すように、コンピュータシステム３００は、コンピュータモジュール３０１；キーボード３０２、マウスポインタ装置３０３、スキャナ３２６、カメラ３２７及びマイクロフォン３８０などの各種入力装置；並びにプリンタ３１５、ディスプレイ装置３１４及びラウドスピーカ３１７を含む各種出力装置を具備する。外部変復調装置（モデム）トランシーバ装置３１６は、コンピュータモジュール３０１が接続部３２１を介して通信ネットワーク３２０と通信を行うために用いることができる。通信ネットワーク３２０は、インターネットのような広域ネットワーク（ＷＡＮ）でもよいし、携帯電話通信ネットワークでもよいし、プライベートＷＡＮでもよい。接続部３２１が電話回線である場合、モデム３１６は、従来の「ダイアルアップ」モデムでもよい。また、接続部３２１が大容量の（すなわち、ケーブル）接続部である場合、モデム３１６は、ブロードバンドモデムでもよい。無線モデムも通信ネットワーク３２０との無線通信に使用することができる。
【００４７】
コンピュータモジュール３０１は、一般的には、少なくとも一つのプロセッサ部３０５及びメモリ部３０６を具備する。例えば、メモリ部３０６は、半導体ランダム・アクセス・メモリ（ＲＡＭ）及び半導体リード・オンリー・メモリ（ＲＯＭ）を備えていたりする。コンピュータモジュール３０１は、さらに、ビデオディスプレイ３１４、ラウドスピーカ３１７及びマイクロフォン３８０に連結するオーディオ・ビデオインターフェース３０７；キーボード３０２、マウス３０３、スキャナ３２６、カメラ３２７及び任意でジョイスティックや他のヒューマンインターフェース装置（不図示）に連結する入出力（Ｉ／Ｏ）インターフェース３１３；並びに外部モデム３１６とプリンタ３１５用のインターフェース３０８を具備する。実施態様によっては、モデム３１６は、コンピュータモジュール３０１内、例えば、インターフェース３０８内に組み込んでもよい。コンピュータモジュール３０１は、さらに、ローカル・ネットワーク・インターフェース３１１を具備しており、ローカル・ネットワーク・インターフェース３１１は、コンピュータシステム３００がローカル・エリア・ネットワーク（ＬＡＮ）として知られているローカルエリア通信ネットワーク３２２に接続部３２３を介して連結することを可能にする。図３Ａに示すように、ローカルエリア通信ネットワーク３２２は、さらに、広域ネットワーク３２０に接続部３２４を介して連結することができる。接続部３２４は、多くの場合、いわゆる「ファイアウォール」装置や同様な機能を持つ装置を備えている。ローカル・ネットワーク・インターフェース３１１は、イーサネット（登録商標）回路カード、ブルートゥース（登録商標）無線装置、又はＩＥＥＥ８０２．１無線装置を包含するが、その他複数のタイプのインターフェースをインターフェース３１１として利用することができる。
【００４８】
Ｉ／Ｏインターフェース３０８と３１３は，直列接続と並列接続の一方又は双方を利用可能にすることができ、前者は、一般的にはユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）（ＵＳＢ）規格に従って構成され、対応するＵＳＢコネクタ（不図示）を有する。記憶装置３０９が設けられており、一般的には、ハードディスクドライブ（ＨＤＤ）３１０が内蔵されている。フロッピーディスクドライブや磁気テープドライブ（不図示）などのその他の記憶装置を用いることもできる。不揮発性のデータソースとして機能する光ディスクドライブ３１２が一般的に設けられている。光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイ（Ｂｌｕ−ｒａｙ）ディスク（登録商標））、ＵＳＢ−ＲＡＭ、携帯型外部ハードドライブ及びフロッピーディスクなどの携帯型メモリ装置をシステム３００への好適なデータソースとして利用可能である。一般的には、ＨＤＤ３１０、光ドライブ３１２、ネットワーク３２０と３２２又はカメラ３２７のうち、いずれも符号化すべきビデオデータのソースとして用いることができ、あるいはディスプレイ３１４とともに記憶又は再生すべき復号ビデオデータの移動先として用いることができる。
【００４９】
コンピュータモジュール３０１の各部３０５〜３１３は、通例、相互接続バス３０４を介して、当業者に周知のコンピュータシステム３００の従来の動作モードになるような態様で通信を行う。例えば、プロセッサ３０５は、接続部３１８を用いてシステムバス３０４に接続されている。同じように、メモリ３０６及び光ディスクドライブ３１２は、接続部３１９によりシステムバス３０４に接続されている。上述の各部が実施されているコンピュータの例としては、ＩＢＭ−ＰＣやその互換機、サン・スパークステーション（Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎｓ）、アップル・マック（Ａｐｐｌｅ  Ｍａｃ（登録商標））やその他の類似のコンピュータシステムが挙げられる。
【００５０】
適切な場合又は所望の場合には、エンコーダ１００とデコーダ２００は、以下に説明する方法とともに、コンピュータシステム３００を用いて構成することができ、エンコーダ１００、デコーダ２００及び後述の処理は、コンピュータシステム３００内で実行可能な一つ又は複数のソフトウェア・アプリケーション・プログラム３３３として構成することができる。特に、エンコーダ１００、デコーダ２００及び後述の方法の各ステップは、コンピュータシステム３００内で実行されるソフトウェア３３３における命令３３１（図３Ｂ参照）により実現される。ソフトウェア命令３３１は、一つ又は複数の符号モジュールとして形成され、その各々は一つ又は複数の特定なタスクを実行するために用いられる。このソフトウェアは、２つの別々な部分に分割してもよく、第１の部分及びその対応する符号モジュールは、後述の方法を実行し、第２の部分及びその対応する符号モジュールは、当該第１の部分とユーザとの間のユーザーインターフェースを管理する。
【００５１】
当該ソフトウェアは、例えば、後述の記憶装置を含むコンピュータ読み出し可能な媒体に記憶することができる。当該ソフトウェアは、コンピュータ読み出し可能な媒体からコンピュータシステム３００にロードされ、コンピュータシステム３００によって実行される。そのようなソフトウェアを有するコンピュータ読み出し可能な媒体やコンピュータ読み出し可能な媒体に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム３００における当該コンピュータプログラム製品の使用は、エンコーダ１００、デコーダ２００及び後述の方法を実施するのに好都合の装置を望ましい形で実現することになる。
【００５２】
ソフトウェア３３３は、通常はＨＤＤ３１０やメモリ３０６に記憶されている。当該ソフトウェアは、コンピュータ読み出し可能な媒体からコンピュータシステム３００にロードされ、コンピュータシステム３００によって実行される。従って、例えば、ソフトウェア３３３は、光ディスクドライブ３１２により読み取られる光学的に読み出し可能なディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）に記憶することができる。
【００５３】
場合によっては、アプリケーションプログラム３３３は、一つ又は複数のＣＤ−ＲＯＭ３２５上で符号化されてユーザに供給され、対応するドライブ３１２によって読み込まれるようにしてもよいし、あるいはネットワーク３２０又は３２２からユーザによって読み込まれるようにしてもよい。さらに、当該ソフトウェアは、他のコンピュータ読み出し可能な媒体からコンピュータシステム３００にロードすることもできる。コンピュータ読み出し可能な媒体とは、記録された命令及び／又はデータを実行及び／又は処理するためにコンピュータシステム３００に提供する任意の非一時性有形記憶媒体のことである。そのような記憶媒体の例としては、フロッピーディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク、又はハードディスク・ドライブ、ＲＯＭや集積回路、ＵＳＢメモリ、光磁気ディスク、ＰＣＭＩＡカードやその類似物などのコンピュータ読み出し可能なカードが挙げられるが、それらの装置は、コンピュータモジュール３０１の内部にあろうと外部にあろうと構わない。コンピュータモジュール３０１へのソフトウェア、アプリケーションプログラム、命令及び／又はビデオデータ若しくは符号化ビデオデータの提供にさらに関与することができる一時性又は非有形のコンピュータ読み出し可能な伝送媒体の例としては、無線又は赤外線伝送チャネルのほかに他のコンピュータやネットワーク装置へのネットワーク接続部、さらに、電子メール送信及びウエブサイト等に記録されている情報を含むインターネットやイントラネットが挙げられる。
【００５４】
アプリケーションプログラム３３３及びその対応する符号モジュールの前述の第２の部分を実行して、一つ又は複数のグラフィカル・ユーザー・インターフェース（ＧＵＩ）を構成し、ディスプレイ３１４上に描画又は表現することができる。通常、キーボード３０２とマウス３０３を操作することで、コンピュータシステム３００及びアプリケーションのユーザは、インターフェースを機能的に適合した方法で操作し、当該ＧＵＩに関連したアプリケーションへのコマンド及び／又は入力を制御することができる。機能的に適合したユーザーインターフェースの他の形態、例えば、ラウドスピーカ３１７を介して出力される音声プロンプトを利用する音声インターフェースやマイクロフォン３８０を介して入力されるユーザ音声コマンドなども実施することができる。
【００５５】
図３Ｂは、プロセッサ３０５と「メモリ」３３４の詳細な概略ブロック図である。メモリ３３４は、図３Ａのコンピュータモジュール３０１がアクセスできるすべてのメモリモジュール（ＨＤＤ３０９及び半導体メモリ３０６を含む）の論理的集合体である。
【００５６】
コンピュータモジュール３０１の電源が最初にＯＮされると、電源ＯＮ自己診断（ＰＯＳＴ）プログラム３５０が起動する。通常、ＰＯＳＴプログラム３５０は、図３Ａの半導体メモリ３０６のＲＯＭ３４９に記憶されている。ソフトウェアを記憶するＲＯＭ３４９のようなハードウェア装置は、時には、ファームウェアと称する。ＰＯＳＴプログラム３５０は、コンピュータモジュール３０１内のハードウェアを検査して正常に機能していることを確かめ、通常はプロセッサ３０５、メモリ３３４（３０９、３０６）、及び同様にＲＯＭ３４９に通常は記憶されている基本入出力システム（ｂａｓｉｃ  ｉｎｐｕｔ−ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）（ＢＩＯＳ）モジュール３５１を正確に動作するかに関して点検する。ＰＯＳＴプログラム３５０が正常に起動したならば、ＢＩＯＳ３５１は、図３Ａのハードディスク・ドライブ３１０を作動させる。ハードディスク・ドライブ３１０の作動により、ハードディスク・ドライブ３１０に常駐するブートストラップ・ローダー・プログラム３５２がプロセッサ３０５を介して起動する。これにより、オペレーティングシステム３５３がＲＡＭメモリ３０６にロードされ、ＲＡＭメモリ３０６上でオペレーティングシステム３５３が動作を開始する。オペレーティングシステム３５３は、プロセッサ３０５により実行可能であり、プロセッサ管理、メモリ管理、装置管理、記憶管理、ソフトウェア・アプリケーション・インターフェース及び汎用ユーザーインターフェースを含む様々な高レベルの機能を果たすシステム・レベル・アプリケーションである。
【００５７】
オペレーティングシステム３５３は、メモリ３３４（３０９、３０６）を管理し、コンピュータモジュール３０１上で動作している各処理やアプリケーションが他の処理に割り当てられたメモリと衝突することなく実行されるのに十分なメモリを有していることを確かなものにする。さらに、図３Ａのシステム３００において使用できるさまざまなメモリは、各処理が効果的に動作するように適切に使用されることが必要である。従って、集合体であるメモリ３３４は、どのようにメモリの特定のセグメントが割り当てられるかを説明するためにあるのではなく（別段の説明がない限り）、むしろ、コンピュータシステム３００がアクセスできるメモリの一般的概念とそれがどのように使用されるのかの説明を提供するためにあるものである。
【００５８】
図３Ｂに示すように、プロセッサ３０５は、制御部３３９、算術論理演算部（ＡＬＵ）３４０、及び時にはキャッシュメモリと呼ばれる局部又は内部メモリ３４８を含む複数の機能モジュールを具備する。キャッシュメモリ３４８は、通常、レジスタ部に複数のレジスタ３４４〜３４６を有している。一つ又は複数の内部バス３４１は、これらの機能モジュールを相互接続している。プロセッサ３０５は、通常さらに、接続部３１８を用いてシステムバス３０４を介して外部装置と通信を行うための一つ又は複数のインターフェース３４２を具備する。メモリ３３４は、接続部３１９を用いてバス３０４と連結している。
【００５９】
アプリケーションプログラム３３３は、条件付き分岐とループ命令とを含むことがある一連の命令３３１を含んでいる。プログラム３３３は、さらに、プログラム３３３の実行に用いるデータ３３２を含むことがある。命令３３１及びデータ３３２は、記憶域３２８、３２９及び２２０並びに記憶域３３５、３３６及び２３７にそれぞれ記憶されている。命令３３１と記憶領域３２８〜３３０の相対的サイズ次第で、特定の命令は、記憶域３３０内に示される命令により描かれるような単一の記憶域に記憶してもよい。あるいは、１個の命令を複数の部分に分けて、各部分を記憶領域３２８及び３２９に示す命令部分により描かれるような別々の記憶域に記憶してもよい。
【００６０】
一般的に、プロセッサ３０５には、そこで実行される一連の命令が与えられる。プロセッサ３０５は、次の入力を待ち、他の一連の命令を実行することによってその入力に反応する。各入力は、多数のソースのうちの一つ又は複数から提供され、それらは、例えば、入力装置３０２及び３０３のうちの一つ又は複数により生成されたデータ、ネットワーク３２０及び３０２のうちの一つを介して外部ソースから受信したデータ、記憶装置３０６及び３０９のうちの一つから受信したデータ、又は対応するリーダ３１２に挿入された記憶媒体３２５から受信したデータ（いずれも図３Ａに描かれている）である。それらの一連の命令を実行することにより、場合によっては、データが出力されることになる。実行により、データや変数をメモリ３３４に記憶することになることもある。
【００６１】
エンコーダ１００、デコーダ２００及び後述の方法では、メモリ３３４の対応する記憶域３５５、３５６及び３５７に記憶されている入力変数３５４を使用する。また、エンコーダ１００、デコーダ２００及び後述の方法では、メモリ３３４の対応する記憶域３６２、３６３及び３６４に記憶されている入力変数３６１を生成する。記憶域３５９、３６０、３６６及び３６７には中間媒介変数３５８を記憶することができる。
【００６２】
図３Ｂのプロセッサ３０５に関して、レジスタ３４４、３４５及び３４６、算術論理演算部（ＡＬＵ）３４０並びに制御部３３９は、共働して、プログラム３３３を構成する命令群における各命令に対して「取り出し、解読及び実行」サイクルを行うのに必要なマイクロ動作列を実行する。各取り出し、解読及び実行サイクルは、
（ａ）記憶域３２８、３２９又は３３０から命令３３１を取り出す取り出し動作と、
（ｂ）制御部３３９がどの命令が取り出されたのかを判定する解読動作と、
（ｃ）制御部３３９及び／又はＡＬＵ３４０が当該命令を実行する実行動作とを有する。
【００６３】
その後に、次の命令に対してさらなる取り出し、解読及び実行サイクルを実行することができる。同様に、制御部３３９がある値を記憶域３３２に記憶する又は書き込む記憶動作を実行することができる。
【００６４】
後述するプロセスにおける各ステップ又はサブプロセスは、プログラム３３３の一つ又は複数の部分と関連付けられており、通常は、プログラム３３３の注目部分用の命令群における各命令に対して取り出し、解読及び実行サイクルを共働して実行するプロセッサ３０５中のレジスタ部分３４４、３４５及び３４７、ＡＬＵ３４０並びに制御部３３９により実行される。
【００６５】
エンコーダ１００、デコーダ２００及び後述の方法は、後述の方法の機能や副次機能を実行する一つ又は複数の集積回路などの専用のハードウエアにおいて選択的に構成してもよい。そのような専用のハードウエアとしては、グラフィックプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）又は一つ又は複数のマイクロプロセッサ及び関連メモリを挙げることができる。
【００６６】
上述のように、ビデオエンコーダ１００は、ハードディスク・ドライブ３１０に常駐しプロセッサ３０５によりその実行を制御されるソフトウェア・アプリケーション・プログラム３３３の一つ又は複数のソフトウェア符号モジュールとして構成することができる。特に、ビデオエンコーダ１００は、各々ソフトウェア・アプリケーション・プログラム３３３の一つ又は複数のソフトウェア符号モジュールとして構成することができるモジュール１０２〜１１２、１１４及び１１５を含んでいる。
【００６７】
図１のビデオエンコーダ１００は、ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）ビデオ復号パイプラインの一例であるが、モジュール１０２〜１１２、１１４及び１１５によって実行される処理段階は、ＶＣ−１やＨ．２６４／ＭＰＥＧ−４  ＡＶＣなどの他のビデオコーデックと共通である。ビデオエンコーダ１００は、符号化されていないフレームデータ１０１を輝度及び色度サンプルを有する一連のフレームとして受信する。ビデオエンコーダ１００は、フレームデータ１０１の各フレームを、例えば、符号化単位（ＣＵ）ツリーとして表すことができる階層的な変換単位（ＴＵ）群に分割する。
【００６８】
ビデオエンコーダ１００は、予測単位（ＰＵ）１２０として知られている予測データサンプルの列をマルチプレクサーモジュール１１０から出力するように動作する。差分モジュール１１５は、予測単位（ＰＵ）１２０とフレームデータ１０１からの対応するデータサンプル列との差分を出力する。この差分は、残差データサンプル１２２として知られている。
【００６９】
変換モジュール１０２は、差分モジュール１１５からの残差データサンプル１２２を受信し、当該差分を空間表現から周波数領域表現に変換して変換ツリー中の各変換単位（ＴＵ）についての変換係数１２４を生成する。開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格においては、周波数領域表現への変換は、修正離散コサイン変換（ＤＣＴ）を用いて実施される。修正ＤＣＴは、従来のＤＣＴをシフトと加算を用いて実施するように変形したものである。次に、変換係数１２４は、スケーリング及び量子化モジュール１０３に入力され、スケーリング及び量子化され、残差係数１２６が生成される。スケーリング及び量子化処理は、精度の損失を招くことになる。
【００７０】
残差係数１２６は、逆スケーリングモジュール１０５への入力となる。逆スケーリングモジュール１０５は、スケーリング及び量子化モジュール１０３により実行されたスケーリングを逆転し、残差係数１２６を再スケーリングしたバージョンである再スケーリング変換係数１２８を生成する。また、残差係数１２６は、残差係数を符号化ビットストリーム１１３に符号化するエントロピー・エンコーダ・モジュール１０４への入力となる。スケーリング及び量子化モジュール１０３に起因する精度の損失のせいで、再スケーリング変換係数１２８は、元の変換係数１２４と同一のものではない。次に、逆スケーリングモジュール１０５からの再スケーリング変換係数１２８は、逆変換モジュール１０６に出力される。逆変換モジュール１０６は、周波数領域から空間領域への逆変換を行い、デコーダで生成される空間領域表現と同一の再スケーリング変換係数１２８の空間領域表現１３０を生成する。
【００７１】
動き推定モジュール１０７は、フレームデータ１０１をメモリ３０６内に構成されたフレーム・バッファ・モジュール１１２に記憶されている直前のフレームデータと比較することにより、動きベクトル１３２を生成する。次に、動きベクトル１３２は、動き補償モジュール１０８に入力される。動き補償モジュール１０８は、動きベクトル１３２から導かれる空間的オフセットを考慮に入れながら、フレーム・バッファ・モジュール１１２に記憶されているサンプルをフィルタリングすることによって、インター予測基準サンプル１３４を生成する。図１には示していないが、動きベクトル１３２は、また、シンタックス要素として、符号化ビットストリーム１１３に符号化するエントロピー・エンコーダ・モジュール１０４へ供給される。イントラフレーム予測モジュール１０９は、加算モジュール１１４から得られたサンプル１３８を用いてイントラ予測基準サンプル１３６を生成する。加算モジュール１１４は、マルチプレクサーモジュール１１０の出力１２０と逆変換モジュール１０６からの出力１３０とを加算する。
【００７２】
予測単位（ＰＵ）は、イントラ予測方法又はインター予測方法を用いて符号化することができる。イントラ予測とインター予測のどちらを使用すべきかは、処理の結果得られた符号化ビットストリーム１１３の所望のビットレートとイントラ予測方法又はインター予測方法のいずれかによってもたらされた画質ひずみ量との間のレート―ひずみトレードオフに応じて決定される。もしイントラ予測を用いる場合、使用可能なモード群の中から一つのイントラ予測モードが同じくレート―ひずみトレードオフに応じて選択される。各予測単位ごとに一つのイントラ予測モードが選択される。
【００７３】
マルチプレクサーモジュール１１０は、イントラフレーム予測モジュール１０９からのイントラ予測基準サンプル１３６と動き補償ブロック１０８からのインター予測基準サンプル１３４のいずれかを、図示してはいないが当技術分野で周知である制御論理によって決定される現在の予測モード１４２に応じて選択する。現在の予測モード１４２は、エントロピー・エンコーダ・モジュール１０４にも供給され、後述するように、変換単位の走査順序を決定し、又は確定するために使用される。インター予測は斜め方向走査順序のみを用いるが、イントラ予測は斜め方向走査順序、水平方向走査順序又は垂直方向走査順序を用いる。
【００７４】
加算モジュール１１４は、非ブロック化フィルタモジュール１１１への入力となる和１３８を生成する。非ブロック化フィルタモジュール１１１は、ブロック境界に沿ってフィルタリングを行い、メモリ３０６内に構成されているフレーム・バッファ・モジュール１１２に書き込まれる非ブロック化サンプル１４０を生成する。フレーム・バッファ・モジュール１１２は、複数の過去のフレームからのデータを後の参照用に保持するために十分な容量を有するバッファである。
【００７５】
ビデオエンコーダ１００において、１個の変換単位（ＴＵ）内の残差データサンプル１２２は、入力フレームデータ１０１のデータサンプルと入力フレームデータ１０１のデータサンプルの予測１２０との間の差分を求めることによって決定される。当該差分は、変換単位（ＴＵ）の残差係数の空間表現を示す。変換単位（ＴＵ）の残差係数は、２次元有意性マップに変換される。
【００７６】
変換単位（ＴＵ）における残差係数の有意性マップは、次に、走査順序として知られている特定の順序で走査され、有意係数フラグのリストと呼ばれるフラグ値の１次元リストを作成する。走査順序は、イントラ予測モジュール１０９から予測モード１４２と共に受信するような走査パターンにより記述され、又は特定されることになる。走査パターンは、水平方向、垂直方向、斜め方向又はジグザグのいずれでもよい。
【００７７】
ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）テストモデル第６版（すなわち、「ＨＭ＿６．０」）は、逆方向の走査を実行する。しかしながら、順方向の走査も可能である。ＨＥＶＣ参照モデル第６版（すなわち、「ＨＭ＿６．０」）においては、走査動作は、最後の有意係数から残差係数１個後に開始し（「後に」とは、残差係数の逆方向走査の方向においての意味）、有意性マップの左上位置に到達するまで進行する。この特性を有しＨＥＶＣ参照モデル第６版に依拠する走査動作は、「逆方向走査」として知られている。ＨＥＶＣ参照ソフトウェア第６版（すなわち、「ＨＭ＿６．０」）においては、
最後の有意係数の位置は、変換単位（ＴＵ）における係数の座標を符号化することによって信号として伝えられる。本明細書における形容詞「最後の」は、走査の特定の順序に依存して使用されている。ある走査パターンによる「最後の」非ゼロ残差係数又は対応する一価有意係数フラグは、他の走査パターンによれば「最後の」ものではないことがあり得る。
【００７８】
最後の有意係数に先立って各残差係数の有意性を示す有意係数フラグのリストは、ビットストリームに符号化される。最後の有意係数フラグ値は、積極的にビットストリームに符号化する必要はない。何故なら、最後の有意係数フラグの位置の先行符号化は、この残差係数が有意であったことを暗黙に示すからである。
【００７９】
より大きな値の残差係数を変換単位（ＴＵ）の左上に向かってクラスタリングすると、リストにおけるより早い方のほとんどの有意性フラグは有意であることになり、リストにおけるより遅い有意性フラグはほとんどないという結果になる。
【００８０】
上述したように、ビデオエンコーダ１００は、さらに、エントロピー符号化方法を実施するエントロピー・エンコーダ・モジュール１０４を具備している。エントロピー・エンコーダ・モジュール１０４は、スケーリング及び量子化モジュール１０３から受信した入力残差係数データ（又は残差係数）１２６からシンタックス要素を生成する。エントロピー・エンコーダ・モジュール１０４は、符号化ビットストリーム１１３を出力するが、詳細は後述する。開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格においては、符号化ビットストリーム１１３は、ネットワーク抽象化層（ｎｅｔｗｏｒｋ  ａｂｓｔｒａｃｔｉｏｎ  ｌａｙｅｒ）（ＮＡＬ）単位に線引き区分される。フレームの各スライスは、１個のＮＡＬ単位に含まれている。
【００８１】
エントロピー・エンコーダ・モジュール１０４において実施されるエントロピー符号化方法には様々な別の方法がある。開発中のｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）規格は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣに記載されているｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）の変型であるｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）、をサポートしている。別のエントロピー符号化手法は、ｐｒｏｂａｂｉｌｉｔｙ  ｉｎｔｅｒｖａｌ  ｐａｒｔｉｔｉｏｎｉｎｇ  ｅｎｔｒｏｐｙ（確率区間区分エントロピー）（ＰＩＰＥ）符号化器として知られている。
【００８２】
複数のビデオエンコーダ符号化方法をサポートしているビデオエンコーダ１００に関しては、サポートされているエントロピー符号化方法のうちの一つがエンコーダ１００の構成に応じて選択される。さらに、各フレームから符号化単位（ＣＵ）を符号化する際、エントロピー・エンコーダ・モジュール１０４は、各フレームが１フレームあたり一つ又は複数のスライスを有し、各スライスがフレームの一部分についての画像データを含むように符号化ビットストリーム１１３を書き込む。１フレームあたり１個のスライスを生成することにより、各スライス境界を線引きすることに付随するオーバーヘッドを削減する。しかしながら、フレームを複数のスライスに分割することも可能である。
【００８３】
図２のビデオデコーダ２００は、ハードディスク・ドライブ３１０に常駐しプロセッサ３０５によりその実行を制御されるソフトウェア・アプリケーション・プログラム３３３の一つ又は複数のソフトウェア符号モジュールとして構成することができる。特に、ビデオデコーダ２００は、各々ソフトウェア・アプリケーション・プログラム３３３の一つ又は複数のソフトウェア符号モジュールとして構成することができるモジュール２０２〜２０８及び２１０を含んでいる。ビデオデコーダ２００は、ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）ビデオ復号パイプラインに関して説明していくが、モジュール２０２〜２０８及び２１０によって実行される処理段階は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ、ＭＰＥＧ−２及びＶＣ−１などのエントロピー符号化を採用するビデオコーデックと共通である。
【００８４】
符号化ビットストリーム１１３のような符号化ビットストリームは、ビデオデコーダ２００により受信される。符号化ビットストリーム１１３は、メモリ３０６、ハードディスク・ドライブ３１０、ＣＤ−ＲＯＭ、ブルーレイディスク（登録商標）又は他のコンピュータ読み出し可能な記憶媒体から読み出すことができる。あるいは、符号化ビットストリーム１１３は、通信ネットワーク３２０に接続されたサーバなどの外部装置や無線受信機から受信してもよい。符号化ビットストリーム１１３は、復号すべきフレームデータを表すシンタックス要素を含んでいる。
【００８５】
符号化ビットストリーム１１３は、シンタックス要素を符号化ビットストリーム１１３から抽出しシンタックス要素の各値をビデオデコーダ２００中の他のブロックに供給するエントロピーデコーダ２０２に入力される。エントロピー・エンコーダ・モジュール１０４に関して説明したものと同様に、エントロピーデコーダ２０２において実施されるエントロピー復号方法には様々な方法がある。残差係数データを表すシンタックス要素データ２２０は逆スケーリング及び変換モジュール２０３に供給され、動きベクトル情報を表すシンタックス要素データ２２２は動き補償モジュール２０４に供給される。逆スケーリング及び変換モジュール２０３は、残差係数データに逆スケーリングを施し、再構成変換係数を作成する。次に、モジュール２０３は、逆変換を行い、再構成変換係数を周波数領域表現から空間領域表現に変換し、逆変換モジュール１０６に関して説明した逆変換のような残差サンプル２２４を生成する。
【００８６】
動き補償モジュール２０４は、エントロピー・デコーダ・モジュール２０２からの動きベクトルデータ２２２を、メモリ３０６内に構成されているフレーム・バッファ・ブロック２０８からの直前のフレームデータ２２６との組み合わせで使用し、出力復号フレームデータの予測である予測単位（ＰＵ）についてインター予測基準サンプル２２８を生成する。シンタックス要素が現在の変換単位はイントラ予測を用いて符号化されたものであることを示しているときには、イントラフレーム予測モジュール２０５は、予測単位（ＰＵ）に空間的に隣接しているサンプルを用いて予測単位（ＰＵ）についてイントラ予測基準サンプル２３０を生成する。空間的に隣接しているサンプルは、加算モジュール２１０から出力される和２３２から得られる。マルチプレクサモジュール２０６は、符号化ビットストリーム１１３におけるシンタックス要素により示される現在の予測モードに従って、予測単位（ＰＵ）についてイントラ予測基準サンプル又はインター予測基準サンプルを選択する。マルチプレクサモジュール２０６から出力されるサンプル２３４の列は、逆スケーリング及び変換モジュール２０３からの残差サンプル２２４に、加算モジュール２１０により加算され、非ブロック化フィルタモジュール２０７とイントラフレーム予測モジュール２０５の各々に入力される和２３２を生成する。エンコーダ１００とは対照的に、イントラフレーム予測モジュール２０５は、予測モード２３６をエントロピーデコーダ２０２から受信する。マルチプレクサ２０６は、エントロピーデコーダ２０２からイントラフレーム予測／インターフレーム予測選択信号を受信する。非ブロック化フィルタモジュール２０７は、データブロック境界に沿って現れるアーチファクトを滑らかにする。非ブロック化フィルタモジュール２０７の出力は、メモリ３０６内に構成されているフレーム・バッファ・モジュール２０８に書き込まれる。フレーム・バッファ・モジュール２０８は、複数の復号フレームを後の参照用に保持するのに十分な、記憶場所を提供する。また、復号フレーム２０９は、フレーム・バッファ・モジュール２０８から出力される。
【００８７】
変換単位（ＴＵ）４００の一例の空間的構造を図４Ａ及び図４Ｂを参照して説明する。
【００８８】
図４Ａは、変換単位（ＴＵ）４００の一例を示す。変換単位４００は、矩形の空間的構造を有し、サイズは４ｘ４から３２ｘ３２までさまざまであり得る。変換単位（ＴＵ）４００の幅及び高さは、２の累乗の整数である値をとる。
【００８９】
上述したように、変換単位（ＴＵ）は、残差係数を保持する。変換単位（ＴＵ）４００を一つ又は複数のサブセット４０１の組に分割する２レベル走査を規定することができる。各サブセットは、走査順序４０３における１６個の連続した残差係数からなるが、走査順序において最初のサブセットは、例外であり、最後の有意係数の位置次第では１６個よりも少ない残差係数を含むこともあり得る。図４Ｂに示すように、変換単位例４００は、走査順序４０３に関して最後の有意係数位置４５１を有している。
【００９０】
図４Ａに示すように、変換単位４００の上位レベルにおいて、走査は一つのスキャンで各下位レベルを走査すること、例えば、逆方向斜め方向左下走査で実行される。「サブセットレベル」とも呼ばれる変換単位４００の下位レベルにおいて、走査は逆方向斜め方向左下走査などのスキャンを用いて実行される。変換単位４００の上位レベルスキャンにおいては、もし次のサブセットがいかなる有意残差係数も含んでいない場合は、次のサブセットの下位レベル走査は行わないように決定してもよい。
【００９１】
変換単位４００は、有意残差係数が全くないサブセット４５２を含んでいる。この場合には、下位レベル走査ステップはサブセット４５２については省略してもよく、上位レベル走査は走査順序４０３における次のサブセットに進む。変換単位４００の左上のサブセット４０５は、サブセット指数がゼロである。その他のサブセットは、走査順序とは逆の順序で増加する指数を有する。
【００９２】
変換単位（ＴＵ）４００のような変換単位（ＴＵ）のシンタックス要素構造を図５及び図７を参照して説明する。ビットストリーム１１３のビットストリーム部分５０１は、変換単位（ＴＵ）４００のシンタックス要素を含み、次に列挙するシンタックス要素（ｉ）〜（ｉｉｉ）からなる。
【００９３】
（ｉ）ｄｅｌｔａ＿ｑｐ５０２：  ｄｅｌｔａ＿ｑｐシンタックス要素５０２は、変換単位（ＴＵ）４００を量子化するのに使用される量子化パラメータ値と所定の量子化パラメータ値との間の差分についての情報を含む。
【００９４】
（ｉｉ）ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｘｙ５０３：  ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｘｙシンタックス要素５０３は、変換単位（ＴＵ）４００における最後の有意残差係数の位置についての情報を含む。
【００９５】
（ｉｉｉ）サブセット残差係数データ５０４：  サブセット残差係数データは、０個以上のブロック７０１からなり、変換単位（ＴＵ）４００の残差係数の値についての情報を含む。
【００９６】
図７に示すように、ブロック７０１は、変換単位（ＴＵ）の単一のサブセットの残差係数の値についての情報を含み、次に列挙するシンタックス要素（ｉ）〜（ｖｉ）からなる。
【００９７】
（ｉ）ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２：  ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇシンタックス要素７０２は、１個のサブセットにつき１回符号化され、それが偽の場合、サブセット中のすべての残差係数がゼロであると推測され、残差係数データ７０３、７０４、７０５、７０６及び７０７はブロック７０１には存在しない。そうでない場合は（ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇシンタックス要素７０２が真のときは）、サブセット中の少なくとも１個の残差係数はゼロではない値を有し、残差係数データ７０３、７０４、７０５、７０６及び７０７のうちの何らかの組み合わせがブロック７０１中に存在する。
【００９８】
（ｉｉ）０個以上のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値のブロック７０３：  ブロック７０３は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２がブロック７０３の存在を示している場合に存在する。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２の値は、最後の有意残差係数を除いてサブセットのあらゆる残差係数についてブロック７０３中に存在し、ある残差係数の大きさがゼロよりも大きいかどうかを示す。
【００９９】
（ｉｉｉ）０個以上のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値のブロック７０４：  ブロック７０４は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２がブロック７０４の存在を示している場合に存在する。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値は、大きさがゼロよりも大きいと示されたサブセットのあらゆる残差係数についてブロック７０３中に存在し、ある残差係数の大きさが１よりも大きいかどうかを示す。
【０１００】
（ｉｖ）０個以上のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値のブロック７０５：  ブロック７０５は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２がブロック７０５の存在を示している場合に存在する。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値は、大きさが１よりも大きいと示されたサブセットのあらゆる残差係数についてブロック７０５中に存在し、ある残差係数の大きさが２よりも大きいかどうかを示す。
【０１０１】
（ｖ）０個以上のｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値のブロック７０６：  ブロック７０６は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２がブロック７０６の存在を示している場合に存在する。ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値は、大きさがゼロよりも大きいと示されたあらゆる残差係数についてブロック７０６中に存在し、ある残差係数の演算符号を示す。
【０１０２】
（ｖｉ）０個以上のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロック７０７：  ブロック７０７の各ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値は、残差係数の大きさマイナス３のある値についてのゴロム・ライス符号語（すなわち、残存残差係数大きさ）である。ブロック７０７は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２がブロック７０７の存在を示している場合に存在する。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値は、大きさが２よりも大きいと示されたあらゆる残差係数についてブロック７０７中に存在する。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値は、ある残差係数の残存残差係数の大きさについてのゴロム・ライス符号語の値を指定する。
【０１０３】
以下、変換単位（ＴＵ）を符号化する方法６５０を図６Ａを参照して説明する。方法６５０は、エンコーダ１００のエントロピー・エンコーダ・モジュール１０４の一部分として実施することができる。上述したように、エンコーダ１００を構成するソフトウェア符号モジュール１０２〜１１２、１１４及び１１５は、ハードディスク・ドライブ３１０に常駐しており、その実行をプロセッサ３０５により制御される。
【０１０４】
方法６５０を、一例として図５のビットストリーム部分５０１を参照して説明する。方法６５０は、ｄｅｌｔａ＿ｑｐ５０２、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｘｙ５０３及びデータ５０４をビットストリーム部分５０１に符号化する。
【０１０５】
方法６５０は、「ｄｅｌｔａ＿ｑｐ値を符号化」ステップ６５１において動作を開始し、ｄｅｌｔａ＿ｑｐ値は、プロセッサ３０５による実行の下で、エンコーダモジュール１０４により符号化され、メモリ３０６に記憶される。
【０１０６】
次に、「最後の有意位置を符号化」ステップ６５２において、最後の有意残差係数の位置は、プロセッサ３０５による実行の下で、エンコーダモジュール１０４によりビットストリーム部分５０１に符号化される。ビットストリーム部分５０１は、メモリ３０６に記憶することができる。最後の有意残差係数の位置、変換単位の幅と高さ及び走査順序４０３についての情報は、変換単位（ＴＵ）において符号化されるサブセットの数を決定するために用いられる。
【０１０７】
方法６５０は、「サブセットを符号化」ステップ６５３に進み、サブセットデータ５０４は、エンコーダモジュール１０４により符号化され、メモリ３０６に記憶される。
【０１０８】
次に、決定ステップ６５４において、エンコーダモジュール１０４は、変換単位（ＴＵ）における最後の有意残差係数の位置及び用いられている走査順序４０３についての情報に基づいて、さらに他のサブセット５０４をビットストリーム部分５０１に符号化すべきかを判断する。エンコーダモジュール１０４が符号化すべきサブセット５０４がさらにあると判断した場合は、方法６５０は「サブセットを符号化」ステップ６５３に戻る。このように、方法６５０は、最後の有意係数を含むサブセットから最初のサブセットまでのすべてのサブセットが処理されるまでステップ６５３と６５４を反復する。そうでない場合は、方法６５０は終了する。
【０１０９】
変換単位（ＴＵ）を復号する方法６００を図６Ｂを参照して説明する。方法６００は、デコーダ２００のエントロピー・デコーダ・モジュール２０２の一部分として実施することができる。上述したように、デコーダ２００を構成するソフトウェア符号モジュール２０２〜２０８及び２１０は、ハードディスク・ドライブ３１０に常駐しており、その実行をプロセッサ３０５により制御される。
【０１１０】
さらに、方法６００を、一例として、方法６５０に従って符号化された図５のビットストリーム部分５０１を参照して説明する。方法６００は、データブロック５０２、５０３及び５０４をビットストリーム部分５０１から復号する。
【０１１１】
当該方法は、「ｄｅｌｔａ＿ｑｐ値を復号」ステップ６０１において動作を開始し、ｄｅｌｔａ＿ｑｐフラグの値は、プロセッサ３０５による実行の下で、デコーダモジュール２０２により決定される。ｄｅｌｔａ＿ｑｐフラグ値は、メモリ３０６に記憶しておくことができる。
【０１１２】
次に、「最後の有意位置を復号」ステップ６０２において、変換単位（ＴＵ）における最後の有意残差係数の位置は、デコーダモジュール２０２により決定される。最後の有意残差係数の位置、変換単位の幅と高さ及び走査順序４０３についての情報は、変換単位（ＴＵ）において復号されるサブセットの数を決定するために用いられる。
【０１１３】
方法６００は、「サブセットを復号」ステップ６０３に進み、サブセットデータ５０４は、プロセッサ３０５による実行の下で、デコーダモジュール２０２により復号される。復号されたサブセットデータは、メモリ３０６内に記憶しておくことができる。
【０１１４】
次に、決定ステップ６０４において、デコーダモジュール２０２は、変換単位（ＴＵ）における最後の有意残差係数の位置及び用いられている走査順序４０３についての情報に基づいて、さらに他のサブセット５０４をビットストリーム部分５０１から復号すべきかを判断する。
【０１１５】
デコーダモジュール２０２が復号すべきサブセット５０４がさらにあると判断した場合は、方法６００は「サブセット」ステップ６０３に戻る。そうでない場合は、方法６００は終了する。
【０１１６】
以下、変換単位（ＴＵ）のサブセットを符号化する方法８５０を図８Ａを参照して説明する。方法８５０は、エンコーダ１００のエントロピー・エンコーダ・モジュール１０４の一部分として実施することができる。上述したように、エンコーダ１００を構成するソフトウェア符号モジュール１０２〜１１２、１１４及び１１５は、ハードディスク・ドライブ３１０に常駐しており、その実行をプロセッサ３０５により制御される。
【０１１７】
方法８５０を、一例として図７のブロック７０１を参照して説明する。方法８５０は、ブロック７０２、７０３、７０４、７０５、７０６及び７０７をビットストリーム部分５０１に符号化する。
【０１１８】
方法８５０は、「有意グループフラグを符号化」ステップ８５１において動作を開始し、エンコーダモジュール１０４は、プロセッサ３０５による実行の下で、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２の値を符号化し、符号化された値をメモリ３０６に記憶する。
【０１１９】
次に、ステップ８５２において、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２の値がサブセットがブロック７０３、７０４、７０５、７０６及び７０７について符号化すべきデータを含んでいるということを示している場合、方法８５０は、ステップ８５３に進む。そうでない場合は、方法８５０は終了する。
【０１２０】
符号化ステップ８５３において、エンコーダモジュール１０４は、プロセッサ３０５による実行の下で、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値のブロック７０３を符号化する。エンコーダモジュール１０４は、変換単位（ＴＵ）の最後の有意残差係数を除いてサブセットの各残差係数について一つのｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値を決定する。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１２１】
次に、符号化ステップ８５４において、エンコーダモジュール１０４は、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値のブロック７０４を符号化する。エンコーダモジュール１０４は、大きさがゼロよりも大きいサブセットの各残差係数について一つのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値を決定する。符号化されたｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１２２】
符号化ステップ８５５において、エンコーダモジュール１０４は、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値のブロック７０５を符号化する。エンコーダモジュール１０４は、大きさが１よりも大きいサブセットの各残差係数について一つのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値を決定する。符号化されたｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１２３】
次に、符号化ステップ８５６において、エンコーダモジュール１０４は、プロセッサ３０５による実行の下で、ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値のブロック７０６を符号化する。エンコーダモジュール１０４は、大きさがゼロよりも大きいサブセットの各残差係数について一つのｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値を決定する。符号化されたｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１２４】
符号化ステップ８５７において、エンコーダモジュール１０４は、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロック７０７を符号化する。エンコーダモジュール１０４は、大きさが２よりも大きいサブセットの各残差係数について一つのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値を決定する。符号化されたｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値は、メモリ３０６に記憶することができる。ステップ８５７の後で、方法８５０は終了する。
【０１２５】
変換単位（ＴＵ）のサブセットを復号する方法８００を図８Ｂを参照して説明する。方法８００は、デコーダ２００のエントロピー・デコーダ・モジュール２０２の一部分として実施することができる。上述したように、デコーダ２００を構成するソフトウェア符号モジュール２０２〜２０８及び２１０は、ハードディスク・ドライブ３１０に常駐しており、その実行をプロセッサ３０５により制御される。
【０１２６】
方法８００を、一例として図７のブロック７０１を参照して説明する。方法８００は、ブロック７０２、７０３、７０４、７０５、７０６及び７０７をビットストリーム部分５０１から復号する。
【０１２７】
方法８００は、「有意グループフラグを復号」ステップ８０１において動作を開始し、デコーダモジュール２０２は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２の値を復号する。復号されたｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２の値は、メモリ３０６に記憶することができる。
次に、ステップ８０２において、デコーダモジュール２０２がｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｇｒｏｕｐ＿ｆｌａｇ７０２の値はサブセットが残差係数データブロック７０３、７０４、７０５、７０６及び７０７を含んでいるということを示していると判定した場合、方法８００は、ステップ８０３に進む。そうでない場合は、方法８００は終了する。
【０１２８】
復号ステップ８０３において、デコーダモジュール２０２は、プロセッサ３０５による実行の下で、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値のブロック７０３を復号する。デコーダモジュール２０２は、変換単位（ＴＵ）の最後の有意残差係数を除いてサブセットの各残差係数について一つのｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値を決定する。復号されたｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１２９】
次に、復号ステップ８０４において、デコーダモジュール２０２は、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値のブロック７０４を復号する。デコーダモジュール２０２は、ステップ８０３で大きさがゼロよりも大きいと判定されたサブセットの各残差係数について一つのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値を決定する。復号されたｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１３０】
復号ステップ８０５において、デコーダモジュール２０２は、プロセッサ３０５による実行の下で、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値のブロック７０５を復号する。デコーダモジュール２０２は、ステップ８０４で大きさが１よりも大きいと判定されたサブセットの各残差係数について一つのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値を決定する。復号されたｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１３１】
次に、復号ステップ８０６において、デコーダモジュール２０２は、ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値のブロック７０６を復号する。デコーダモジュール２０２は、ステップ８０３で大きさがゼロよりも大きいと判定されたサブセットの各残差係数について一つのｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値を決定する。復号されたｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ値は、メモリ３０６に記憶することができる。
【０１３２】
方法８００は、ステップ８０７において終了するが、そこにおいてデコーダモジュール２０２は、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロック７０７を復号する。デコーダモジュール２０２は、ステップ８０５で大きさが２よりも大きいと判定されたサブセットの各残差係数について一つのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値を決定する。さらにステップ８０７において、デコーダモジュール２０２は、ある残差係数の残存残差係数大きさについてゴロム・ライス符号語の値を決定する。
【０１３３】
ステップ８０７の後で、方法８００は終了する。
【０１３４】
以下、ＨＥＶＣ基準モデル第６版におけるパラメータ化されたゴロム・ライス符号及びその利用法を、図９、図１０、図１４Ａ及び図１４Ｂを参照して説明する。
【０１３５】
パラメータ化されたゴロム・ライス符号は、変換単位（ＴＵ）の残差係数の残存残差係数大きさ値を表すために用いられるある種の汎用接頭２進コードである。接頭２進コードは、あらゆる２進符号語が固有の接頭辞を有する２進値表現である。そのような固有の接頭辞は、特定の符号語をその他の符号語と区別するのを可能にするものであり、符号語により表される値を一意的に特定するために必要なものである。
【０１３６】
パラメータ化されたゴロム・ライス符号の各符号語は、２つの部分、すなわち、パラメータ化された切り捨てライス接頭辞部分及びおそらく空の次数ゼロ指数ゴロム接尾辞部分からなる。切り捨てライス接頭辞部分は、０、１、２、３、４の値をとり得るパラメータＫによって決まる。パラメータＫの各値ごとに閾値が規定されている。残差係数残存大きさの符号化値が閾値よりも小さければ、当該符号化値は、指数ゴロム接尾辞を持たない切り捨てライス符号で符号化されている。
【０１３７】
残差係数残存大きさの符号化値が閾値に等しいか又はそれよりも大きければ、所定の切り捨てライス符号語が、当該符号化値がその閾値に等しいか又は大きいことを示すように符号化される。さらに、元の符号化値マイナス閾値に等しい値が次数ゼロ指数ゴロム符号を用いて符号化される。
【０１３８】
表９００には、図９に示すように、符号化値０〜１５とパラメータＫの値０及び１に対する切り捨てライス符号語の例が記載されている。
【０１３９】
表１０００には、図１０に示すように、次数ゼロ指数ゴロム符号語の例が記載されている。例えば、パラメータＫ＝０を有するゴロム・ライス符号を用いると、値「１０」は、切り捨てライス接頭辞「１１１１１１１１」及びゴロム・ライス符号語「１１１１１１１１１１０」を形成する次数ゼロ指数ゴロム接尾辞「１１０」で表されることになる。パラメータＫの値が既知のときは、ゴロム・ライス符号語は、既定の２進数列から一意的に特定することができる。
【０１４０】
パラメータ化されたゴロム・ライス符号の各符号語は、パラメータＫと符号化値とによって決まる固定長を有している。限られた個数の符号語は、所定の長さを持つこともあり得る。このように、一連の符号化値については、比較的短い符号語で表される符号化値もあるし、比較的長い符号語で表される符号化値もある。ビデオデータ符号化においては、符号語は、ビットストリーム１１３に符号化されたすべての符号語の全長を最小限に抑えるように符号化値に割り当てられる。異なる残存残差係数大きさの値は、変換単位（ＴＵ）データにおいて異なる出現頻度を有する。符号語全長の削減は、符号語の長さが符号化値の出現頻度に対応するように各符号語を各符号化値に割り当てることによって達成することができる。例えば、残差係数残存大きさの比較的頻出する値は、比較的短い符号語が割り当てられ、同じ頻度を有する残差係数残存大きさの値は、同じ長さの符号語が割り当てられる。
【０１４１】
パラメータ化されたゴロム・ライス符号のパラメータＫは、符号語間で符号語長を分布させるのを制御可能にする。パラメータＫの値が小さいほど小さい大きさを有する値に、より最適な符号語を割り当て、パラメータＫの値が大きいほど大きい大きさを有する値に、より最適な符号語を割り当てる。それ故、一般に最適な符号語を割り当てるためには、上記の方法は、残差係数残存大きさの所定の値の出現頻度に応じてパラメータＫの値を決定する。
【０１４２】
開発中のＨＥＶＣ規格においては、残存残差係数大きさの値のような残差係数残存大きさ値の本当の頻度は、前もっては分らないので、パラメータＫの値の推定がサブセット内で行われる。パラメータ化されたゴロム・ライス符号語の正確な復号を確かなものにするために、エンコーダ１００とデコーダ２００は、特定の符号語を復号するためにはパラメータＫの同じ値を使用するように構成することができる。このように、頻度値の推定は、デコーダ２００で入手可能な情報に限られる。
【０１４３】
頻度値の推定は、２つの段階、すなわち、初期推定と適応とからなるものとすることができる。
【０１４４】
初期推定段階は、パラメータＫに対して初期の推定値を与えるものである。適応段階は、残差係数残存大きさの値を復号していき分析用にさらに多くの情報が入手可能になるにつれて、パラメータＫの値にさらなる修正を施すものである。
【０１４５】
初期推定は、より最適な符号語割り当てを確かなものにする。他方、復号の前では残存残差係数大きさの値についての情報は入手不可能なので、通例、初期推定は効率的な方法で実施するのは困難である。初期にパラメータＫの推定値を決定する効率的な方法であれば、符号化効率に相当な改良を施すことができる。
【０１４６】
パラメータＫの初期推定中において、その後の適応がパラメータＫの値に重大な影響を与えず、それ故、省略することができる場合を検出することができる。適応段階は、通例、符号化効率を改善するものである。しかしながら、多くの実際的な場合においては、初期推定がパラメータＫの最適な値をもたらすことからその後の適応は必要でないので、適応は余分なものである。適応段階の不都合な一つの点は、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値の連続した値が並列に復号できないことである。何故なら、前回のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値の復号の後で適応的に推定されるパラメータＫの値を知らずして各値を復号することができないからである。
【０１４７】
以下、変換単位（ＴＵ）のサブセットのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロックを符号化する方法１２５０を図１１及び図１２Ａを参照して説明する。
【０１４８】
方法１２５０は、エンコーダ１００のエントロピー・エンコーダ・モジュール１０４の一部分として実施することができる。上述したように、エンコーダ１００を構成するソフトウェア符号モジュール１０２〜１１２、１１４及び１１５は、ハードディスク・ドライブ３１０に常駐しており、その実行をプロセッサ３０５により制御される。
【０１４９】
方法１２５０を、一例として図７のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロック７０７を参照して説明する。方法１２５０は、０個以上のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値をストリーム部分５０１のブロック７０７に符号化する。
【０１５０】
方法１２５０は、初期化ステップ１２５１において動作を開始し、ゴロム・ライス・パラメータＫは、プロセッサ３０５による実行の下で、エンコーダモジュール１０４により、初期に推定される。Ｋの初期値は、メモリ３０６に記憶することができる。さらに、ステップ１２５１において、エンコーダモジュール１０４は、符号化中におけるパラメータＫに対する適応の必要性を判定する。
【０１５１】
次に、決定ステップ１２５７において、エンコーダモジュール１０４が適応が必要であると判定した場合は、方法１２５０は、ステップ１２５２に進む。適応決定ステップ１２５７の詳細は、後述する。そうでない場合は、方法１２５０は、ステップ１２５５に進む。
【０１５２】
決定ステップ１２５２において、エンコーダモジュール１０４が符号化すべきｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値がさらに有ると判定した場合は、方法１２５０は、ステップ１２５３に進む。そうでない場合は、方法１２５０は、終了する。
【０１５３】
符号化ステップ１２５３において、エンコーダモジュール１０４は、表９００及び１０００を参照して上述したようにゴロム・ライス・パラメータＫの初期値に従ってゴロム・ライス符号語のブロック７０７への符号化を実行する。
【０１５４】
次に、更新ステップ１２５４において、エンコーダモジュール１０４は、次のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値を符号化するのに用いるパラメータＫの値の適応を実行する。パラメータＫの次の値Ｋｎ＋１は、ステップ１２５４において、２つのパラメータ、すなわち、パラメータの現在値Ｋｎ及び最後の復号ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値に基づいて決定される。ステップ１２５４は、図１１に示すようなルックアップテーブル１１００を用いて決定してもよい。ルックアップテーブル１１００は、メモリ３０６及び／又はハードディスク・ドライブ３１０に記憶することができる。ルックアップテーブル１１００は、値Ｋｎを列に、残差係数大きさを行に用いて、Ｋｎ＋１に対する値を提供する。例えば、もしパラメータＫの現在値が１であり、かつ最後の復号ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値が１２であれば、パラメータＫの次の値は３である。
【０１５５】
決定ステップ１２５５において、エンコーダモジュール１０４が符号化すべきｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値がさらに有ると判定した場合は、方法１２５０は、ステップ１２５６に進む。そうでない場合は、方法１２５０は、終了する。
【０１５６】
符号化ステップ１２５６において、エンコーダモジュール１０４は、ゴロム・ライス符号語のブロック７０７への符号化を実行し、符号化ゴロム・ライス符号語をメモリ３０６に記憶する。
【０１５７】
以下、変換単位（ＴＵ）のサブセットのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロックを復号する方法１２００を図１１及び図１２Ｂを参照して説明する。復号は、ゴロム・ライス復号を利用して方法１２００に従って実行する。方法１２００は、デコーダ２００のエントロピー・デコーダ・モジュール２０２〜２０８の一部分として実施することができる。上述したように、デコーダ２００を構成するソフトウェア符号モジュール２０２〜２０８及び２１０は、ハードディスク・ドライブ３１０に常駐しており、その実行をプロセッサ３０５により制御される。
【０１５８】
方法１２００を、一例として図７のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロック７０７を参照して説明する。方法１２００は、０個以上のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値（すなわち、残差係数残存大きさの値）をビットストリーム部分５０１のブロック７０７から復号する。
【０１５９】
方法１２００は、初期化ステップ１２０１において動作を開始し、ゴロム・ライス・パラメータＫは、プロセッサ３０５による実行の下で、デコーダモジュール２０２により、初期に決定される。さらに、ステップ１２０１において、デコーダモジュール２０２は、復号中におけるパラメータＫに対する適応の必要性を判定する。ステップ１２０１は、ステップ１２５１と同様である。
【０１６０】
次に、決定ステップ１２０７において、デコーダモジュール２０２が適応が必要であると判定した場合は、後述するように、方法１２００は、ステップ１２０２に進む。そうでない場合は、方法１２００は、ステップ１２０５に進む。
【０１６１】
次に、決定ステップ１２０２において、デコーダモジュール２０２が復号すべきｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値がさらに有ると判定した場合は、方法１２００は、ステップ１２０３に進む。そうでない場合は、方法１２００は、終了する。
【０１６２】
復号ステップ１２０３において、デコーダモジュール２０２は、メモリ３０６に記憶されているブロック７０７からのゴロム・ライス符号語の復号を実行する。
【０１６３】
次に、更新ステップ１２０４において、デコーダモジュール２０２は、サブセットの次のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のボロム・ライス復号に用いるパラメータＫの値の適応を実行する。テップ１２０４において実行される適応の手順は、上述のステップ１２５４において用いられるものと同様である。
【０１６４】
決定ステップ１２０５において、デコーダモジュール２０２が復号すべきｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値がさらに有ると判定した場合は、方法１２００は、ステップ１２０６に進む。そうでない場合は、方法１２００は、終了する。
【０１６５】
復号ステップ１２０６において、デコーダモジュール２０２は、ゴロム・ライス復号を用いて、ブロック７０７からのゴロム・ライス符号語の復号を実行する。復号ゴロム・ライス符号語は、メモリ３０６に記憶することができる。
【０１６６】
以下、残存残差係数大きさ値の適応復号及び非適応復号を、図１４Ａ及び図１４Ｂを参照して説明する。
【０１６７】
図１４Ａは、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ２値化器１４００を示す。２値化器モジュール１４００は、コンピュータシステム３００内で実行可能なソフトウェアにより様々な機能モジュール１４１４、１４１３、１４０６、１４０７及び１４１０を実施することのできるコンピュータシステム３００を用いて実施することができる。あるいは、２値化器１４００は、コンピュータシステム３００内の専用ハードウエアにより実施することができる。さらに別の方法として、２値化器１４００は、コンピュータシステム３００内の専用ハードウエアとコンピュータシステム３００内で実行可能なソフトウェアとの組み合わせにより実施することができる。
【０１６８】
２値化器１４００は、デコーダ２００のデコーダモジュール２０２の一部分として構成することができる。あるいは、２値化器１４００は、デコーダ１００のエンコーダモジュール１０４の一部分として構成してもよい。
【０１６９】
２値化器１４００は、変換単位（ＴＵ）のサブセットの残存残差係数大きさ値を復号する。２値化器１４００は、パラメータＫの適応的推定を利用する。２値化器１４００は、パラメータＫの初期推定を上述のように実行する「Ｋ０の初期推定」モジュール１４１４を含む。
【０１７０】
モジュール１４１３は、残存残差係数大きさＶ０を復号する。モジュール１４１４は、入力ゴロム・ライス符号語１４０２及びパラメータＫの初期推定値１４０１を受け入れる。モジュール１４１３が復号を完了するとすぐに、復号残存残差係数大きさ値１４１２が、図１４Ａに示すように出力される。
【０１７１】
モジュール１４０６は、パラメータＫの初期推定値１４０１及び上述のようにモジュール１４０３により復号された値１４０４に基づいてパラメータＫの値の適応を実行する。
【０１７２】
モジュール１４０７は、残存残差係数大きさＶ１を復号する。モジュール１４０７は、入力としてゴロム・ライス符号語１４０３及びパラメータＫの推定値１４０５を受け入れる。モジュール１４０７が復号を完了するとすぐに、復号残存残差係数大きさ値１４１１が、出力される。
【０１７３】
モジュール１４１０は、パラメータＫの前回の値１４０５及びモジュール１４０７により復号された値１４０８に基づいてパラメータＫの値の適応を実行する。
【０１７４】
パラメータＫの推定値１４０９は、次のゴロム・ライス復号及び適応モジュール１４１５により使用することができる。モジュール１４１０はモジュール１４０７により提供されるデータに依存し、モジュール１４０７はモジュール１４０６により提供されるデータに依存し、モジュール１４０６はモジュール１４１３により提供されるデータに依存する。このように、復号モジュール１４１３及び１４１０の並列実行は、困難である。さらに、復号及び適応モジュール１４１５も、パラメータＫの前回の推定値と共に入力データ１４１６に依存する。しかしながら、ステップ１４０６及び１４１０のような適応ステップは、もしパラメータＫの値がすでに最適になっている場合は、パラメータＫの実際の値には影響を及ぼさない。不要な場合に適応ステップを避けることにより、符号化効率にあまり影響を与えることなく復号スループットを改善することができる。
【０１７５】
図１４Ｂは、別のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ２値化器１４５０を示す。また、２値化器モジュール１４５０は、コンピュータシステム３００内で実行可能なソフトウェアにより様々な機能モジュール１４１４、１４１３、１４０６、１４０７及び１４１０を実施することのできるコンピュータシステム３００を用いて実施することができる。あるいは、２値化器１４５０は、コンピュータシステム３００内の専用ハードウエアにより実施することができる。さらに別の方法として、２値化器１４５０は、コンピュータシステム３００内の専用ハードウエアとコンピュータシステム３００内で実行可能なソフトウェアとの組み合わせにより実施することができる。
【０１７６】
また、２値化器１４５０は、デコーダ２００のデコーダモジュール２０２の一部分として構成することができる。あるいは、２値化器１４５０は、デコーダ１００のエンコーダモジュール１０４の一部分として構成してもよい。
【０１７７】
２値化器１４５０は、パラメータＫの適応的推定を利用しない。２値化器１４５０は、１クロックサイクルあたり複数の残差係数を復号することによって並列処理を達成する。
【０１７８】
モジュール１４５８は、上述のようにパラメータＫの初期推定を行う。
【０１７９】
モジュール１４５４は、上述のように、残存残差係数大きさＶ０を復号する。
【０１８０】
そして、モジュール１４５４は、入力ゴロム・ライス符号語１４５２及びパラメータＫの初期推定値１４５１を受け入れる。モジュール１４５６は、残存残差係数大きさＶ１を復号する。モジュール１４５６は、入力として、ゴロム・ライス符号語１４５３及びパラメータＫの初期推定値１４５１を受け入れる。
【０１８１】
さらなる復号モジュール１４６０もまた、その対応する入力ゴロム・ライス符号語１４５９及びパラメータＫの初期推定値１４５１を受け入れることになる。
【０１８２】
モジュール１４５４、１４５６及びすべてのさらなるデコーダモジュール１４６０は、データ依存性は無く、並列に実行することができる。
【０１８３】
以下、変換単位（ＴＵ）のサブセットのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ値のブロックを復号するためのパラメータＫの値を決定する方法１３００を図１３を参照して説明する。
【０１８４】
方法１３００は、エンコーダ１００とデコーダ２００の両方により用いられ、データの正確な復号を保証するものである。このように、方法１３００は、エンコーダ１００のエントロピー・エンコーダ・モジュール１０４の一部分として実施することができる。さらに、方法１３００は、デコーダ２００のエントロピー・デコーダ・モジュール２０２の一部分として実施することができる。
【０１８５】
方法１３００を、一例として、デコーダ２００に関して説明する。
【０１８６】
方法１３００は、ステップ１３０１において動作を開始し、デコーダモジュール２０２は、プロセッサ３０５による実行の下で、変換単位（ＴＵ）の現在のサブセット及び前回に復号されたサブセットの，前回に復号済みの情報を分析する。現在のサブセットの復号済みの情報は、メモリ３０６からアクセスすることができる。ステップ１３０１の詳細は後述する。
【０１８７】
次に、ステップ１３０２において、デコーダモジュール２０２は、復号が適応を使用するかどうかを判定し、かつパラメータＫの値を決定する。ステップ１３０２の詳細は後述する。
【０１８８】
ステップ１３０３において、ステップ１３０２で推定されたパラメータＫの値は、デコーダモジュール２０２によって、パラメータＫを保持するメモリ３０６内に設定されている変数に割り当てられる。ステップ１３０３の後で、方法１３００は終了する。
【０１８９】
ある実施態様においては、ステップ１３０１は、現在のサブセット中の非ゼロ残差係数の個数が所定の閾値Ｔよりも大きいかどうかを分析することができる。非ゼロ（有意）残差係数の個数が所定の閾値Ｔよりも大きい場合は、パラメータＫは、オフセット値Ｋｏｆｆｓｅｔが割り当てられる。このオフセット値により、パラメータＫが、０からＫｏｆｆｓｅｔの値だけオフセットしている非ゼロ値を有することになる。Ｋｏｆｆｓｅｔの値は、所定値として１に設定することができる。そうでない場合は、パラメータＫは、ゼロ設定値Ｋｚｅｒｏが割り当てられる。
【０１９０】
ＨＥＶＣテストモデル６．０（「ＨＭ−６．０」）においては、上記決定をするために用いられる閾値Ｔは、１４になると思われる。パラメータＫのオフセット値Ｋｏｆｆｓｅｔは、１になると思われ、ゼロ設定値Ｋｚｅｒｏは、０になると思われる。
【０１９１】
別の実施態様においては、量子化パラメータＱの値と現在のサブセットＩの指数は、ステップ１３０１において分析されることになる。そのような実施態様においては、量子化パラメータＱの値が所定の閾値ＴＱよりも小さく、かつサブセット指数Ｉの値が所定の閾値Ｉｓｕｂｓｅｔよりも小さい場合、パラメータＫは、オフセット値Ｋｏｆｆｓｅｔが割り当てられる。そうでない場合は、パラメータＫは、ゼロ設定値Ｋｚｅｒｏが割り当てられる。
【０１９２】
ＨＥＶＣテストモデル６．０（「ＨＭ−６．０」）においては、上記決定をするために用いられる量子化パラメータの閾値ＴＱは、１０になると思われ、上記決定をするために用いられるサブセット指数の値Ｉｓｕｂｓｅｔは、１になると思われる。パラメータＫのオフセット値Ｋｏｆｆｓｅｔは、１になると思われ、ゼロ設定値Ｋｚｅｒｏは、０になると思われる。
【０１９３】
変換単位の幅と高さの値は、ステップ１３０１においてさらに分析される。そのような実施態様においては、変換単位の幅と高さの値が所定の閾値Ｔｗｉｄｔｈ及びＴｈｅｉｇｈｔよりも大きい場合、パラメータＫは、オフセット値Ｋｏｆｆｓｅｔが割り当てられる。そうでない場合は、パラメータＫは、ゼロ設定値Ｋｚｅｒｏが割り当てられる。
【０１９４】
ＨＥＶＣテストモデル６．０（「ＨＭ−６．０」）においては、上記決定をするために用いられる変換単位の幅と高さの閾値Ｔｗｉｄｔｈ及びＴｈｅｉｇｈｔは、８及び８になると思われる。パラメータＫのオフセット値Ｋｏｆｆｓｅｔは、１になると思われ、ゼロ設定値Ｋｚｅｒｏは、０になると思われる。
【０１９５】
サブセットの符号化又は復号中に適応を使用することについての決定は、ステップ１３０２においてサブセットの指数に基づいて行うことができる。当該指数が所定の値Ｉｍａｘに等しいか又は大きい場合、エンコーダ方法１２５０のステップ１２５７及びデコーダ方法１２００のステップ１２０７において、当該方法は、デコーダのステップ１２０５とエンコーダのステップ１２５５に進み、パラメータＫの適応を使用しない。固定のライスパラメータＫを有することは、依存性のないゴロム・ライス符号化又は復号として考えることができる。そうでない場合は、当該方法は、方法１２００のステップ１２０２と方法１２５０のステップ１２５２に進み、パラメータＫの適応を使用する。適応的ライスパラメータＫを有することは、依存型ゴロム・ライス符号化又は復号として考えることができる。
【０１９６】
ＨＥＶＣテストモデル６．０（「ＨＭ−６．０」）においては、指数の閾値Ｉｍａｘは、６になると思われる。図１５は、６である指数の閾値Ｉｍａｘが、ステップ１３０２においてサブセットの符号化又は復号中に適応を使用することについての決定をするために用いられる変換単位の例１５００を示す。図１５の例においては、後方斜め方向走査パターンを想定する。変換単位１５００は、サブセット１５１０のように１６個のサブセットに分割されている。図１５における各サブセットは、文字「Ａ」又は文字「Ｆ」で印が付けられており、文字「Ａ」で印が付けられたサブセットは、適応的ライスパラメータＫを用いて符号化及び復号されるサブセットを示す。他方、文字「Ｆ」で印が付けられたサブセットは、ステップ１３０２において６である指数の閾値Ｉｍａｘを用いたとき、固定のライスパラメータＫを用いるサブセットを示す。指数の閾値Ｉｍａｘが６であるということは、「Ａ」のサブセットはサブセット内で適応的ライスパラメータＫを使用するという結果になる。文字「Ｆ」で印が付けられたサブセットは、指数の閾値Ｉｍａｘが６であるということが、サブセットが固定のライスパラメータを使用するという結果になる、ＴＵ１５００内の位置に存在するサブセットを示す。指数の閾値Ｉｍａｘは、ＴＵ１５００内のすべてのサブセットに関して同一であり、ＴＵ１５００内のサブセットの位置を閾値と比較することによって、適応的ライスパラメータを符号化及び復号に使用すべきかどうかを決定する。閾値Ｉｍａｘは、図１５における適応的サブセットと固定サブセットとの間の境界を選択するために用いられる。サブセットの順序は、左上のサブセット１５２０における０から始まり、サブセット１５３０を１とし、サブセット１５４０を２とするように逆走査順序で進行する。
【０１９７】
他の実施態様においては、サブセットの符号化又は復号中において適応を使用するかどうかの決定を、ステップ１３０２において、前回に符号化され又は復号されたサブセットにおいて１よりも大きい残差係数の個数Ｇ１及び２よりも大きい残差係数の個数Ｇ２に基づいて行う。しかしながら、そのような方法は、前回に符号化され又は復号されたサブセットがない場合には当てはまらない。前回に符号化され又は復号されたサブセットがある場合、値（Ｇ２−Ｇ１）が所定の閾値Ｔ２１よりも大きいとき、エンコーダ方法１２５０のステップ１２５７（又はデコーダ方法１２００のステップ１２０７）において、方法１２５０は、エンコーダ方法１２５０のステップ１２５５（又はデコーダ方法１２００のステップ１２０５）に進み、パラメータＫの適応を使用しない。そうでない場合は、方法１２５０は、エンコーダ方法１２５０のステップ１２５２に進み（又は方法１２００は、デコーダ方法１２００のステップ１２０２に進み）、パラメータＫの適応を使用する。
【０１９８】
ＨＥＶＣテストモデル６．０においては、指数の閾値Ｔ２１は、４になると思われる。
【０１９９】
ビデオエンコーダ１００に適用されるときの方法１２５０及び１３００並びにビデオデコーダ２００に適用されるときの方法１２００及び１３００により、フレームデータ１０１のようなフレームデータのより効率的な圧縮を実現することが可能になる。さらに、上述した方法により、符号化ビットストリーム１１３のような符号化ビットストリームを解析するスループットの増大を実現することが可能になる。フレームデータのより効率的な圧縮は、より短い符号語が符号化記号に割り当てられるのを可能にするゴロム・ライス・パラメータＫの良好な推定を使用することによって生じる。より高いスループットは、符号語間のデータ依存性を除去することにより２個以上の符号語を復号することができるゴロム・ライス符号語を復号する上述の方法を用いることを実施可能にすることにより達成することができる。
【産業上の利用可能性】
【０２００】
上述した構成は、コンピュータ及びデータ処理産業に適用可能であり、特に、ビデオ信号のような信号の符号化及び復号のためのデジタル信号処理に適用可能である。
【０２０１】
前述の説明は、本発明のいくつかの実施形態についてのみの説明であり、本発明の範囲と精神を逸脱しない限り各実施形態を変形及び／又は変更することが可能であり、各実施形態は、一例であって、限定的なものではない。
【０２０２】
本明細書の文脈において、単語「ｃｏｍｐｒｉｓｉｎｇ（具備する、包含する、含む）」は、「主に含むであり、必ずしもそれのみということでなく含む」、「有する」又は「含む」を意味し、「〜のみからなる」ということを意味しない。単語「ｃｏｍｐｒｉｓｉｎｇ」の変形、例えば「ｃｏｍｐｒｉｓｅ」や「ｃｏｍｐｒｉｓｅｓ」、は、それ相応に変更した意味を有する。
【図１】
2018078625.tif 000002
【図２】
2018078625.tif 000003
【図３Ａ】
2018078625.tif 000004
【図３Ｂ】
2018078625.tif 000005
【図４Ａ】
2018078625.tif 000006
【図４Ｂ】
2018078625.tif 000007
【図５】
2018078625.tif 000008
【図６Ａ】
2018078625.tif 000009
【図６Ｂ】
2018078625.tif 000010
【図７】
2018078625.tif 000011
【図８Ａ】
2018078625.tif 000012
【図８Ｂ】
2018078625.tif 000013
【図９】
2018078625.tif 000014
【図１０】
2018078625.tif 000015
【図１１】
2018078625.tif 000016
【図１２Ａ】
2018078625.tif 000017
【図１２Ｂ】
2018078625.tif 000018
【図１３】
2018078625.tif 000019
【図１４Ａ】
2018078625.tif 000020
【図１４Ｂ】
2018078625.tif 000021
【図１５】
2018078625.tif 000022