(57)【要約】      （修正有）【課題】画像の再構成サンプルの組に補償オフセットを与えるための方法及び装置を提供する。【解決手段】複数のサンプルのサンプル値の取り得る範囲の半分より小さいサンプル適応オフセットの処理の対象範囲の端部位置を、当該サンプル値の取り得る範囲の中から決定するステップと、サンプル適応オフセットの処理の対象範囲を構成する４つの連続する部分範囲のそれぞれに対応する複数のサンプル値に適用するためのものであって、４つの連続する部分範囲にそれぞれ対応するオフセット値を決定するステップと、サンプル適応オフセットのタイプがバンドオフセットであることを示す情報、端部位置及び４つの連続する部分範囲にそれぞれ対応するオフセット値を、サンプル適応オフセットの処理を実行するためのパラメータとして符号化する符号化ステップと、を備える。符号化ステップにおいて、端部位置は、固定長のコードで符号化される。【選択図】図８
2020022183.tif 000002
【特許請求の範囲】
【請求項１】
複数のサンプルから構成された画像データに対してサンプル適応オフセットの処理を実行するための情報を符号化する方法において、
前記複数のサンプルのサンプル値の取り得る範囲の半分より小さい前記サンプル適応オフセットの処理の対象範囲の端部位置を、当該サンプル値の取り得る範囲の中から決定するステップと、
前記サンプル適応オフセットの処理の対象範囲を構成する４つの連続する部分範囲のそれぞれに対応する複数のサンプル値に適用するためのものであって、前記４つの連続する部分範囲にそれぞれ対応するオフセット値を決定するステップと、
サンプル適応オフセットのタイプがバンドオフセットであることを示す情報、前記端部位置、および、前記４つの連続する部分範囲にそれぞれ対応するオフセット値を、前記サンプル適応オフセットの処理を実行するためのパラメータとして符号化する符号化ステップと、
を備え、
前記符号化ステップにおいて、前記端部位置は固定長のコードで符号化されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の再構成サンプルの組に補償オフセットを与えるための方法および装置に関する。本発明は、一連のデジタル画像をエンコードするまたはデコードするための方法および装置に更に関連する。
【０００２】
本発明は、デジタル信号処理の分野、特に、ビデオストリームにおける空間的冗長性および時間的冗長性を減少させるために動き補償を使用するビデオ圧縮の分野で適用してもよい。
【背景技術】
【０００３】
多くのビデオ圧縮フォーマット、例えばＨ．２６３、Ｈ．２６４、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＳＶＣは、ブロックに基づく離散コサイン変換（ＤＣＴ）および動き補償を使用して、空間的冗長性および時間的冗長性を除去する。これらの圧縮フォーマットはしばしば予測ビデオフォーマットと称される。ビデオ信号のフレームまたは画像のそれぞれは、エンコードされて独立にデコードされ得るスライスへと分けられる。スライスは、一般に、フレームの長方形部分であり、あるいは、より一般的には、フレームまたはフレーム全体の一部分である。更に、各スライスはマクロブロック（ＭＢ）へと分けられてもよく、各マクロブロックは、ブロックへと、一般に６４×６４ピクセル、３２×３２ピクセル、１６×１６ピクセル、または、８×８ピクセルのブロックへと更に分けられる。
【０００４】
Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）では、６４×６４から４×４までのブロックが使用される場合がある。分割は、最大符号化単位（ＬＣＵ）に基づく四分木構造に従って編成される。ＬＣＵは６４×６４の正方形ブロックに対応する。ＬＣＵを分ける必要がある場合、分割フラグは、ＬＣＵが４つの３２×３２ブロックへと分割されることを示す。同様に、これらの４つのブロックのうちのいずれかを分割する必要がある場合には、分割フラグは真に設定され、３２×３２ブロックは４つの１６×１６ブロックへと分けられ、以下同様である。分割フラグが偽に設定されるとき、現在のブロックは符号化単位ＣＵである。ＣＵは、６４×６４ピクセル、３２×３２ピクセル、１６×１６ピクセル、または、８×８ピクセルに等しいサイズを有する。
【０００５】
画像のブロックをコーディングするための２つのコーディングモード群、すなわち、イントラ予測と称される空間予測に基づくコーディングモードと、時間的予測に基づくコーディングモード（ＩＮＴＥＲ、Ｍｅｒｇｅ、Ｓｋｉｐ）とがある。空間予測モードおよび時間的予測モードのいずれにおいても、オリジナルブロックから予測を差し引くことによって残差が計算される。
【０００６】
イントラブロックは、一般に、その因果境界でエンコードされたピクセルからイントラ予測プロセスによって予測される。イントラ予測では、予測方向がエンコードされる。
【０００７】
時間的予測は、エンコードされるべきブロックに最も近いビデオシーケンス、画像部分、または、基準領域の前のフレームまたは後のフレームのいずれかを基準フレーム内で見つけることにある。このステップは動き推定として一般に知られている。次に、エンコードされるべきブロックは、一般に動き補償と称されるステップにおいて基準領域を使用して予測される−エンコードされるべきブロックと基準部分との間の差分が、動き補償のために使用すべき基準領域を示す動きベクトルに関連する動き情報の項目と共にエンコードされる。時間的予測では、少なくとも１つの動きベクトルがエンコードされる。
【０００８】
動き情報をエンコードするコストを更に低減するために、動きが均一であると考えると、動きベクトルを直接にエンコードするのではなく、動きベクトルは、一般に、エンコードされるべきブロックを取り囲むブロックの１つ以上の動きベクトルから計算される動きベクトル予測子と、動きベクトルとの間の差分の観点からエンコードされてもよい。
【０００９】
Ｈ．２６４においては、例えば、動きベクトルは、エンコードされるべきブロックの因果的隣接に位置する動きベクトルから計算される、例えばエンコードされるべきブロックの上方及び左に位置する３つのブロックから計算されるメジアン予測子に対してエンコードされる。エンコーディングコストを低減するために、メジアン予測子と現在のブロック動きベクトルとの間の残差動きベクトルと称される差分だけがビットストリームにおいてエンコードされる。
【００１０】
残差動きベクトルを使用するエンコーディングは、幾らかのビットレートを節約するが、デコードされるべきブロックの動きベクトルの値をデコードするためにデコーダが動きベクトル予測子の同じ計算を行なうことを必要とする。
【００１１】
エンコーディングプロセスおよびデコーディングプロセスはいずれも、エンコードされた画像のデコーディングプロセスを伴う場合がある。このプロセスは、一般に、エンコーダおよび対応するデコーダが同じ基準フレームを有することができるようにする後の動き推定のためにエンコーダ側で行なわれる。コーディングされたフレームを再構成するために、残差は、「デコードされた」残差がピクセルドメインにおいて与えられるように逆量子化され逆変換される。その後、最初の再構成が１つまたは幾つかの種類のポストフィルタリングプロセスによってフィルタ処理される。これらのポストフィルタは、同じ基準フレームがエンコーダおよびデコーダの両方の側で使用されるように、エンコーダおよびデコーダの側で再構成フレームに対して適用される。このポストフィルタリングの目的は、圧縮アーチファクトを除去することである。例えば、Ｈ．２６４／ＡＶＣはデブロッキングフィルタを使用する。このフィルタは、残差のＤＣＴ量子化とブロック動き補償とに起因するブロッキングアーチファクトを除去できる。現在のＨＥＶＣ標準規格では、３つのタイプのループフィルタ、すなわち、デブロッキングフィルタ、サンプル適応オフセット（ＳＡＯ）、および、適応ループフィルタ（ＡＬＦ）が使用される。
【００１２】
図１は、知られているＨＥＶＣ実施態様のループフィルタリングプロセスのステップを示すフローチャートである。最初のステップ１０１において、エンコーダまたはデコーダが全フレームの再構成を生成する。次に、ステップ１０２において、非ブロック化された再構成１０３を生成するために、この第１の再構成に対してデブロッキングフィルタが適用される。デブロッキングフィルタの目的は、残差量子化およびブロック動き補償またはブロックイントラ予測によって生成されたブロックアーチファクトを除去することである。これらのアーチファクトは、低いビットレートで視覚的に重要である。デブロッキングフィルタは、２つの隣接するブロックの特徴に従ってブロック境界を滑らかにするように動作する。各ブロックのエンコーディングモード、残差コーディングのために使用される量子化パラメータ、および、境界における隣接するピクセル差分が考慮に入れられる。全てのフレームに関して同じ基準／分類が適用され、追加のデータが送信されない。デブロッキングフィルタは、ブロッキングアーチファクトを除去することによって現在のフレームの視覚的な質を向上させるとともに、その後のフレームに対する動き推定および動き補償を向上させる。実際に、ブロックアーチファクトの高周波が除去され、そのため、これらの高周波を後段のフレームのテクスチャ残差を用いて補償する必要がない。
【００１３】
デブロッキングフィルタの後、非ブロック化された再構成は、ステップ１０４において、サンプル適応オフセット（ＳＡＯ）ループフィルタによってフィルタ処理される。結果として得られるフレーム１０５は、その後、ステップ１０６において適応ループフィルタ（ＡＬＦ）を用いてフィルタ処理されて再構成フレーム１０７を生成し、再構成フレーム１０７は表示され後段のインターフレームに対する基準フレームとして使用されることになる。
【００１４】
ＳＡＯループフィルタおよびＡＬＦの目的は、情報が送信されないデブロッキングフィルタとは反対に追加のデータを送ることによってフレーム再構成を向上させることである。
【００１５】
ＳＡＯループフィルタの原理は、各ピクセルをクラスへと分類すること、およびクラスの各ピクセルのそれぞれのピクセル値に同じオフセット値を加えることである。したがって、１つのオフセットが、それぞれのクラスごとに送信される。ＳＡＯループフィルタリングは、フレーム領域のための２つの種類の分類、すなわち、エッジオフセットおよびバンドオフセットを与える。
【００１６】
エッジオフセット分類は、ピクセルの対応するピクセル値と２つの隣接するピクセルのピクセル値とを比較することによって、それぞれのピクセルごとにクラスを決定することを伴う。また、２つの隣接するピクセルは、２つの隣接するピクセルの方向を示すパラメータに依存する。これらの方向は、０度（水平方向）、４５度（対角方向）、９０度（垂直方向）、および１３５度（第２の対角方向）である。以下、これらの方向は、エッジオフセット分類の「タイプ」と呼ばれる。
【００１７】
第２のタイプの分類は、ピクセル値に依存するバンドオフセット分類である。ＳＡＯバンドオフセットにおけるクラスは、ピクセル値の範囲に対応する。したがって、同じオフセットが、ピクセル値の所与の範囲内にピクセル値を有する全てのピクセルに加えられる。
【００１８】
フレームコンテンツに更に適応できるように、四分木構造に基づいてＳＡＯフィルタリングを適用してＳＡＯをエンコードすることが提案されてきた。その結果、四分木のリーフノードに対応するフレーム領域は、一部の領域だけがフィルタ処理されるように、ＳＡＯによってフィルタ処理されてもよくまたはフィルタ処理されなくてもよい。また、ＳＡＯが使用可能なときには、１つのＳＡＯ分類だけ、すなわち、それぞれの分類ごとに送信される関連パラメータに従ってエッジオフセットまたはバンドオフセットだけが使用される。最後に、それぞれのＳＡＯリーフノードごとに、ＳＡＯ分類ならびにそのパラメータおよび全てのクラスのオフセットが送信される。四分木の主な利点は、信号の局所的な特性に効率的に追従する点である。しかしながら、四分木は、ビットストリームにおいて専用のエンコーディングを必要とする。ＳＡＯパラメータの四分木に基づくエンコーディングをＬＣＵレベルでのエンコーディングに置き換える別の解決策も想起できる。
【００１９】
エンコードされるべきビデオデータの画像は、サンプル値の二次元配列（色チャネルとしても知られている）の組として与えられてもよく、サンプル値の各入力は、輝度および中間のグレースケール色から青または赤への色差の指標（ＹＵＶ）、あるいは、赤、緑、または、青の光成分強度の指標（ＲＧＢ）などの色成分の強度を表わす。ＹＵＶモデルは、１つのルマ（Ｙ）成分および２つのクロミナンス（ＵＶ）成分の観点から色空間を規定する。一般的に、Ｙはルマ成分（輝度）を表わし、ＵおよびＶはクロミナンス（色）成分またはクロマ成分である。
【００２０】
ＳＡＯフィルタリングは、一般に、ルマ成分に対してかつＵおよびＶの両方のクロマ成分に対して独立に適用される。
【００２１】
ＳＡＯバンドオフセットの知られている実施態様は、図２に描かれているように、ピクセル値の範囲を同じサイズの予め規定された３２個の範囲へと分割する。ピクセル値の範囲の最小値は系統的に０であり、最大値は、関係Ｍａｘ＝２Ｂｉｔｄｅｐｔｈ−１に従ったピクセル値のビット深度に依存する。例えば、ビット深度が８ビットである場合、ピクセルの最大値は２５５であり得る。したがって、ピクセル値の範囲は０から２５５の間である。８ビットのこのビット深度に関して、各クラスは１６個のピクセル値の範囲を含む。また、ＳＡＯバンドオフセットに関しては、クラスの２つのグループが考慮される。第１のグループは、図２に灰色で描かれているようにピクセル値の範囲の中心に１６個の連続するクラスを含む。また、第２のグループは、図２に斜線で描かれているようにピクセル値の範囲の両端部に１６個のクラスを含む。フレーム領域のＳＡＯバンドオフセットに関しては、分類のために使用されるグループおよび１６個のオフセットがビットストリームに挿入される。
【００２２】
図３は、現在のフレーム領域３０３に関してエンコーダでオフセットを選択するための方法のステップを示すフローチャートである。フレーム領域はＮ個のピクセルを含む。最初のステップ３０１において、変数ｊＳｕｍおよびｊＳｕｍＮｂＰｉｘが、１６個のそれぞれの範囲ごとにゼロの値に設定される。ｊは現在の範囲またはクラス数を示す。
【００２３】
ｊＳｕｍは、範囲ｊ内のピクセルの値とそれらの対応するオリジナルピクセルの値との間の差分の合計を示す。ｊＳｕｍＮｂＰｉｘは、範囲ｊ内のピクセルの数を示す。
【００２４】
ステップ３０２において、カウンタ変数ｉが値ゼロに設定される。次に、ステップ３０４において、フレーム領域３０３の最初のピクセルが抽出される。処理されている現在のＳＡＯグループは知られていると考える（図２に描かれている１番目または２番目）。ステップ３０５において、ピクセル値ｉＰが現在のＳＡＯグループにないことが決定される場合には、ステップ３０８において、フレーム領域３０３のその後のピクセルを分類するためにカウンタ変数ｉ値がインクリメントされる。さもなければ、ステップ３０５においてピクセル値ｉＰが現在のＳＡＯグループにあることが決定される場合には、ｉ１０Ｐの値に対応する範囲数（またはクラス数）ｊがステップ３０６において見つけられる。その後のステップ３０７において、対応するｊＳｕｍＮｂＰｉｘ変数がインクリメントされ、ｉＰとそのオリジナル値ｏｒｇ  ｉＰとの間の差分がｊＳｕｍに加えられる。後段のステップにおいて、フレーム領域３０３の他のピクセルに分類を適用するために、カウンタ変数ｉがインクリメントされる。ステップ３０９において、フレーム領域３０３のＮ個の全てのピクセルが分類されたか否かが決定され（すなわち、ｉ≧Ｎである）、ｙｅｓの場合には、ステップ３１０において、オフセット選択アルゴリズムの最終結果としてそれぞれのクラスｊごとにオフセットを提示するオフセットテーブル３１１を作るために、それぞれのクラスごとのｊＯｆｆｓｅｔが計算される。このオフセットは、クラスｊのピクセルのピクセル値とそれらのそれぞれのオリジナルピクセル値との間の差分の平均として計算される。クラスｊに関するｊ２０  Ｏｆｆｓｅｔは以下の方程式によって得られる。
【００２５】
ｊｊｊＳｕｍＮｂＰｉｘ  Ｓｕｍ  Ｏｆｆｓｅｔ＝（１）
図４は、クラスの対応するグループにＳＡＯバンドオフセットを適用するデコーディングプロセスのステップを示すフローチャートである。このプロセスは、その後のフレームの動き推定および動き補償のために使用される基準フレームを作るためにエンコーダ側で適用されてもよい。プロセスの最初のステップ４０１は、オフセットテーブル４０２を作るためにピクセル値のそれぞれのクラスごとにオフセット値をデコードすることを伴う。エンコーダ側では、オフセットテーブル４０２は、図３に示されている選択アルゴリズムの結果である。したがって、エンコーダ側では、ステップ４０１が図３のオフセット選択アルゴリズムに置き換えられる。
【００２６】
ステップ４０３において、カウンタ変数ｉが０に設定される。ステップ４０５において、Ｎ個のピクセルを含むフレーム領域４０４からピクセルｉＰが抽出される。ステップ４０６において、ピクセルｉＰがクラスの現在のグループに属するか否かが決定される。ピクセルｉＰがクラスの現在のグループにあることが決定される場合には、関連するクラス数ｊが特定され、ステップ４０９において関連するオフセット値ｊＯｆｆｓｅｔがオフセットテーブル４０２から抽出される。抽出されたオフセット値ｊＯｆｆｓｅｔは、その後、ステップ４１０においてｉＰのピクセル値に加えられて、ステップ４１１において、フィルタ処理されたピクセル値ｉＰ１０’が作られる。フィルタ処理されたピクセル値は、その後、ステップ４１２において、対応するピクセルで、フィルタ処理されたフレーム領域４１５に挿入される。
【００２７】
ステップ４０６においてピクセルｉＰがＳＡＯバンドオフセットグループにないことが決定される場合、ステップ４１２において、ｉＰのピクセル値が、フィルタ処理されたフレーム領域４１５にフィルタリングを伴わずに入れられる。ステップ４１２の後、現在のフレーム領域４０４のその後のピクセルを必要に応じてフィルタ処理するために、カウンタ変数ｉがインクリメントされる。ステップ４１４においてフレーム領域のＮ個の全てのピクセルが処理されたことが決定された後（すなわち、ｉ≧Ｎ）、フィルタ処理されたフレーム領域４１５は、再構成され、ＳＡＯ再構成フレーム（図１のフレーム１０５参照）に加えられ得る。補償の選択のための知られているプロセスの欠点は、それが画像ピクセルコンテンツの異なる変化および画像ピクセルの成分の異なるタイプに適応していないという点である。
【発明の概要】
【発明が解決しようとする課題】
【００２８】
本発明は、前述の問題のうちの１つ以上に対処するように考案された。
【課題を解決するための手段】
【００２９】
本発明の第１の態様によれば、画像の再構成サンプルの組に補償オフセットを与える方法であって、各サンプルはサンプル値を有する方法において、
レート歪み基準に基づいて、複数の予め決定された分類の中から分類を選択するステップであって、前記予め決定された分類のそれぞれは、サンプル値の全範囲よりも小さい分類範囲を有し複数のクラスから構成されており、各クラスは前記分類範囲内のサンプル値の範囲を規定し、サンプルのサンプル値が該当するクラスの範囲内にある場合にはサンプルはそのクラスに入れられる、ステップと、
該当するクラスの各サンプルのサンプル値に適用するための補償オフセットを、上記選択された分類の各クラスと関連付けるステップと、
を備える方法が提供される。
【００３０】
本発明の第２の態様によれば、複数のサンプルから構成された画像をエンコードする方法において、
サンプルをエンコードするステップと、
再構成サンプルを与えるためにエンコードされた上記サンプルをデコードするステップと、
上記再構成サンプルに対してループフィルタリングを行なうステップであって、ループフィルタリングはそれぞれの再構成サンプルのサンプル値に補償オフセットを適用することを含み、各補償オフセットはサンプル値の範囲と関連付けられ、補償オフセットは本発明の前述した第１の態様を具現化する方法に従って与えられる、ステップと、
エンコードされたサンプルのビットストリームを生成するステップと、
を備える方法が提供される。
【００３１】
本発明の第３の態様によれば、複数のサンプルから構成された画像をデコードする方法であって、各サンプルはサンプル値を有する方法において、
エンコードされたサンプル値を受け取るステップと、
エンコードされた分類データを受け取るステップと、
エンコードされた補償オフセットを受け取るステップと、
上記分類データをデコードし、デコードされた分類データに基づいて複数の予め決定された分類の中から分類を選択するステップであって、前記予め決定された分類のそれぞれは、サンプル値の全範囲よりも小さい分類範囲を有し複数のクラスから構成されており、各クラスは前記分類範囲内のサンプル値の範囲を規定し、サンプル値が該当するクラスの範囲内にある場合にはサンプルはそのクラスに入れられる、ステップと、
再構成サンプル値を与えるためにエンコードされた上記サンプルをデコードし、エンコードされた上記補償オフセットをデコードするステップと、
デコードされた上記補償オフセットをそれぞれ、上記選択された分類のクラスと関連付けるステップと、
上記再構成サンプル値に対してループフィルタリングを行なうステップであって、ループフィルタリングは、上記選択された分類の各クラスと関連付けられたデコードされた上記補償オフセットを該当するクラスの範囲内の再構成サンプル値に適用することを含む、ステップと、
を備える方法が提供される。
【００３２】
本発明の第４の態様によれば、ビデオビットストリームにより表わされる画像のための情報データセットを運ぶ信号であって、画像は再構成可能サンプルの組を備え、各再構成可能サンプルはサンプル値を有し、情報データセットは、複数の予め決定された分類の中からエンコーダによって選択された分類に関連する分類データを備え、前記予め決定された分類のそれぞれは、サンプル値の全範囲よりも小さい分類範囲を有し複数のクラスから構成されており、各クラスは前記分類範囲内のサンプル値の範囲を規定し、サンプル値が該当するクラスの範囲内にある場合にはサンプルはそのクラスに入れられ、上記選択された分類の複数のクラスの各クラスは、該当するクラスの範囲内の再構成可能サンプルのサンプル値に適用するための補償オフセットと関連付けられる、信号が提供される。
【００３３】
本発明の第５の態様によれば、画像の再構成サンプルの組に補償オフセットを与えるための装置であって、各サンプルはサンプル値を有する装置において、
レート歪み基準に基づいて、複数の予め決定された分類の中から分類を選択するための手段であって、前記予め決定された分類のそれぞれは、サンプル値の全範囲よりも小さい分類範囲を有し複数のクラスから構成されており、各クラスは前記分類範囲内のサンプル値の範囲を規定し、サンプルのサンプル値が該当するクラスの範囲内にある場合にはサンプルはそのクラスに入れられる、手段と、
該当するクラスの各サンプルのサンプル値に適用するための補償オフセットを、選択された分類の各クラスと関連付けるための手段と、
を備える装置が提供される。
【００３４】
本発明の第６の態様によれば、複数のサンプルから構成された画像をエンコードするためのエンコーディング装置において、
前記サンプルをエンコードするためのエンコーダと、
再構成サンプルを与えるためにエンコードされた前記サンプルをデコードするためのデコーダと、
前記再構成サンプルをフィルタ処理するためのループフィルタであって、ループフィルタリング手段はそれぞれの再構成サンプルのサンプル値に補償オフセットを適用するためのオフセット適用手段を備え、各補償オフセットはサンプル値の範囲と関連付けられ、補償オフセットは本発明の前述した第５の態様を具現化する装置によって与えられる、ループフィルタと、
エンコードされたサンプルのビットストリームを生成するためのビットストリーム生成器と、
を備える装置が提供される。
【００３５】
本発明の第７の態様によれば、複数のサンプルから構成された画像をデコードするための装置であって、各サンプルはサンプル値を有する装置において、
エンコードされたサンプル値を受け取るための手段と、
エンコードされた分類データを受け取るための手段と、
エンコードされた補償オフセットを受け取るための手段と、
前記分類データをデコードし、デコードされた分類データに基づいて複数の予め決定された分類の中から分類を選択するための手段であって、前記予め決定された分類のそれぞれは、サンプル値の全範囲よりも小さい分類範囲を有し複数のクラスから構成されており、各クラスは前記分類範囲内のサンプル値の範囲を規定し、サンプルのサンプル値が該当するクラスの範囲内にある場合にはサンプルはそのクラスに入れられる、手段と、
再構成サンプル値を与えるためにエンコードされたサンプルをデコードし、エンコードされた補償オフセットをデコードするための手段と、
前記デコードされた補償オフセットをそれぞれ、選択された分類のクラスと関連付けるための手段と、
前記再構成サンプル値に対してループフィルタリングを行なうための手段であって、ループフィルタリングは、選択された分類の各クラスと関連付けられたデコードされた補償オフセットを該当するクラスの範囲内の再構成サンプル値に適用することを含む、手段と、を備える装置が提供される。
【００３６】
本発明の第８の態様は、複数のサンプルから構成された画像をデコードする方法であって、各サンプルはサンプル値を有する方法において、
エンコードされたサンプル値を受け取るステップと、
複数の予め決定された分類の中からエンコーダによって選択された分類に関連するエンコードされた分類データを受け取るステップであって、前記予め決定された分類のそれぞれは、サンプル値の全範囲よりも小さい分類範囲を有し複数のクラスから構成されており、各クラスは前記分類範囲内のサンプル値の範囲を規定し、サンプルのサンプル値が該当するクラスの範囲内にある場合にはサンプルはそのクラスに入れられる、ステップと、
前記選択された分類のクラスとそれぞれ関連付けられたエンコードされた補償オフセットを受け取るステップと、
再構成サンプル値を与えるためにエンコードされたサンプル値をデコードし、エンコードされた分類データおよび補償オフセットをデコードするステップと、
再構成サンプル値に対してループフィルタリングを行なうステップであって、ループフィルタリングは、選択された分類の各クラスと関連付けられたデコードされた前記補償オフセットを該当するクラスの範囲内の再構成サンプル値に適用することを含む、ステップと、
を備える方法を提供する。
【００３７】
エンコーダは、レート歪み基準に基づくまたはサンプル値の統計的分布の特性に応じるなどの任意の適した様式で分類を選択してもよい。
【００３８】
本発明の文脈において、サンプルは単一ピクセルに対応してもよく、その場合、サンプル値はそれぞれのピクセル値に対応する。あるいは、サンプルは複数のピクセルを備えてもよく、サンプル値は、複数のピクセルのピクセル値から決定されたピクセル値に対応してもよい。
【００３９】
本発明による方法の少なくとも一部がコンピュータにより実施されてもよい。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または、ソフトウェア態様とハードウェア態様とを組み合わせる実施形態の形態をとってもよく、これらの実施形態は全て、本明細書中では、一般的に、「回路」、「モジュール」、または、「システム」と称されてもよい。また、本発明は、媒体で具現化されるコンピュータ使用可能プログラムコードを有する任意の有形的表現媒体で具現化されるコンピュータプログラムプロダクトの形態をとってもよい。
【００４０】
本発明はソフトウェアで実施され得るため、本発明は、任意の適したキャリア媒体上でプログラム可能機器に与えるためのコンピュータ可読コードとして具現化され得る。有形キャリア媒体は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードディスクドライブ、磁気テープ装置、または、固体メモリ装置および同様のものなどの記憶媒体を備えてもよい。過渡的キャリア媒体は、電気信号、電子信号、光信号、音響信号、磁気信号、または、電磁信号、例えばマイクロ波もしくは無線周波数信号などの信号を含んでもよい。
【００４１】
したがって、本発明の第９の態様によれば、プログラム可能な機器のためのコンピュータプログラムプロダクトであって、プログラム可能な機器に取り込まれプログラム可能な機器によって実行されるときに前述した第１、第２、第３、および、第８の態様のうちのいずれか１つを具現化する方法を実施するための一連の命令を備えるコンピュータプログラムプロダクトが提供される。
【００４２】
本発明の第１０の態様によれば、前述した第１、第２、第３、および、第８の態様のうちのいずれか１つを具現化する方法を実施するためのコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体が提供される。
【００４３】
ここで、以下の図面を参照して、本発明の実施形態を単なる一例として説明する。
【図面の簡単な説明】
【００４４】
【図１】従来技術のループフィルタリングプロセスのステップを示すフローチャートである。
【図２】従来技術のＨＥＶＣプロセスのサンプル適応バンドオフセット分類を図式的に示す図である。
【図３】ＨＥＶＣのＳＡＯバンドオフセットに関する補償オフセットを決定するためのプロセスのステップを示すフローチャートである。
【図４】ＨＥＶＣのＳＡＯバンドオフセットフィルタリングプロセスのステップを示すフローチャートである。
【図５】本発明の１つ以上の実施形態を実施することのできるデータ通信システムを概略的に示すブロック図である。
【図６】本発明の１つ以上の実施形態が実施することのできる処理装置の構成要素を示すブロック図である。
【図７】本発明の実施形態によるエンコーディング方法のステップを示すフローチャートである。
【図８】本発明の１つ以上の実施形態によるループフィルタリングプロセスのステップを示すフローチャートである。
【図９】本発明の実施形態によるデコーディング方法のステップを示すフローチャートである。
【図１０】本発明の第１の実施形態に従ってＳＡＯバンドオフセット分類を決定するための方法のステップを示すフローチャートである。
【図１１】本発明の一実施形態に従って適合分類を決定するための方法のステップを示すフローチャートである。
【図１２】本発明の代替の実施形態に従って適合分類を決定するための方法のステップを示すフローチャートである。
【図１３】本発明の一実施形態による分類のための有用な範囲の幾つかのサイズを示す図である。
【図１４】本発明の一実施形態による分類のためのクラスの幾つかのサイズを示す図である。
【図１５】本発明の一実施形態による分類のための有用な範囲内のクラスの幾つかのサイズを示す図である。
【図１６】本発明の一実施形態による分類のための第１のグループの有用な範囲の幾つかの中心位置を示す図である。
【図１７】本発明の一実施形態による分類のための第２のグループの有用な範囲の幾つかの中心位置を示す図である。
【図１８】本発明の一実施形態によるパラメータ分類のレート歪み選択を示す図である。
【図１９Ａ】本発明の別の実施形態による全範囲内の有用な範囲の想定し得る位置を示す図である。
【図１９Ｂ】本発明の別の実施形態による全範囲内の有用な範囲の想定し得る位置を示す図である。
【図２０Ａ】ＬＣＵレベルでＳＡＯパラメータをエンコードするために従来技術で適用される疑似コードを示す図である。
【図２０Ｂ】ＬＣＵレベルでＳＡＯパラメータをエンコードするための本発明の一実施形態による改良された疑似コードを示す図である。
【図２１】図２０Ａの疑似コードに対応するフローチャートである。
【図２２】図２０Ｂの疑似コードに対応するフローチャートである。
【図２３】本発明の更なる実施形態によるＳＡＯパラメータのエンコーディングを説明するのに用いるためのフローチャートである。
【図２４】本発明の更なる別の実施形態に従ってＳＡＯパラメータをエンコードするために使用される疑似コードを示す図である。
【図２５】図２４の疑似コードに対応するフローチャートである。
【図２６】本発明のなお更なる実施形態によるＳＡＯパラメータのエンコーディングを説明するのに用いるためのフローチャートである。
【発明を実施するための形態】
【００４５】
図５は、本発明の１つ以上の実施形態を実施することのできるデータ通信システムを示す。データ通信システムは、データストリームのデータパケットを、データ通信ネットワーク５００を介して受信装置へ、この場合にはクライアント端末５０２へ送信するように動作可能な送信装置、この場合にはサーバ５０１を備える。データ通信ネットワーク５００はＷｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）またはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）であってもよい。そのようなネットワークは、例えば、無線ネットワーク（Ｗｉｆｉ／８０２．１１ａまたはｂまたはｇ）、イーサネット（登録商標）ネットワーク、インターネットネットワーク、または、幾つかの異なるネットワークから構成された混合ネットワークであってもよい。本発明の特定の実施形態において、データ通信システムは、サーバ５０１が多数のクライアントへ同じデータコンテンツを送るデジタルテレビ放送システムであってもよい。
【００４６】
サーバ５０１によって与えられるデータストリーム５０４は、ビデオデータおよび音声データを表わすマルチメディアデータから構成されていてもよい。音声・ビデオデータストリームは、本発明の幾つかの実施形態において、マイクロホンおよびカメラをそれぞれ使用してサーバ５０１によって捉えられてもよい。幾つかの実施形態において、データストリームは、サーバ５０１に記憶されてもよく、または、別のデータプロバイダからサーバ５０１によって受け取られてもよく、または、サーバ５０１で生成されてもよい。サーバ５０１にはエンコーダが設けられ、このエンコーダは、特に、エンコーダへ入力として渡されるデータをよりコンパクトに表示する送信用の圧縮ビットストリームを与えるように、ビデオ・音声ストリームをエンコードするためのものである。
【００４７】
送信データの量に対する送信データの質のより良好な比率を得るために、ビデオデータの圧縮は、例えばＨＥＶＣフォーマットまたはＨ．２６４／ＡＶＣフォーマットに従ってもよい。クライアント５０２は、送信されたビットストリームを受け取り、再構成ビットストリームをデコードして、ビデオ画像をディスプレイ装置で再生し音声データをラウドスピーカによって再生する。
【００４８】
図５の例ではストリーミングシナリオが考慮されているが、本発明の幾つかの実施形態において、例えば光ディスクなどの媒体記憶装置を使用してエンコーダとデコーダとの間のデータ通信が行なわれてもよいことが理解される。
【００４９】
本発明の１つ以上の実施形態において、ビデオ画像は、フィルタ処理されたピクセルを最終画像において与えるために、画像の再構成ピクセルに適用するための補償オフセットを表わすデータで送信される。
【００５０】
図６は、本発明の少なくとも１つの実施形態を実施するように構成された処理装置６００を概略的に示す。処理装置６００は、マイクロコンピュータ、ワークステーション、または、軽量携帯装置などの装置であってもよい。装置６００は通信バス６１３を備え、通信バス６１３は、
ＣＰＵで示されたマイクロプロセッサなどの中央処理ユニット６１１と、
本発明を実施するためのコンピュータプログラムを記憶するためのＲＯＭで示されたリードオンリーメモリ６０７と、
本発明の実施形態の方法の実行可能コードを記憶するためのＲＡＭで示されたランダムアクセスメモリ６１２、ならびに、本発明の実施形態に従って一連のデジタル画像をエンコードする方法および／またはビットストリームをデコードする方法を実施するために必要な変数およびパラメータを記録するように構成されたレジスタと、
処理されるべきデジタルデータがそれを通じて送信されるまたは受け取られる通信ネットワーク６０３に接続される、通信インタフェース６０２と、
に接続される。
【００５１】
任意で、機器６００は、以下の構成要素を含んでもよい。すなわち、
本発明の１つ以上の実施形態の方法を実施するためのコンピュータプログラムと、本発明の１つ以上の実施形態の実施中に使用されるまたは作られるデータとを記憶するためのハードディスクなどのデータ記憶手段６０４と、
ディスク６０６のためのディスクドライブ６０５であって、データをディスク６０６から読み取るまたはデータを前記ディスクに書き込むように構成されたディスクドライブ６０５と、
データを表示するおよび／またはキーボード６１０もしくは任意の他のポインティング手段を用いてユーザとのグラフィカルインタフェースとしての機能を果たすためのスクリーン６０９と、
を含んでもよい。
【００５２】
機器６００を例えばデジタルカメラ６２０またはマイクロホン６０８などの様々な周辺機器に接続することができ、各周辺機器は、マルチメディアデータを機器６００へ供給するために入力／出力カード（図示せず）に接続される。
【００５３】
通信バスは、機器６００に含まれるまたは機器６００に接続される様々な要素間で通信および相互運用を行なう。バスの表示は限定ではなく、特に、中央処理ユニットは、機器６００の任意の要素へ直接にまたは機器６００の別の要素を用いて命令を通信するように動作可能である。ディスク６０６は、例えば書き換え可能もしくは書き換え不能なコンパクトディスク（ＣＤ−ＲＯＭ）、ＺＩＰディスク、または、メモリカードなどの任意の情報媒体に置き換えることができ、一般的に情報記憶手段に置き換えることができる。情報記憶手段は、マイクロコンピュータによってまたはマイクロプロセッサによって読み取ることができ、機器に組み込むことができまたは組み込まれず、場合により取り外し可能であり、その実行によって本発明による一連のデジタル画像をエンコードする方法および／またはビットストリームをデコードする方法を実施可能にする１つ以上のプログラムを記憶するように構成されている。
【００５４】
実行可能コードは、リードオンリーメモリ６０７に記憶されてもよく、ハードディスク６０４に記憶されてもよく、または、例えば前述したようなディスク６０６などの取り外し可能なデジタル媒体に記憶されてもよい。変形例によれば、プログラムの実行可能コードは、実行される前にハードディスク６０４などの機器６００の記憶手段のうちの１つに記憶されるように、通信ネットワーク６０３によりインタフェース６０２を介して受け取られ得る。
【００５５】
中央処理ユニット６１１は、前述した記憶手段のうちの１つに記憶されている、本発明による１つまたは複数のプログラムのソフトウェアコードの命令またはその１部分の実行を制御し指示するようになされている。電源オン時、不揮発性メモリ、例えばハードディスク６０４に記憶されるまたはリードオンリーメモリ６０７に記憶される１つまたは複数のプログラムは、１つまたは複数のプログラムの実行可能コードを含むランダムアクセスメモリ６１２へ転送されるとともに、本発明を実施するために必要な変数およびパラメータを記憶するためのレジスタへ転送される。
【００５６】
この実施形態において、機器は、本発明を実施するためにソフトウェアを使用するプログラム可能な機器である。しかしながら、代替として、本発明がハードウェア（例えば、特定用途向け集積回路、すなわちＡＳＩＣの形態で）で実施されてもよい。
【００５７】
図７は、本発明の少なくとも１つの実施形態によるエンコーダのブロック図を示す。エンコーダは接続されたモジュールによって表わされる。各モジュールは、本発明の１つ以上の実施形態に従って一連の画像のうちの一つの画像をエンコードする少なくとも１つの実施形態を実施する方法の少なくとも１つの対応するステップを実施するように構成されている。例えば装置６００のＣＰＵ６１１によって実行されるべきプログラミング命令の形態で実施するように構成されている。
【００５８】
オリジナルの一連のデジタル画像｛ｉ｝０−ｎ７０１は、エンコーダ７０によって入力として受け取られる。各デジタル画像は、ピクセルとして知られているサンプルの組によって表わされる。
【００５９】
ビットストリーム７１０は、エンコーディングプロセスの実施後にエンコーダ７０によって出力される。ビットストリーム７１０は複数の符号化単位またはスライスを備え、各スライスは、スライスをエンコードするために使用されるエンコーディングパラメータのエンコーディング値を送信するためのスライスヘッダと、エンコードされたビデオデータを備えるスライス本体とを備える。
【００６０】
入力されたデジタル画像｛ｉ｝０−ｎ７０１は、モジュール７０２によってピクセルのブロックへと分けられる。ブロックは、画像部分に対応し、可変のサイズ（例えば、４×４ピクセル、８×８ピクセル、１６×１６ピクセル、３２×３２ピクセル、６４×６４ピクセル）のものでもよい。コーディングモードはそれぞれの入力ブロックごとに選択される。２つのコーディングモード群、すなわち、空間予測コーディングに基づくコーディングモード（イントラ予測）、および、時間的予測に基づくコーディングモード（インターコーディング、Ｍｅｒｇｅ、ＳＫＩＰ）が与えられる。想定し得るコーディングモードがテストされる。
【００６１】
モジュール７０３はイントラ予測プロセスを実施し、このイントラ予測プロセスでは、エンコードされるべき所与のブロックが、エンコードされるべき前記ブロックの隣接のピクセルから計算される予測子によって予測される。イントラコーディングが選択される場合には、残差を与えるために、選択されたイントラ予測子および所与のブロックとその予測子との間の差分の表示がエンコードされる。時間的予測は、動き推定モジュール７０４と動き補償モジュール７０５とによって実施される。最初に、参照画像７１６の組の中から参照画像が選択され、エンコードされるべき所与のブロックに最も近い領域である基準領域または画像部分とも呼ばれる前記参照画像の一部分が動き推定モジュール７０４によって選択される。その後、動き補償モジュール７０５は、選択された領域を使用して、エンコードされるべきブロックを予測する。選択された基準領域と所与のブロックとの間の差分は、残差ブロックとも呼ばれ、動き補償モジュール７０５によって計算される。選択された基準領域は動きベクトルによって示される。
【００６２】
したがって、いずれの場合（空間予測および時間的予測）にも、残差は、オリジナルブロックから予測を差し引くことによって計算される。
【００６３】
モジュール７０３によって実施されるイントラ予測では、予測方向がエンコードされる。時間的予測では、少なくとも１つの動きベクトルがエンコードされる。
【００６４】
インター予測が選択される場合には、動きベクトルおよび残差ブロックに関連する情報がエンコードされる。ビットレートを更に減少させるために、動きが均一であると考えると、動きベクトルが動きベクトル予測子に対する差分によってエンコードされる。動き情報予測子の一組の動きベクトル予測子が、動きベクトル予測・コーディングモジュール７１７によって動きベクトルフィールド７１８から得られる。
【００６５】
エンコーダ７０は、レート歪み基準などのエンコーディングコスト基準を適用することによりコーディングモードを選択するための選択モジュール７０６を更に備える。冗長性を更に減少させるために、変換モジュール７０７によって変換（ＤＣＴなど）が残差ブロックに適用され、得られた変換データは、その後、量子化モジュール７０８によって量子化され、エントロピーエンコーディングモジュール７０９によってエントロピーエンコードされる。最後に、エンコードされている現在のブロックのエンコードされた残差ブロックがビットストリーム７１０に挿入される。
【００６６】
エンコーダ７０は、その後の画像の動き推定のための参照画像を作るために、エンコードされた画像のデコーディングも行なう。これにより、エンコーダとビットストリームを受け取るデコーダとが同じ基準フレームを有することができる。逆量子化モジュール７１１は、量子化されたデータの逆量子化を行ない、その後、逆変換モジュール７１２によって逆変換が行なわれる。逆イントラ予測モジュール７１３は、予測情報を使用して、所与のブロックのためにいずれの予測子を使用すべきかを決定し、逆動き補償モジュール７１４は、モジュール７１２により得られた残差を参照画像７１６の組から得られた基準領域に実際に加える。
【００６７】
その後、ピクセルの再構成フレームをフィルタ処理するために、モジュール７１５によってポストフィルタリングが適用される。本発明の実施形態においては、補償オフセットを再構成画像の再構成ピクセルのピクセル値に加えるＳＡＯループフィルタが使用される。
【００６８】
図８は、本発明の少なくとも１つの実施形態によるループフィルタリングプロセスのステップを示すフローチャートである。最初のステップ８０１において、エンコーダが全フレームの再構成を生成する。次に、ステップ８０２において、非ブロック化された再構成８０３を生成するために、この第１の再構成に対してデブロッキングフィルタが適用される。デブロッキングフィルタの目的は、残差量子化およびブロック動き補償またはブロックイントラ予測によって生成されたブロックアーチファクトを除去することである。これらのアーチファクトは、低いビットレートで視覚的に重要である。デブロッキングフィルタは、２つの隣接するブロックの特徴に従ってブロック境界を滑らかにするように動作する。各ブロックのエンコーディングモード、残差コーディングのために使用される量子化パラメータ、および、境界における隣接するピクセル差分が考慮に入れられる。全てのフレームに関して同じ基準／分類が適用され、追加のデータは送信されない。デブロッキングフィルタは、ブロッキングアーチファクトを除去することによって現在のフレームの視覚的な質を向上させるとともに、その後のフレームに対する動き推定および動き補償を向上させる。実際に、ブロックアーチファクトの高周波が除去され、そのため、これらの高周波を後段のフレームのテクスチャ残差を用いて補償する必要がない。
【００６９】
デブロッキングフィルタの後、非ブロック化された再構成は、ステップ８０４において、本発明の実施形態に従って決定されたピクセルの分類８１４に基づき、サンプル適応オフセット（ＳＡＯ）ループフィルタによってフィルタ処理される。結果として得られるフレーム８０５は、その後、ステップ８０６において適応ループフィルタ（ＡＬＦ）を用いてフィルタ処理されて再構成フレーム８０７を生成してもよく、再構成フレーム８０７は表示され後段のインターフレームに対する基準フレームとして使用されることになる。
【００７０】
ステップ８０４において、フレーム領域の各ピクセルは、そのピクセル値に従って決定された分類のクラスへと分類される。クラスは、ピクセル値の決定された範囲に対応する。同じ補償オフセット値が、ピクセル値の所与の範囲内にピクセル値を有する全てのピクセルのピクセル値に加えられる。
【００７１】
以下、図１０〜図１７のいずれか１つを参照して、サンプル適応オフセットフィルタリングのためのピクセルの分類の決定について更に詳しく説明する。
【００７２】
図９は、本発明の一実施形態によるエンコーダからデータを受け取るために使用できるデコーダ９０のブロック図を示す。デコーダは接続されたモジュールによって表わされる。各モジュールは、デコーダ９０により実施される方法の対応するステップを、例えば装置６００のＣＰＵ６１１により実行されるべきプログラミング命令の形態で実施するように構成されている。
【００７３】
デコーダ９０は、符号化単位を備えるビットストリーム９０１を受け取り、各符号化単位は、エンコーディングパラメータに関する情報を含むヘッダと、エンコードされたビデオデータを含む本体とから構成されている。図７に関して説明したように、エンコードされたビデオデータはエントロピーエンコードされ、動きベクトル予測子のインデックスは、予め決定されたビット数で、所与のブロックに関してエンコードされる。受け取られたエンコードされたビデオデータはモジュール９０２によってエントロピーデコードされる。その後、残差データがモジュール９０３によって逆量子化された後、ピクセル値を得るために逆変換がモジュール９０４によって適用される。
【００７４】
コーディングモードを示すモードデータもエントロピーデコードされ、モードに基づき、画像データのエンコードされたブロックに対してイントラタイプデコーディングまたはＩＮＴＥＲタイプデコーディングが行なわれる。
【００７５】
イントラモードの場合には、イントラ予測子が、ビットストリームにおいて定められたイントラ予測モードに基づいてイントラ逆予測モジュール９０５によって決定される。
【００７６】
モードがＩＮＴＥＲである場合には、エンコーダにより使用される基準領域を見つけるために、動き予測情報がビットストリームから抽出される。動き予測情報は、基準フレームインデックスと、動きベクトル残差とから構成されている。動きベクトル予測子は、動きベクトルデコーディングモジュール９１０により動きベクトルを得るために動きベクトル残差に加えられる。
【００７７】
動きベクトルデコーディングモジュール９１０は、動き予測によってエンコードされたそれぞれの現在のブロックごとに、動きベクトルデコーディングを適用する。現在のブロックに関する動きベクトル予測子のインデックスが得られたら、現在のブロックと関連付けられた動きベクトルの実際の値が、モジュール９０６によって逆動き補償を適用するためにデコードされ使用され得る。デコードされた動きベクトルにより示される参照画像部分は、逆動き補償９０６を適用するために参照画像９０８から抽出される。動きベクトルフィールドデータ９１１が、その後のデコードされた動きベクトルの逆予測のために使用されるように、デコードされた動きベクトルを用いて更新される。最終的に、デコードされたブロックが得られる。図８を参照して説明したようなエンコーダで適用されたポストフィルタリングモジュール８１５と同様に、ポストフィルタリングがポストフィルタリングモジュール９０７によって適用される。デコードされたビデオ信号９０９が最終的にデコーダ９０によって与えられる。
【００７８】
図１０は、補償オフセットの適用のために画像の再構成ピクセルを分類するための本発明の第１の実施形態による方法のステップを示すフローチャートである。この実施形態において、フレーム領域の再構成ピクセルのそれらのピクセル値に従った分類のためのクラスは、フレーム領域の再構成ピクセル値の統計的分布に基づいて決定される。クラスごとのピクセルの中心、有用な範囲、および、大きさが、ピクセル値の分布に基づいて決定される。この実施形態において、デコーダは、分布のセグメント化のためのデコーダと全く同じプロセスを適用できる。
【００７９】
プロセスの最初のステップにおいて、モジュール１００２は、現在のフレーム領域１００１を走査して、フレーム領域１００１のピクセルのピクセル値の統計的分布を決定し、対応するヒストグラム１００３を生成する。１つの特定の実施形態において、このプロセスは、それぞれのピクセル値ごとにピクセルの数を含むテーブルを更新することを伴う。すなわち、それぞれのピクセルごとに、そのピクセル値を有するピクセルの数が一覧表にされる。テーブルは、ピクセルのビット深度に基づいて、式Ｍａｘ＝２Ｂｉｔｄｅｐｔｈ−１に従って決定された最大ピクセル値ＭＡＸに等しいセルの数を含む。
【００８０】
その後、モジュール１００４は、生成されたヒストグラム１００３の中心を決定する。その後、ヒストグラム１００３において表わされるピクセル値の分布に従って、適切な場合にはヒストグラムの中心に基づいて、ヒストグラムのピクセル値の有用な範囲がモジュール１００６によって決定される。最後に、ピクセル値の範囲を規定する蓋然性が等しいクラスが決定される。したがって、各クラスのピクセル値の範囲を含むテーブル１００９が与えられ、または代替として、各ピクセルのピクセル値を含むテーブルが与えられる。
【００８１】
本発明の幾つかの実施形態において、蓋然性が等しいクラスの決定は、クラスの予め決定された数１０００に依存し得る。ステップ１００４において、生成されたヒストグラム１００３の中心を決定するために様々なアルゴリズムが使用できる。１つの実施形態において、ヒストグラムの最小値ＭｉｎＨｉｓｔおよび最大値ＭａｘＨｉｓｔが見つけられることがある。最小値ＨｉｓｔＭｉｎを見つけるために、ヒストグラムのセルｋＨｉｓｔが、ピクセル値０から、０に等しくないヒストグラムの最初のセルｋＨｉｓｔまで走査される。また、ＨｉｓｔＭａｘを見つけるために、セルが逆の順序で（最大ピクセル値Ｍａｘから、０に等しくないヒストグラムの最初のセルｋＨｉｓｔまで）走査される。ヒストグラムの中心Ｈｉｓｔ１０  Ｃｅｎｔｅｒが以下のように計算される。
【００８２】
Ｈｉｓｔ  Ｈｉｓｔ  Ｈｉｓｔ  Ｈｉｓｔ  Ｃｅｎｔｅｒ＝（Ｍａｘ−Ｍｉｎ）／２＋Ｍｉｎ
別の実施形態において、ヒストグラムの中心は分布の加重平均中心であると考慮される。ヒストグラムセルｋＨｉｓｔの値が値ｋを有するピクセルの数であると考えられる場合、Ｈｉｓｔ１５  Ｃｅｎｔｅｒは以下のように計算される。
【００８３】
Ｎｋ  ＨｉｓｔＣｅｎｔｅｒＭａｘ  ｋ  ｋ  ＨｉｓｔΣ＝ｘ＝０ここで、Ｎは、現在のフレーム領域内のピクセルの数である。
【００８４】
ステップ１００６において、生成されたヒストグラムの有用な範囲を決定するための１つの可能な技術は、有用な範囲の両端部のために前述したＨｉｓｔＭｉｎおよびＨｉｓｔＭａｘを選択することである。
【００８５】
別の実施形態において、ヒストグラムの最小値ＲａｎｇｅＭｉｎは、０から閾値αよりも上の値を有する最初のｋＨｉｓｔまでの走査によって決定される。同じように、ＲａｎｇｅＭａｘは、最大ピクセル値Ｍａｘから閾値αよりも上の最初のｋＨｉｓｔまで逆走査によって決定される。閾値αは予め決定された値であってもよい。あるいは、閾値αは、フレーム領域内のピクセルの数、および／または、入力信号の成分タイプ（クロマおよびルマ）に依存してもよい。
【００８６】
１つの特定の実施形態において、クラスの数はエンコーダ側およびデコーダ側で知られていると考えてもよい。ピクセル値のクラスの数は、例えば、各成分（ルマ、クロマＵおよびＶ）に従った現在のフレーム領域内のピクセルの数に依存してもよい。
【００８７】
蓋然性が等しいクラスを作るために、有用な範囲１００７内のピクセルの数ＲａｎｇｅＮｂＰｉｘが規定される。有用な範囲内のピクセルの数ＲａｎｇｅＮｂＰｉｘは、各ヒストグラムセルｋＨｉｓｔをｋ＝ＲａｎｇｅＭｉｎからｋ＝ＲａｎｇｅＭａｘまで走査することによって決定される。その後、有用な範囲内のピクセルの決定された数ＲａｎｇｅＮｂＰｉｘは、各クラスにおけるピクセルの最適な数ｃｌａｓｓｅｓ１０  ＮｂＰｉｘを決定するために、クラスの数１０００で割られる。
【００８８】
図１１は、本発明の一実施形態に従って蓋然性が等しいクラスを決定するためのアルゴリズムのステップを示すフローチャートである。最初のステップ１１０１において、クラスの数ｊが０に設定され、現在のピクセル値ｋがＲａｎｇｅＭｉｎに設定される。蓋然性が等しい分類のために、クラスは、ピクセル値のその範囲によって特定される。したがって、クラス数ｊは、その最小ピクセル値ｊＭｉｎからその最大ピクセル値Ｍａｘｊまでのその範囲［］ｊｊＭｉｎ；Ｍａｘによって特定される。
【００８９】
ステップ１１０３において、ｊのインデックスが付けられた現在のクラスの最小ピクセル値ｊＭｉｎは、現在のピクセル値ｋに設定される。その後、ステップ１１０４において、ｊＳｕｍＮｂＰｉｘが０に設定される。ｊＳｕｍＮｂＰｉｘは、範囲ｊ内のピクセルの数に対応する。その後、ステップ１１０５において、ピクセル値ｋを有するピクセルの数（ｋＨｉｓｔ）がｊ２０  ＳｕｍＮｂＰｉｘに加えられる。ステップ１１０６において、現在のクラスｊに関するピクセルの数の合計ｊＳｕｍＮｂＰｉｘがクラスにおけるピクセルの数ｃｌａｓｓｅｓＮｂＰｉｘよりも上であるか否かが決定される。この条件が達せられない場合、ステップ１１０７においてｋ値がインクリメントされ、ステップ１１０５において、ピクセル値ｋに関するピクセルの数ｋＨｉｓｔがｊＳｕｍＮｂＰｉｘに加えられる。ｊ  ｃｌａｓｓｅｓ２５  ＳｕｍＮｂＰｉｘ＞ＮｂＰｉｘであることが決定される場合、または、ｋが有用な範囲の最大値ＲａｎｇｅＭａｘに達する場合には、ステップ１１０８において、現在のクラスｊに関する最大値はｋの現在の値に等しい。この段階で、クラスｊが規定される−すなわち、クラスｊの範囲［］ｊｊＭｉｎ；Ｍａｘが決定された。ステップ１１０９において、複数のクラスにおいて同じピクセル値を得ることを回避するために、変数ｋがインクリメントされる。また、ステップ１１１０において、次のクラスに関するピクセル値の範囲を規定するために、変数ｊもインクリメントされる。変数ｊがクラスの数ｃｌａｓｓｅｓＮｂＰｉｘよりも上である場合、ステップ１１１２において全てのクラスが規定されたと考えてもよい。結果として、エンコーダは、図３に関連して説明したようにそれぞれのクラスｊごとにオフセット値を決定して、それをデコーダへ送信する。エンコーダおよびデコーダは、図４を参照して説明したようにフレーム領域をフィルタ処理する。
【００９０】
この実施形態において、クラスの数が構文値に基づいて予め決定されるため、クラスの数ＮｂＣｌａｓｓｅｓがピクセル値に依存しないことに留意されたい。その結果、この実施形態において、ＳＡＯバンドオフセットの構文解析は他のフレームのデコーディングとは無関係である。ＳＡＯバンドオフセットのための構文解析が各オフセットの構文解析を含むことに留意されたい。
【００９１】
蓋然性が等しい分類を決定するための更なる実施形態において、生成されたヒストグラムにおけるピクセル値の分布に従ってクラスの数を決定できる。実際に、有用な範囲の広がりが高いまたは低いときには、クラスの数がコーディング効率に影響を与えるはずである。その結果、各クラスにおけるピクセルの数およびピクセル値の数を決定することによって、より良好な適応可能分類が与えられてもよい。
【００９２】
図１２は、より適応可能な分類を行なうための更なる実施形態によるアルゴリズムのステップを示すフローチャートである。このフローチャートは図１１の実施形態のフローチャートに基づいており、ここで、同様の最終数字が付されたモジュールが同等の機能を果たす。しかしながら、この実施形態の決定モジュール１２０６および１２１１は、図１１の対応するモジュール１１０６および１１１１によってもたらされるテスト条件とは異なるテスト条件をもたらす。
【００９３】
この実施形態において、決定モジュール１２０６は、ｊ  ｃｌａｓｓｅｓＳｕｍＮｂＰｉｘ＞ＮｂＰｉｘである場合、または、ｋが有用な範囲の最大値ＲａｎｇｅＭａｘに達する場合、または、ｊｋ−Ｍｉｎがクラスに関する最大範囲（ＭａｘＣｌａｓｓＲａｎｇｅ）よりも厳格に低い場合には、ｋ値に基づいてループを停止させ、クラスｊに関するｊＭａｘを選択する。ｋ−Ｍｉｎｊは、クラスｊの現在の範囲内のピクセル値の数に対応する。ＲａｎｇｅＭａｘＣｌａｓｓは、その範囲内のピクセル値の予め決定された最大数である。この範囲は、ビット深度、フレーム領域内のピクセルの数Ｎ、および、信号のタイプ（ルマ、クロマＵおよびＶ）に依存してもよい。例えば、ビット深度が８であるとき、ルマ成分に関するＲａｎｇｅＭａｘＣｌａｓｓは、ＨＥＶＣ実施態様の場合のように１６に等しくなり得る。
【００９４】
図１１の実施形態の利点と比較して図１２の実施形態の利点は、大きな広がりをもったピクセル値分布に関するそのコーディング効率である。この実施形態は、分布に、より適応性がある。この実施形態において、クラスの決定された数がピクセル値に依存し、そのため、現在のフレームの構文解析が前のフレームのデコーディングに依存することに留意されたい。送信エラーに対してロバスト性がより高くなるように、クラスの数ＮｂＣｌａｓｓｅｓがビットストリームに挿入される。そのようなデータの送信は、コーディング効率にあまり影響を与えない。
【００９５】
図１０〜図１２の分類の第１の実施形態の主な利点は、分類がピクセル値分布に適応しているという点である。また、各クラスの中心、有用な範囲、および、サイズ、ならびに、それらの大きさが送信される必要がない。その結果、知られているＨＥＶＣ実施態様の場合と同様に、各クラスのオフセットを表わすデータ以外の追加のデータが、決定された分類のために送信される必要がない。ここで、分類のパラメータの信号送信を伴う、分類を決定するための本発明の更なる実施形態について、図１３を参照して説明する。分類の、更なる実施形態の目的は、ピクセル値の分布の最適な分類を与えることである。先の実施形態と比べた違いは、ピクセル値の分布に基づいて分類が直接に決定されず、レート歪み基準に基づいて分類が決定されることである。更なる実施形態において、エンコーダは、予め規定された可能性のある分類の中から、ピクセル値分布に最も良く適応した分類を選択する。この選択はレート歪み基準に基づく。先の実施形態の場合と同様に、ピクセル値の分布を表わす生成されたヒストグラムのクラスの中心、有用な範囲、および、サイズが決定される。更なる実施形態において、これらのパラメータがビットストリームにおいて送信される。そのようなデータの送信の影響を最小限に抑えるために、クラスのサイズおよび関連する範囲が予め規定された値の中から選択される。その結果、エンコーダは、選択された分類の中心、選択された分類に関連するインデックス、および、分類のクラスのサイズをビットストリームに挿入する。
【００９６】
ピクセル値の分布に対する適応性を与えるために、ピクセル値範囲の幾つかのサイズが図１３に描かれているように規定される。図１３において、ピクセル値の全範囲は３２個の部分範囲へと分けられている。ピクセル値の範囲の中心に位置するピクセル値に関連するクラスの第１のグループに関しては、４つの例１３０１、１３０２、１３０３、１３０４が表わされる。第１の例１３０１は、起こり得る３２個の範囲のうち２６個の範囲を含む。したがって、有用な範囲１３０１は全範囲の１３／１６を表わす。同じように、１３０２は、３２個の起こり得る範囲のうち８個の範囲のみ、すなわち、有効な範囲の１／４を表わし、１３０３は全範囲の１／８を表わし、１３０４は全範囲の１／１６を表わす。提案された方式に関しては、全範囲からたった１つのピクセル値に対応する範囲までの全ての想定し得るサイズを考慮してもよい。想定し得る有用な範囲の数は、コーディング効率に従って予め決定されるべきであり、または、フレーム領域内のピクセルの数に関して予め決定されるべきである。
【００９７】
図１３は、ピクセル値の範囲の縁に位置するピクセル値に関連するクラスの第２のグループに関するサイズの幾つかの例も示す。第２のグループはクラスの２つのサブグループを含み、各サブグループはヒストグラムのそれぞれの縁の方に位置する。例１３０５、１３０６、１３０７、１３０８はそれぞれ、第１のグループの例１３０１、１３０２、１３０３、１３０４と同じピクセル値の数を表わす。
【００９８】
本発明の実施形態において、クラスのサイズ、すなわち、クラスごとのピクセル値の範囲は、従来技術の方法と比べて固定されない。図１４は幾つかのサイズの例１４０１〜１４０６を示す。この例では、クラスサイズは、３２ピクセル１４０１から、たった１ピクセル１４０６までである。これらのクラスサイズは、図１３に関連して既に説明したように、想定し得る有用な範囲の全てと組み合わせることができる。この実施形態において、全てのクラスはピクセル値の特定の範囲に関して同じサイズを有すると考えられる。したがって、グループに関しては、有用範囲サイズおよびクラスのサイズを表わすデータがビットストリームに挿入される。別の実施形態において、所与の有用な範囲に関するクラスのサイズを、その有用な範囲内のクラスの位置に従って適応させる。より正確には、クラスのサイズをピクセル値の分布に適応させる。更なる実施形態において、これらのサイズは、ピクセル値分布に従ってそれぞれの有用な範囲ごとに予め決定される。実際に、ピクセル値分布のヒストグラムは一般的にガウス分布に対応する。ピクセル値がヒストグラムの中心に近ければ近いほど、この値に近いピクセル値を有するピクセルの数が多くなる。このことは、中心に近いヒストグラムセルｋＨｉｓｔがヒストグラムの有用な範囲の両端部にあるヒストグラムセルｋＨｉｓｔよりも大きい値（対応するピクセルの数）を有することを意味する。
【００９９】
図１５は、クラスのサイズのための２つの記載された実施形態の例を示す。例１５０１は、３２個のピクセル値の有用な範囲に関して８個のピクセル値の固定サイズを表わす。１５０２は、同じ有用範囲サイズに関して４個のピクセル値の固定サイズを表わす。
【０１００】
例１５０３は、３２個のピクセル値の現在の範囲に関するクラスの適応サイズのための他の実施形態を示す。この例において、有用な範囲の両端部にあるクラスは、中心にあるクラスよりも大きく、すなわち、中心のクラスよりも幅広い範囲のピクセル値を有し、この場合、それぞれ８個のピクセル値および２個のピクセル値である。これらのクラス間では、２つの他のクラスが４個のピクセル値の範囲を有する。
【０１０１】
第２のグループに関するクラスのサイズも、ピクセル値の分布に適応させることができる。現在のＨＥＶＣ実施態様の第２のグループの目的は、ヒストグラムの２つの端部だけを利用することである。実際に、ヒストグラムの両端部は極値を含み、極値はしばしば、エラー（非可逆コーディングに起因する）が通常は低周波と比べて高い高周波に関連する。第１のグループの場合と同じようにで、クラスの幾つかのサイズは、第２のグループの有用な範囲に関してテストできる。その場合、第２のグループの２つのサブグループに関して、下位区分１５０１および１５０２をレート歪み基準と比較できる。
【０１０２】
また、クラスのサイズを適応させる実施形態が適用されてもよい。例１５０４は、第２のグループの第１の範囲（左）に対してクラスの提案された適応サイズを示す。また、例１５０５は、第２のグループの第２のサブグループ（右）に対してクラスの提案された適応サイズを示す。その場合、クラスは、中心に近いクラスよりも多くのピクセル値を両端部に含む。
【０１０３】
第２のグループの目的は、ヒストグラムの両端部を利用することであり、その結果、時として、第２のグループにサイズの逆適応を使用することが有用である。その場合、例１５０４は第２のサブグループ（右）のために使用され、例１５０５は第２のグループの第１のサブグループ（左）のために使用される。この実施形態において、これらのクラスは、中心に近いクラスよりも少ないピクセル値を両端部に含む。その場合、目的は、クラスの蓋然性が等しい分類を作ることではなく、第２のグループの両端部のより良好なセグメント化を見つけることである。
【０１０４】
ピクセル値の統計的分布は必ずしもピクセル値の全範囲の中央に中心付けられないため、有用な範囲に基づく分布の中心が決定されビットストリームにおいて画像データで送信されるべきである。図１６は、全範囲の１／４に対応する有用な範囲に関する中心位置が異なる全範囲の例を示す。図１３の例１３０２とは対照的に、図１６の４つの例１６０１、１６０２、１６０３、１６０４に関しては、有用な範囲の中心が全範囲の中心に位置していない。この解決策により、選択された分類をピクセル値の分布に適応させることができる。その後、決定された中心は、ビットストリームにおいて送信するためにコーディングすることができる。データのコーディングのための幾つかの技術が想定できる。現在のフレーム領域のビット深度が８ビットであると考えられる場合、中心値に関して考えられ得る位置の数は、２５６−最小有用範囲のサイズに対応する。例えば、図１３と比べると、有用な範囲の最小サイズは２に等しく、これらの２つのクラスは少なくとも１ピクセルを含んでもよい。そのため、この特定の例に関しては、中心は１から２５４の間の値をとることができ、したがって、２５４個の位置が中心に関して考慮されてよい。
【０１０５】
別の解決策は、中心値を定量化することである。１つの実施形態において、中心はクラスのサイズに従ってコーディングされる。したがって、例えば、クラスのサイズ（または、適応クラスサイズ方式が使用される場合には、現在の有用な範囲の全てのクラスの最小サイズ）が１つのピクセル値に等しい場合には、中心は定量化されず、現在の有用な範囲に関して全ての想定し得る中心位置であり得る。クラスのサイズが１６個のピクセル値である場合には、図１６に描かれているように、１６個のピクセル値ごとのピクセル値のみを考慮することができる。したがって、図１６において、１６０１、１６０２、１６０３および１６０４に関する中心はそれぞれ９、２３、２７および６である。別の実施形態において、アルゴリズムで規定されたクラスの最大サイズの倍数に等しい中心位置のみが考慮されてもよい。したがって、中心は、クラスの最大サイズで割ったピクセル値に等しい。これは、送信されるべきビットの数における減少をもたらす。
【０１０６】
また、理論的に、最も起こり得る中心は全範囲の中心である。したがって、デコーダ側で中心位置を決定するために送信されるデータは、全範囲の中心と現在の分類の有用な範囲の中心との間の差分である。そのため、例えば図１６において、例１６０１、１６０２、１６０３、１６０４に関する中心に関連して送信されるデータはそれぞれ、１６−９＝７、１６−２３＝−７、１６−２７＝−１１、１６−６＝１０である。
【０１０７】
第２のグループに関しては、ヒストグラムの中心をコーディングする必要がない。したがって、第２のグループに関する２つのサブグループの変位をコーディングするための幾つかの方式を考慮できる。第１のグループに関して説明した中心値の量子化に関する提案された実施形態は、第２のグループのための提案された実施形態にまで容易に拡大され得る。
【０１０８】
本発明の実施形態において、有用な範囲の位置（選択された分類）は、全範囲にわたって同じ正確さまたは粒度で、すなわち、全範囲内の分類の位置に関係なく指定してもよい。これは、位置（中心位置）が９、２３、２７および６である図１６に示されている例１６０１〜１６０４における場合である。全範囲には０〜３２のラベルが付されている。３２個の想定し得る位置が存在し、粒度は全範囲にわたって同じである。
【０１０９】
しかしながら、図１９ａおよび図１９ｂに示されているように、全範囲の別の部分におけるよりも全範囲の１つの部分において起こり得る位置を与えることもできる。言い換えると、位置の粒度は、分類が全範囲内のどの場所にあるかに応じて変化する。これらの実施形態は、全範囲の最も重要な（または、あり得る）部分に分類（有用な範囲）の中心をより正確に位置付けるために、可変粒度を伴う全範囲の不均等量子化（ここでは、０〜３２のラベルが付されている）を提案する。また、不均等量子化により、全範囲の重要な部分において適切な正確さを依然としてもたらしつつ、分類の位置を信号送信するために必要とされるビットの数を制限することができる。このより細かい粒度は、例えば図１９ａに表わされているように全範囲の中央において適用され得る。この図において、想定し得る中心位置は、太い実線により表わされているインデックスに対応する。２つの想定し得る中心位置間の間隔は、端部よりも全範囲の中央において小さい。したがって、中心位置は、全範囲の端部におけるよりも全範囲の中央において、より正確に設定され得る。
【０１１０】
図１９ｂにおいて、２つの想定し得る中心位置間の間隔は、中央におけるよりも全範囲の両端部で小さい。例えば、この実施形態は、分布の極値で重要なサンプル値を有する場合に特に有用となり得る。
【０１１１】
より一般的には、より細かい量子化を全範囲内の任意の場所で適用できる。
【０１１２】
前述した可変量子化が使用されると、分類範囲（有用な範囲のサイズ）は全ての位置に関して固定できる。例えば、分類範囲は４つのクラスを備えることができ、各クラスは８個のピクセル値から構成されている。
【０１１３】
分類範囲／クラスサイズを位置に伴って変化させることもでき、それにより、図１９ａにおいて、分類範囲は位置１２〜２０で約８個のピクセル値であり、位置１０および２６で１６個のピクセル値であり、位置２および２８で３２個のピクセル値である。
【０１１４】
ここで説明した可変量子化は、分類範囲を決定するために適用される方法にかかわらず使用され得る。この方法は、例えば、サンプル値の統計的分布の特性を使用でき、または、レート歪み基準を使用できる。
【０１１５】
可変量子化は、エンコーダおよびデコーダの両方で予め決定され得る。例えば、エンコーダおよびデコーダは、想定し得る中心位置（または、左位置）にインデックスを割り当てることができ、例えば図１９ａにおいて、位置２はインデックス０であり、位置６はインデックス１であり、位置１０はインデックス２であり、位置１２はインデックス３であり、位置１３はインデックス４であり、以下同様である。この場合、エンコーダが、選択された分類のインデックスをデコーダへ送信すれば足りる。あるいは、可変量子化に関する情報をエンコーダで決定しビットストリームを介してデコーダへ信号送信することができる。
【０１１６】
１つの特定の実施形態において、ヒストグラムの中心は常に全範囲の中心であると考えてもよい。したがって、その場合には、１つの変位だけが考慮される。両方のグループが同じ変位で中心にスケーリングされる。その結果、１つのデータのみ、すなわち、第２のグループの第１の範囲の変位だけをコーディングすればよい。図１７の例１７０１、１７０２、１７０３および１７０４はそのような変位の例である。例１７０１、１７０２、１７０３、１７０４において、変位はそれぞれ４、６、１０および０である。変位は、予測を伴うことなく直接にコーディングすることができる。
【０１１７】
更なる実施形態において、第２のグループの両方のサブグループは、例１７０５、１７０６、１７０７および１７０８に描かれるように全範囲内に独立した位置を有する。２つのコーディング様式を考慮できる。第１のコーディング様式では、存在しない第１のグループの中心が、この存在しない第１のグループの有用な範囲のサイズでコーディングされる。
【０１１８】
両方のグループを独立にコーディングする第２の様式は、全範囲の２つの端部からの２つの変位（それぞれのグループごとに１つ）を送信することである。したがって、例１７０５、１７０６、１７０７および１７０８に関して、送信される変位はそれぞれ、１７０５に関して１１および３２−２８＝４であり、１７０６に関して２１および０であり、１７０７に関して３および３２−１６＝３２であり、１７０８に関して７および３２−３１＝１である。
【０１１９】
図１８は、本発明の一実施形態によるレート歪み選択アルゴリズムのステップを示すフローチャートである。簡略的に説明する目的で、適応クラスサイズを伴わない第１のグループに関する選択だけが考慮される。先に説明した他の実施形態に関する選択を容易に適応させることができる。
【０１２０】
最初のステップ１８０１において、現在のフレーム領域の統計値が計算される。これは、全てのピクセル値ｋに関する変数ｋＨｉｓｔおよびｋＳｕｍを決定することを伴う。Ｈｉｓｔｋは、値ｋに等しいピクセル値を有するピクセルの数に対応し、ｋＳｕｍは、値ｋに等しいピクセル値とそれらのオリジナルピクセル値とを有する全てのピクセル間の差分の合計に対応する。アルゴリズムは、３つのパラメータ、すなわち、クラスのサイズＳ、範囲のサイズＲ、および、中心Ｃに対して３つのループを含む。ステップ１８０３において、第１のループは、それぞれの想定し得るクラスサイズをテストする。例えば図１４に規定されているサイズ。ステップ１８０４において、全範囲のそれぞれの部分範囲ごとのオフセットが計算される。例えば、ビット深度が８であり、クラスのサイズが１６である場合には、全範囲内の３２個の想定し得る範囲に関する歪みおよびオフセットが計算される。特性により、オフセットおよび歪みは、現在の範囲内のｋの全ての値に関するｋＨｉｓｔとｋＳｕｍとの一次結合によって計算される。その後、それぞれの想定し得る範囲Ｒ１８０５ごとに、かつそれぞれの想定し得る中心Ｃ  １８０６ごとに、ステップ１８０７においてレート歪みコストが評価される。この評価はレート歪み基準に基づく。全ての中心Ｃ  １８０８、全ての範囲１８０９、および、全てのサイズ１８１０がテストされるとき、ステップ１８１１において、最良のレート歪みコストに基づき、最良のパラメータＳ、Ｒ、Ｃが選択される。蓋然性が等しい分類を作るためのこの第２の方式の利点としては、複雑さの減少およびコーディング効率の向上が挙げられる。クラスの中心、範囲、および、サイズの分類選択は、分類がピクセル値の統計的分布に基づく実施形態と比べて最適なレート歪み選択をもたらす。無論、この実施形態は、現在のＨＥＶＣ実施態様と比べてコーディング効率の向上をもたらす。この方式は、ピクセルの分布をデコーダで決定する必要がないため、デコーダ側では先の方式と比べて複雑ではない。また、この方式は、幾つかのグループにおいてより少ないクラスが使用されるため、ＨＥＶＣにおける知られている技術よりも簡単であり得る。
【０１２１】
図１８に表わされているアルゴリズムは、全てのバンドオフセットパラメータ、すなわち、クラスのサイズＳ、範囲Ｒ、中心Ｃを表わす値の位置の選択に基づき、全レート歪みを行なう。複雑さを制限するために、幾つかのパラメータを固定できる。図１８のアルゴリズムの１つの特定の実施態様において、サイズＳおよび範囲Ｒは、エンコーダおよびデコーダにより知られている所与の値に固定される。例えば、Ｓは８個のピクセル値を表わすことができ、Ｒは、８ピクセルの４つのクラスに対応する３２個のピクセル値を表わすことができる。結果として、最適化されるべきパラメータは中心Ｃを表わす値のみである。
【０１２２】
本発明の実施形態は、ピクセルの分類の決定においてピクセル値の全範囲にわたるピクセル値の再区分を考慮に入れるため、それに応じて、分類をピクセル値の異なる分布に適応させてもよい。特に、分類を、ピクセルの成分タイプに従って適応させることができる。例えば、クロマ成分ピクセルの組の場合、ピクセル値は、ルマクロマピクセルのピクセル値と比べて低くなる傾向がある。また、クロマＵピクセル値は、より集約された比較的高いピクセル値を有するクロマＶピクセル値の分布とは異なる分布を有する。また、クロマ成分ピクセルの場合、ピクセル値の分布は、より幅広く広がる分布を与えるルマクロマピクセルの分布と比べて、ピークピクセル値付近でより集約される傾向がある。
【０１２３】
以上から分かるように、デコーダ側でのピクセルの分布の決定を回避するため、ＳＡＯタイプ（Ｎｏ  ＳＡＯ、エッジオフセット、または、バンドオフセット）および補償オフセット値に加えて、パラメータＳ、ＲおよびＣがビットストリームにおいて送信される。クラスサイズおよび範囲が固定されるときには、デコーダが範囲の中心を検索できるようにするために、Ｃだけが送信される。
【０１２４】
固定ＳおよびＲの場合、ＳＡＯパラメータをエンコードするための１つの知られている解決策は、図２１によりフローチャートの形態で記載されている図２０Ａの疑似コードを適用することにある。
【０１２５】
プロセスは、ＳＡＯのタイプ（コードワードｓａｏ＿ｔｙｐｅ＿ｉｄｘで記憶される）、バンドオフセットタイプが使用されるときの有用な範囲の中心を表わす値（コードワードｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎで記憶される）、および、ＳＡＯオフセット（コードワードｓａｏ＿ｏｆｆｓｅｔで記憶される）を含むＳＡＯパラメータの決定から始まる。図２０Ａにおいて、ｃＩｄｘは、ＳＡＯが適用される色成分のインデックスを表わし、ｒｘおよびｒｘは、ＳＡＯが適用される領域の位置を表わし、ｉは、サンプル値のクラスのインデックスである。
【０１２６】
その後、ステップ２００３において、ＳＡＯパラメータエンコーディングが始まり、ＳＡＯタイプのエンコーディングは、符号なしのＥｘｐ  Ｇｏｌｏｍｂコード（ｕｅ（ｖ））（すなわち、符号なしの可変長コード）を使用する。ＳＡＯタイプがタイプ５（バンドオフセット）である場合、ステップ２０１７において、エンコーディングは、サイズ５（ｕ（５））の符号なしの固定長コードを使用する有用な範囲の中心の位置を表わす値のエンコーディングを続ける。その後、ステップ２０１９〜２０２５において、その範囲内に含まれる４つのクラスに対応する４つのオフセットのエンコーディングが繰り返し行なわれる。ここで、それぞれのオフセットは、符号付きのＥｘｐ  Ｇｏｌｏｍｂコード（ｓｅ（ｖ））（すなわち、符号付きの可変長コーディング（ＶＬＣ）コード）を使用してエンコードされる。その後、エンコーディングプロセスがステップ２０２７で終了する。
【０１２７】
ＳＡＯタイプがバンドオフセットでない場合、最初に、ＳＡＯタイプがｎｏ  ＳＡＯであるかどうかをチェックする（ｎｏ  ＳＡＯは、該当するサンプルにオフセットが適用されないことを意味する）。ｎｏ  ＳＡＯが選択された場合には、ステップ２０２７においてエンコーディングプロセスは停止する。そうでなければ、ステップ２００７〜２０１３において、４つのエッジオフセットの繰り返しエンコーディングを続ける。ここでもやはり、エンコーディングプロセスはステップ２０２７において停止する。表わすべき値の範囲が比較的高いが、この範囲内の幾つかの値が他の値よりも起こり得るときには、ＶＬＣコードが一般的に使用される。その後、最も起こり得る値に短いコードがもたらされ、一方、あまり起こり得ない値に長いコードがもたらされる。これらのコードの主な欠点は、それらのコードがデコーディングにおいて固定長コード（ＦＬＣ）よりも高度の複雑さを含むという点である。実際に、ＶＬＣコードはコードの最終サイズが知られていないので１ビットずつ読み取る必要がある一方、ＦＬＣコードの全てのビットはそのサイズが知られているので直接に読み取ることができる。
【０１２８】
図２０Ｂおよび図２２において、ＶＬＣコードをＦＬＣコードに置き換えるこのエンコーディングプロセスの代替形態を提案する。
【０１２９】
このエンコーディングプロセスは、ステップ２００１と同一のステップ２２０１から始まる。ステップ２２０３において、コードワードｓａｏ＿ｔｙｐｅ＿ｉｄｘのＶＬＣコーディングがＦＬＣエンコーディングに置き換えられる。ここでは、６個の想定し得るＳＡＯタイプ値（すなわち、「ｎｏ  ＳＡＯ」タイプ、４つの「エッジオフセット」タイプ、および、「バンドオフセット」タイプ）をエンコードするために３ビットが必要である。その後、ＳＡＯのタイプが「ｎｏ  ＳＡＯ」であるかどうかをチェックする。「ｎｏ  ＳＡＯ」の場合、それ以上何もエンコードされず、プロセスがステップ２２１５で終了する。さもなければ、ＳＡＯのタイプが「バンドオフセット」であるかどうかをチェックする。ｙｅｓの場合には、範囲の中心の位置を表わす値が、サイズ５の符号なしのＦＬＣコードの形態のコードワードＳＡＯ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎでエンコードされる。実際に、この例では、８個のサンプル値のクラスサイズと４つのクラスから構成された範囲の場合、２５６個の値の全範囲に関して２８個の異なる位置が可能である。このステップの後に、ステップ２２１１〜２２１３における４つのＳＡＯオフセットのエンコーディングが続く。ここでは、ＦＬＣコードがステップ２０２３および２０１１のＶＬＣコードに取って代わる。ここで、−３１〜３２の整数オフセット値をカバーする最大５ビットのＶＬＣコードを使用する代わりに、４つの異なる値、一般的には（−２、−１、１、２）だけをエンコードできるサイズ２ビットのＦＬＣコードを使用する。想定し得る値の数の減少は、最も頻繁に使用されるオフセット値に対してエンコーディングを集中させるという効果を有する。
【０１３０】
プロセスは、オフセットエンコーディング後にステップ２２１５において停止する。別の実施形態において、オフセットにより表わされる範囲は、２ビットコードにより得られるオフセットに適用されるべき乗算係数を画像ヘッダ、スライスヘッダ、または、ＬＣＵヘッダにおいてエンコードすることによって広げることができることに留意されたい。例えば、乗算係数が４に等しい場合、エンコードされたオフセット（−２、−１、１、２）が（−８、−４、４、８）になる。乗算係数は、標準化（固定）することもでき、または、別のＬＣＵから推測することもできる。例えば、前のＬＣＵに適用できる乗算係数が現在のＬＣＵに適用されると考えられてもよい。
【０１３１】
同様に、別の実施形態において、画像ヘッダ、スライスヘッダ、または、ＬＣＵヘッダにおいてエンコードされたシフト値が、２ビットコードにより得られるオフセットに適用され得る。例えば、５のシフト値の場合、エンコードされたオフセット（−２、−１、１、２）が（３、４、６、７）になる。ここでもやはり、シフト値は標準化（固定）することもできまたは別のＬＣＵから推測することもできる。例えば、前のＬＣＵに適用できるシフト値が現在のＬＣＵに適用されると考えられてもよい。テストにより、より少ない想定し得るオフセット値を有すると、ＳＡＯ方法の性能を大きく低下させないことが示された。幾つかのオフセット値の抑制によりもたらされる損失は、あまり起こり得ないオフセット値の、重いビットレートコストの抑制によって補償されると思われる。追加のテストにより、性能を大きく損失させることなく、異なるオフセット値の数を３つのオフセットまで、更には２つのオフセット（エンコードするために１ビットだけを要する）にまで更に減少させることができることが示された。
【０１３２】
図２３において、エンコーディングプロセスの更なる改良が提案されている。ここで、エッジオフセットタイプの場合に使用されるオフセット値をエッジオフセットのタイプから直接に推測できると考えられる。その場合、エッジオフセット値のエンコーディングは必要とされない。なお、エッジオフセットのそれぞれのタイプは、信号方向に応じて４つのクラスと関連付けられ、各クラスは、関連付けられたオフセット値を有する。この実施形態は、一般的に所与のエッジオフセットタイプおよび所与のクラスに関して、オフセット値が互いに近く一般的に同じであることを示すテストによって動機付けられている。結果として、それぞれのエッジオフセットタイプごとに４つのオフセット値の組を固定することを提案する。例えば、以下の関連性を提案する。
垂直エッジオフセット：（−２、−１、１、２）
水平エッジオフセット：（−２、−１、１、３）
第１の対角エッジオフセット：（−３、−２、−１、１）
第２の対角エッジオフセット：（−１、１、２、３）
図２３のステップ２３０１および２３０３は、図２２を参照して既に説明したステップ２２０１および２２０３と同一である。ステップ２３０５および２３０７において、それぞれ、ＳＡＯタイプが「エッジオフセット」または「ｎｏ  ＳＡＯ」であるかどうかをチェックする。いずれの場合にも、オフセットはエンコードされない。ＳＡＯタイプが「エッジオフセット」である場合には、デコーダは、エッジオフセットタイプ値を読み取るとき、固定オフセット値との知られている関連性によって、エッジオフセットタイプからオフセット値を推測する。図２３の実施形態において、ＳＡＯタイプが「バンドオフセット」である場合、範囲の中心の位置を表わす値がステップ２３０９においてエンコードされ、４つのオフセット値がステップ２３１１〜２３１７により繰り返しエンコードされる。エンコーディングプロセスはステップ２３１９で終了する。
【０１３３】
図２４および図２５の実施形態において、図２０Ａおよび図２１で説明したエンコーディングプロセスの別の変更形態を適用する。先の実施形態で既に言及されたように、範囲の中心の位置（ｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎ）を表わす情報をエンコードするために５ビットのＦＬＣコードが使用される一方、２８個の異なる位置だけが使用される。その条件において、それぞれが５ビットの長さを有する４つのＦＬＣコードは未使用のままである。ここで、ＳＡＯタイプをエンコードするために使用されるコードワードを除去するように、これらの４つの予備のＦＬＣコードを利用することを提案する。範囲位置とエッジオフセットタイプとを一緒にコーディングするために、新たなコードワード、すなわち、ＳＡＯ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎ＿ａｎｄ＿ＥＯが使用される。この新たなコードワードも５ビット長である。
【０１３４】
通常のごとく、プロセスは、ステップ２５０１においてＳＡＯパラメータの定義から始まる。このプロセスの後に、ＳＡＯが使用中か否かを示す１ビット長のフラグ（ＳＡＯ＿ＬＣＵ＿ｆｌａｇ）のエンコーディングがステップ２５０３において続く。ＳＡＯが使用されていない場合（ステップ２５０５）には、プロセスが停止する（ステップ２５０７）。
【０１３５】
ＳＡＯが使用される場合、ステップ２５０９において、いずれのタイプのＳＡＯが使用されているのかをチェックする。ＳＡＯタイプが「バンドオフセット」である場合には、ステップ２５１３において、範囲の中心の位置を表わす値をエンコードするためにコードワードＳＡＯ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎ＿ａｎｄ＿ＥＯの最初の２８個のコードが使用される。ＳＡＯタイプが「エッジオフセット」である場合には、ステップ２５１１において、エッジオフセットのタイプ（垂直、水平、第１の対角、または、第２の対角）をエンコードするためにコードワードＳＡＯ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎ＿ａｎｄ＿ＥＯの最後の４つのコードが使用される。ステップ２５１１またはステップ２５１３の後に、ステップ２５１５〜２５２１による４つのオフセット値のエンコーディングが続く。
【０１３６】
なお、本実施形態において、エッジオフセットのタイプをエンコードするために予備のコードワードが使用されるが、代替として予備のコードワードを他の目的のために使用できることが理解される。エンコーダからデコーダへ送られる必要がある任意の他の情報を予備のコードワードを使用してエンコードできる。
【０１３７】
図２６において、バンドオフセットの場合に適用されるべきオフセットを決定するための更なる実施形態を提案する。この実施形態は、バンドオフセットの場合にはオフセットの大部分が絶対値において低い広がりを有することを示すテストよって動機付けられている。実際に、オフセット値は一般的に−２、−１、１および２に等しい。例えば図２０Ａ〜図２５の例の場合のように範囲内のクラスの数を４まで減少させると、４つのオフセット値の異なるグループの数も減少させる。４つの異なるオフセット値および４つのクラスを伴う先の例では、異なるグループの数が４４＝２５６である。図２１、２２、２３および２５の実施形態において、オフセット値（それぞれが２ビットを使用してエンコードされる４つのオフセット値）をエンコードするために８ビットが使用される。ここで、４つのオフセットの全てのグループは、選択される確率が同じであると考えられる。しかしながら、これらのグループの一部は他のグループほど起こり得ない。あまり起こり得ないグループを除去することにより、グループをエンコードするために必要とされるビットの数を減少させることができる。結果として、それぞれのオフセット値ごとに２ビットを使用して４つの異なるオフセット値をエンコードする代わりに、４つのオフセット値の異なるグループにインデックスを割り当てることおよびインデックスをエンコードすることを提案する。この場合、インデックスは、あまり起こり得ないグループの除去によって、８ビット未満を使用してエンコードされる。グループの確率は、トレーニングシーケンスの組に対してＳＡＯを適用すること、およびグループに関する統計値を計算することによって決定され得る。グループの選択される確率に従って順序付けられた全ての想定し得るグループを集めるテーブルは予め決定されエンコーダおよびデコーダにより知られていることができる。このテーブルにおいて、オフセットの各グループはインデックス値に関連付けられている。グループエンコーディングのインデックスに割り当てられるビットの数は、固定（標準化）され得る、または、シーケンス、フレーム、スライス、または、ＬＣＵに関して固定され、対応するヘッダにおいてエンコードされ得る。最も起こり得るグループに対応するテーブル中のグループのサブセットが、インデックスエンコーディングに割り当てられるビットの数に応じてエンコーダおよびデコーダによって決定される。
【０１３８】
最良のグループの選択を表わす実施形態が図２６に記載されている。プロセスは、変数ｊが初期化されるステップ２６０１から始まる。この変数ｊを、オフセットの全ての想定し得るグループのテストを可能にするように漸進的に増大させる。提案された実施形態において、４つのオフセットのグループを考慮するが、オフセットの他の数を考慮できる。ステップ２６０３において、全てのグループがテストされたかどうかをテストする（例えば、ＮｂＯｆｆｓｅｔＧｒｏｕｐが１２８に等しくなり得る）。ｙｅｓの場合には、プロセスが停止し、選択されたグループに対応する８ビット未満のコードワードがエンコードされる。そうでない場合には、プロセスは、範囲内の全てのクラスをテストできるようにする変数ｉの初期化を続ける（ステップ２６０５）。ステップ２６０６において、オリジナルサンプルとオフセットｊのグループに対応するＳＡＯフィルタ処理されたエンコードされたサンプルとの間の差分の合計を表わす変数ＳｕｍＤｉｆｆ（ｊ）が０に初期化される。ここでは、４つのクラスだけが考慮されるが、オフセットの数と一致する他の数のクラスが可能である。ステップ２６０７において、幾つかのクラスが未だテストされていない場合、クラスｉに対応するサンプルの範囲内の全ての想定し得るサンプルをテストできるようにする変数ｋを初期化する。ステップ２６１１〜２６１９により、オフセットｊのグループ内のクラスｉのオフセットを用いてフィルタ処理されたエンコードされたサンプルと、考慮されるクラスｉにおけるオリジナルサンプルとの間の差分の絶対値の合計を計算する。ここで、ｏｒｉｇ（ｋ）は、エンコードされた値ｅｎｃ（ｋ）に対応するオリジナルサンプル値の平均である。Ｆｉｌｔｅｒ（ｉ，ｊ）は、オフセットグループｊ内のクラスｉに対応するオフセット値である。ＳｕｍＤｉｆｆ（ｊ）は、範囲を構成する全てのクラス（ここでは、４つのクラス）に関して計算される差分の合計である。
【０１３９】
ステップ２６２１〜２６２６を備えるループでは、全ての計算された差分の合計が比較されて、最小の合計を有するグループのインデックスが選択される。選択されたインデックスは、エンコードされたサンプルに適用されるときにフィルタ処理されたサンプルとオリジナルサンプルとの間の差分を最小にできるようにするオフセットのグループに対応する。
【０１４０】
構文エンコーディングプロセス中、例えば図２２においてステップ２２１１〜２２１３により表わされるようなオフセット値のエンコーディングは、オフセットの選択されたグループに対応するインデックスのエンコーディングに置き換えられる。ルマ成分ピクセルの分類は、クロマＵまたはＶ成分ピクセルの分類とは別個に行なわれ、したがって、それに応じて、各クラスが同様のピクセルの数を有するように各分類を適応させることができる。
【０１４１】
したがって、本発明の実施形態の方法は、ルマ信号またはクロマ信号の両方に関して独立により最適な分類を与えるようになされ得るより柔軟な分類手法を与え、それにより、コーディング効率の向上が得られる。
【０１４２】
以上、本発明を特定の実施形態を参照して説明してきたが、本発明は特定の実施形態に限定されず、本発明の範囲内に入る変更形態は当業者に明らかである。
【０１４３】
例えば、先の実施形態は、画像のピクセルおよびそれらの対応するピクセル値に関して記載されたが、本発明の文脈内でピクセルのグループは対応するグループピクセル値と共に考慮されてもよいことが理解される。したがって、サンプルは、画像の１つ以上のピクセルに対応してもよい。
【０１４４】
本発明の更なる態様が以下に記載される。
【０１４５】
本発明の第１の更なる態様によれば、画像の再構成サンプルの一組に補償オフセットを与える方法であって、各サンプルはそれぞれのサンプル値を有し、一組の複数のサンプルのサンプル値はサンプル値の統計的分布によって表わされる方法が提供され、当該方法は、サンプル値の統計的分布の特性に応じて、サンプルの対応するサンプル値に従ったサンプルの再区分のための複数のクラスを決定するステップであって、各クラスはサンプル値のそれぞれの範囲を規定するステップと、各決定されたクラスと前記クラスの各サンプルのそれぞれのサンプル値に適用するためのそれぞれの補償オフセットを関連付けるステップとを備える。
【０１４６】
本発明のこの態様では、サンプルの分類の決定においてサンプル値の統計的分布が考慮に入れられるため、それに応じて、分類をサンプル値の全ての想定し得る範囲に適応させることができる。また、サンプルの成分タイプに従って分類を適応させることができる。例えば、クロマ信号に対応するピクセルの場合、ピクセル値の分布は、より幅広く広がる分布を与えるルマ信号の分布と比べてピークピクセル値付近でより集約される傾向がある。したがって、本発明の実施形態の方法は、ルマ信号またはクロマ信号の両方に関して独立して、より最適な分類を与えるようになされ得るより柔軟な分類手法を与え、それにより、コーディング効率の向上が得られる。
【０１４７】
一実施形態において、統計的分布の特性は、画像サンプル値の統計的分布の決定された中心を備える。
【０１４８】
一実施形態において、統計的分布の特性は、統計的分布のサンプル値の有用な範囲を備える。
【０１４９】
一実施形態において、クラスは、サンプルがクラス間で実質的に均一に共有されるように決定される。
【０１５０】
一実施形態において、組のサンプルは少なくとも第１の成分タイプまたは第２の成分タイプのものであることができ、複数のクラスはサンプルの組の成分タイプに応じて決定される。
【０１５１】
一実施形態において、クラスの数は予め決定され、それぞれのクラスごとに規定されたサンプル値の範囲は統計的分布の特性に応じて決定される。
【０１５２】
別の実施形態において、クラスの数、および、それぞれのクラスごとに規定されたサンプル値の範囲は、統計的分布の特性に応じて決定される。
【０１５３】
一実施形態において、クラスの数は、有用な範囲内のサンプル値を有するサンプルの数に応じて決定される。
【０１５４】
一実施形態において、クラスの数は、成分タイプに従って決定される。
【０１５５】
一実施形態において、方法は、有用な範囲内のサンプル値の数に従ってクラスごとにサンプル値の最大数を決定することを含む。
【０１５６】
一実施形態において、複数のクラスを決定するステップは、複数の予め決定された分類から、統計的分布の特性に適応した複数のクラスを規定する分類を選択することを含む。
【０１５７】
一実施形態において、それぞれのクラスごとのサンプル値の範囲、統計的分布の中心、および／または、サンプル値の有用な範囲は、レート歪み基準に基づいて決定される。
【０１５８】
一実施形態において、それぞれのクラスごとのサンプル値の範囲、統計的分布の中心、および／または、サンプル値の有用な範囲は予め決定される。一実施形態において、サンプル値の有用な範囲は、閾値に対するサンプル値の比較に基づいて決定され、閾値はサンプルの総数に依存し、閾値はサンプルの成分タイプに依存し、または、閾値は予め決定された値である。
【０１５９】
一実施形態において、それぞれのクラスごとの補償オフセットは、クラスの各再構成サンプルのサンプル値と、対応するオリジナル画像のそれぞれのサンプル値との間の差分の平均から決定される。
【０１６０】
一実施形態において、サンプルの組は、画像のサンプルの複数の組のうちの１つであり、同じ数のクラスは、それぞれの組ごとに決定される。
【０１６１】
一実施形態において、サンプル値はビット深度を表わし、有用な範囲、各クラスの範囲、および／または、統計的分布の中心はビット深度に依存する。
【０１６２】
一実施形態において、所与のクラスに関するサンプル値の範囲は、有用な範囲内のクラスの位置に依存する。
【０１６３】
一実施形態において、統計的分布の縁に位置する所与のクラスに関するサンプル値の範囲は、分布の中心域内の所与のクラスに関するサンプル値の範囲よりも上である。
【０１６４】
一実施形態において、統計的分布の中心は、有用な範囲に基づいて決定される。
【０１６５】
一実施形態において、複数のクラスは、統計的分布の中心部分に位置するクラスの第１のグループと、統計的分布のそれぞれの縁部分に位置するクラスの第１および第２のサブグループを含むクラスの第２のグループとを備える。
【０１６６】
一実施形態において、統計的分布におけるクラスの第２のサブグループの位置は、コーディングのためのデータとして与えられる。
【０１６７】
一実施形態において、第２のグループのサブグループの位置は、統計的分布の全範囲とは無関係である。
【０１６８】
一実施形態において、統計的分布の中心がコーディングのために与えられない。
【０１６９】
一実施形態において、全範囲内の有用な範囲（分類）の位置は、全範囲にわたって分布される複数の想定し得る位置の中から選択され、２つの連続する位置間の間隔は、全範囲の別の部分におけるよりも全範囲の少なくとも１つの部分において小さい。
【０１７０】
例えば、より小さい間隔を有する部分は、全範囲の中央にあってもよい。
【０１７１】
別の例によれば、より小さい間隔を有する部分は、全範囲の一方の端部または両端部にあってもよい。
【０１７２】
位置は中心位置であってもよい。あるいは、位置は端部位置であってもよい。
想定し得る位置にインデックスが割り当てられてもよい。
【０１７３】
一実施形態において、それぞれのクラスごとのサンプル値の範囲、統計的分布の中心、および／または、サンプル値の有用な範囲は予め決定される。
【０１７４】
一実施形態において、少なくとも２つの異なるタイプのオフセット値が生成されてもよく、タイプのうちの１つは、前述したようにクラス（サンプル値の範囲）とそれぞれ関連付けられている所謂バンドオフセット値である。１つ以上の他のタイプのオフセット値は、所謂エッジオフセット値であってもよい。異なるタイプのエッジオフセット値が方向ごとに存在してもよく、例えば、４つの異なるタイプが４つの異なる方向にそれぞれ対応する。したがって、エッジオフセット値の組が方向ごとに存在してもよい。このとき、１つのタイプのオフセット値（バンドまたはエッジ）が選択されてもよい。選択基準は限定されないが、１つの適した基準はレート歪み基準である。その後、選択されたタイプのＳＡＯフィルタリング（バンドオフセットまたはエッジオフセット）だけがエンコーダおよびデコーダによって適用される。選択は、それぞれのフレーム領域ごとに行なわれてもよい。また、例えばかなりの向上がいずれのタイプによっても得られない場合には、「ｎｏ  ＳＡＯ」を選択すること、すなわち、バンドオフセットおよびエッジオフセットのいずれも適用しないことが可能であってもよい。一実施形態において、選択されたタイプのＳＡＯフィルタリングは、エンコーダによりエンコードされデコーダへ送信される。
【０１７５】
一実施形態において、選択されたタイプをエンコードするために固定長コードが使用される。
【０１７６】
一実施形態において、選択されたタイプがバンドオフセットである場合、有用な範囲の位置を表わす値はエンコードされる。位置は、有用な範囲の中心位置または端部位置であってもよい。
【０１７７】
一実施形態において、有用な範囲の位置をエンコードするために固定長コードが使用される。
【０１７８】
一実施形態において、有用な範囲の位置を表わす値に対応するコードワードをエンコードするために使用される固定長コードの長さによって許容される異なるコードワードの数が、異なる想定し得る位置の実際の数よりも多い場合、他の情報をエンコードするために予備のコードワードが使用される。例えば、１つの実施形態において、エッジオフセットのタイプ（方向）をエンコードするために予備のコードワードが使用される。一実施形態において、補償オフセットは、固定長コードを用いてエンコードされる。このことは、バンドオフセットまたはエッジオフセットまたは両方のタイプのオフセットに当てはまり得る。
【０１７９】
一実施形態において、固定長コードの長さによって許容される異なる補償オフセットの数は、想定し得る補償オフセットの数よりも少ない。
【０１８０】
一実施形態において、乗算係数は補償オフセット値に適用され、乗算された補償オフセット値はフィルタリングのために使用される。
【０１８１】
一実施形態において、乗算係数はエンコーダからデコーダへ送信される。
【０１８２】
一実施形態において、シフト値は補償オフセット値に適用され、シフトされた補償オフセット値はフィルタリングのために使用される。
【０１８３】
一実施形態において、シフト値はエンコーダからデコーダへ送信される。
【０１８４】
一実施形態において、少なくとも１つのタイプ（方向）に関するエッジオフセット値が予め決定される。
【０１８５】
一実施形態において、補償オフセットが画像の再構成サンプルの組に対して適用される必要があるか否かを示すフラグがエンコードされる。
【０１８６】
一実施形態において、バンドオフセット値のグループは予め規定され、グループの各オフセットは有用な範囲の１つのクラスと関連付けられる。
【０１８７】
一実施形態において、各グループにインデックスが割り当てられる。
【０１８８】
一実施形態において、予め規定されたグループはテーブルに集められ、テーブルの順序は、各グループの選択の確率に応じている。
【０１８９】
一実施形態において、各グループの選択の確率は、本発明を具現化する補償オフセットを与える方法をトレーニングシーケンスの組に適用することによって計算される。
【０１９０】
一実施形態において、オリジナルサンプルとフィルタ処理されたサンプルとの間の最小差分を有するバンドオフセット値の予め規定されたグループの間で、バンドオフセット値のグループが選択される。
【０１９１】
一実施形態において、グループのインデックスは固定長コードを使用してエンコードされる。
【０１９２】
一実施形態において、固定長コードの長さによって許容されるグループの、エンコードされた異なるインデックスの数は、想定し得る異なるグループの数よりも少ない。
【０１９３】
一実施形態において、想定し得る異なるグループ内のバンドオフセットのグループのサブセットは、各グループの選択の確率と固定長コードの長さとに応じて決定される。
【０１９４】
一実施形態において、バンドオフセットのグループのインデックスをエンコードするために使用される固定長コードの長さは予め決定される。
【０１９５】
一実施形態において、補償オフセットのグループのインデックスをエンコードするために使用される固定長コードの長さは、シーケンスヘッダ、画像ヘッダのグループ、画像ヘッダ、スライスヘッダ、または、ＬＣＵヘッダにおいてエンコードされる。
【０１９６】
本発明の第２の更なる態様によれば、複数のサンプルから構成された画像をエンコードする方法が提供され、この方法は、サンプルをエンコードするステップと、再構成サンプルを与えるためにエンコードされたサンプルをデコードするステップと、再構成サンプルに対してループフィルタリングを行なうステップであって、ループフィルタリングはそれぞれの再構成サンプルのサンプル値に補償オフセットを適用することを含み、各補償オフセットはサンプル値の範囲と関連付けられ、補償オフセットは第１の更なる態様の方法に従って与えられる、ステップと、エンコードされたサンプルのビットストリームを生成するステップとを備える。
【０１９７】
一実施形態において、前記方法は、それぞれのクラスごとにそれぞれの補償オフセットを表わすエンコードされたデータをビットストリームにおいて送信するステップを含む。
【０１９８】
一実施形態において、前記方法は、複数の決定されたクラスを規定するエンコードされた分類データをビットストリームにおいて送信するステップを含む。
【０１９９】
一実施形態において、分類データは、統計的分布の中心を表わすデータを備える。
【０２００】
一実施形態において、分類データは、それぞれの複数のクラスごとに規定されたサンプル値の範囲を表わすデータを備える。
【０２０１】
一実施形態において、前記方法は、統計的分布の有用な範囲を表わすデータを備える分類データを含む。
【０２０２】
本発明の第３の更なる態様によれば、複数のサンプルから構成された画像をデコードする方法が提供され、この方法は
エンコードされたサンプルを受け取るステップと、
再構成サンプルを与えるためにエンコードされたサンプルをデコードするステップと、再構成サンプルに対してループフィルタリングを行なうステップであって、ループフィルタリングはそれぞれの再構成サンプルのサンプル値に補償オフセットを適用することを含み、各補償オフセットはサンプル値の範囲と関連付けられ、補償オフセットは先の実施形態のうちのいずれか１つの方法に従って与えられる、ステップと、
を備える。
【０２０３】
本発明の更なる態様のうちの別の態様は、複数のサンプル値から構成された画像をデコードする方法を提供し、この方法は
エンコードされたサンプル値を受け取るステップと、
先の実施形態のうちのいずれか１つの方法に従って与えられるそれぞれの補償オフセットと関連付けられた複数のクラスを規定するエンコードされた分類データを受け取るステップであって、各補償オフセットはサンプル値の範囲に対応する、ステップと、
再構成サンプルを与えるためにエンコードされたサンプルをデコードし、エンコードされた補償オフセットをデコードするステップと、
再構成サンプルに対してループフィルタリングを行なうステップであって、ループフィルタリングは、サンプルのサンプル値に従って、それぞれのサンプルの画像サンプルに、受け取られた補償オフセットを適用することを含む、ステップと、
を備える。
【０２０４】
一実施形態において、分類データは、統計的分布の中心を表わすデータ、それぞれの複数のクラスごとに規定されたサンプル値の範囲を表わすデータ、および／または、統計的分布の有用な範囲を表わすデータを備える。
【０２０５】
本発明の更なる態様のうちの別の１つの態様によれば、ビデオビットストリームにより表わされる画像のための情報データセットを運ぶ信号が提供され、この画像は再構成可能サンプルの組を含み、各再構成可能サンプルは再構成後にそれぞれのサンプル値を有し、組の複数の再構成サンプルのサンプル値はサンプル値の統計的分布によって表わすことができ、情報データセットは、それぞれの再構成サンプルのサンプル値に適用するためのそれぞれの補償オフセットと関連付けられた複数のクラスを表わす分類データを備え、分類データは統計的分布に従って決定される。
【０２０６】
一実施形態において、分類データは、統計的分布の中心を表わすデータ、それぞれの複数のクラスごとに規定されたサンプル値の範囲を表わすデータ、および／または、統計的分布の有用な範囲を表わすデータを備える。
【０２０７】
本発明の更なる態様のうちの別の態様によれば、画像の再構成サンプルの組に補償オフセットを与えるための装置が提供され、各サンプルはそれぞれのサンプル値を有し、組の複数のサンプルのサンプル値はサンプル値の統計的分布によって表わすことができ、前記装置は、
サンプル値の統計的分布の特性に応じて、サンプルの対応するサンプル値に従ったサンプルの再区分のための複数のクラスを決定するための手段であって、各クラスはサンプル値のそれぞれの範囲を規定する、手段と、
各決定されたクラスと前記クラスの各サンプルのそれぞれのサンプル値に適用するためのそれぞれの補償オフセットを関連付けるための手段と、
を備える。
【０２０８】
本発明の更なる態様のうちの別の態様は、複数のサンプルから構成された画像をエンコードするためのエンコーディング装置を提供し、装置は、サンプルをエンコードするためのエンコーダと、再構成サンプルを与えるためにエンコードされたサンプルをデコードするためのデコーダと、再構成サンプルをフィルタ処理するためのループフィルタを備え、ループフィルタリング手段は、それぞれの再構成サンプルのサンプル値に補償オフセットを適用するためのオフセット適用手段を備え、各補償オフセットはサンプル値の範囲と関連付けられ、補償オフセットは先の実施形態の装置によって与えられ、更にエンコードされたサンプルのビットストリームを生成するためのビットストリーム生成器とを備えている。
【０２０９】
本発明の更なる態様のうちの更に別の態様は、複数のサンプルから構成された画像をデコードするためのデコーディング装置を提供し、装置は、エンコードされたサンプルを受け取るための受信器と、再構成サンプルを与えるためにエンコードされたサンプルをデコードするためのデコーダと、再構成サンプルをループフィルタ処理するためのループフィルタを備え、ループフィルタは、それぞれの再構成サンプルのサンプル値に補償オフセットを適用するための手段を備え、各補償オフセットはサンプル値の範囲と関連付けられ、補償オフセットは先の実施形態による装置によって与えられる。
【０２１０】
本発明の更なる態様のうちの別の態様は、複数のサンプル値から構成された画像をデコードするためのデコーディング装置を提供し、装置は、エンコードされたサンプル値を受け取り、先の実施形態による装置によって与えられるそれぞれの補償オフセットと関連付けられた、複数のクラスを規定するエンコードされた分類データを受け取るための受信器であって、各補償オフセットはサンプル値の範囲に対応する、受信器と、再構成サンプルを与えるためにエンコードされたサンプルをデコードし、エンコードされた補償オフセットをデコードするためのデコーダと、再構成サンプルをループフィルタ処理するためのループフィルタであって、サンプルのサンプル値に従って、それぞれのサンプルの画像サンプルに受け取られた補償オフセットを適用するための手段を備えるループフィルタとを備える。
【０２１１】
前述の例示的な実施形態を参照すると、多くの更なる変更形態および変形例が当業者には想起されよう。前述の例示的な実施形態は単なる一例として示されており、添付の特許請求の範囲のみによって決定される本発明の範囲を限定するものではない。特に、異なる実施形態からの異なる特徴は、適切な場合には交換されてもよい。
【０２１２】
特許請求の範囲において、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」は、他の要素またはステップを排除せず、不定冠詞「１つの（ａ）」または「１つの（ａｎ）」は複数を排除しない。異なる特徴が互いに異なる独立請求項に記載されているという単なる事実は、これらの特徴の組合せを有利に使用できないことを示唆しない。
【図１】
2020022183.tif 000003
【図２】
2020022183.tif 000004
【図３】
2020022183.tif 000005
【図４】
2020022183.tif 000006
【図５】
2020022183.tif 000007
【図６】
2020022183.tif 000008
【図７】
2020022183.tif 000009
【図８】
2020022183.tif 000010
【図９】
2020022183.tif 000011
【図１０】
2020022183.tif 000012
【図１１】
2020022183.tif 000013
【図１２】
2020022183.tif 000014
【図１３】
2020022183.tif 000015
【図１４】
2020022183.tif 000016
【図１５】
2020022183.tif 000017
【図１６】
2020022183.tif 000018
【図１７】
2020022183.tif 000019
【図１８】
2020022183.tif 000020
【図１９Ａ】
2020022183.tif 000021
【図１９Ｂ】
2020022183.tif 000022
【図２０Ａ】
2020022183.tif 000023
【図２０Ｂ】
2020022183.tif 000024
【図２１】
2020022183.tif 000025
【図２２】
2020022183.tif 000026
【図２３】
2020022183.tif 000027
【図２４】
2020022183.tif 000028
【図２５】
2020022183.tif 000029
【図２６】
2020022183.tif 000030