(57)【特許請求の範囲】
【請求項１】
映像情報をフィルタリングする方法であって、
映像情報を格納することであって、前記映像情報は、少なくとも２つの空間的に隣接する映像ブロックを備え、各映像ブロックは、複数の映像サンプルを備え、各映像サンプルは、ビット深度を有し、前記映像サンプルは、前記隣接する映像ブロックのうちの２つの間の縁を横切って延びるサンプルの連続するライン上の空間的に隣接する映像サンプルを備えることと、
前記映像サンプルの少なくとも１つに基づいてフィルタリング入力を決定すること、及び、前記フィルタリング入力の前記ビット深度が、前記フィルタリング入力が基づく前記少なくとも１つの映像サンプルの総ビット深度よりも少ないように、前記フィルタリング入力の前記ビット深度を制限することと、
前記フィルタリング入力の値及び前記映像サンプルのうちの１つ以上の組み合わせとして調整値を決定することと、
フィルタリングされた映像サンプルを入手するために前記映像サンプルのうちの１つ以上と前記調整値を組み合わせることと
を備える、方法。
【請求項２】
前記フィルタリング入力の前記値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記フィルタリング入力の前記値は、前記フィルタリング入力の前記値が前記下限を下回る場合は前記フィルタリング入力の前記値を前記下限に設定し、前記フィルタリング入力の前記値が前記上限を上回る場合は前記フィルタリング入力の前記値を前記上限に設定することによって抑えられる請求項１に記載の方法。
【請求項３】
前記調整値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記調整値は、前記調整値が前記下限を下回る場合は前記調整値を前記下限に設定し、前記調整値が前記上限を上回る場合は前記調整値を前記上限に設定することによって抑えられる請求項１に記載の方法。
【請求項４】
前記フィルタリング入力の前記値の前記ビット深度は、前記フィルタリング入力の前記値を量子化することによって制限される請求項１に記載の方法。
【請求項５】
前記フィルタリング入力の前記値をラインバッファに格納することをさらに備える請求項１に記載の方法。
【請求項６】
前記フィルタリングされた映像サンプルを用いて前記映像情報を符号化することをさらに備える請求項１に記載の方法。
【請求項７】
前記フィルタリングされた映像サンプルを用いて前記映像情報を復号することをさらに備える請求項１に記載の方法。
【請求項８】
前記フィルタリングされた映像サンプルは、フィルタリング強度に少なくとも部分的に基づいて入手される請求項１に記載の方法。
【請求項９】
前記フィルタリング入力の前記値、すなわちｐｓｈｏｒｔ、は、下記の式に従って決定される：
pshort = Clipa-b(p3 - 2*p2 + p1)
または
pshort = Clipa-b(2*p3 - 5*p2 + p1 + 2*p0)
ここで、ｐ０、ｐ１、ｐ２、およびｐ３は、前記少なくとも２つの隣接するブロック間の前記縁からの前記隣接する映像サンプルであり、ａは、前記フィルタリング入力の前記値に関する最大値であり、ｂは、前記フィルタリング入力の前記値に関する最小値である、請求項１に記載の方法。
【請求項１０】
前記少なくとも２つの隣接するブロック間の前記縁から３番目に位置する前記サンプル、ｐ２、に関する前記調整値は、
Clip(-2*tc)-(2*tc) ((2*pshort - p2 - p1 +q0 + 4) >> 3)
であり、
ここで、調整値の最大値及び最小値は、範囲（−２＊ｔｃ）乃至（２＊ｔｃ）にあり、ここで、ｑ０は、ｐ２に対する前記縁の反対側における前記縁に最も近い前記映像サンプルである、請求項９に記載の方法。
【請求項１１】
コンピュータによって読み取り可能な記憶媒体であって、実行されたときに、請求項１乃至１０のうちのいずれか１項に記載の方法を装置に行わせる命令を記憶した、コンピュータによって読み取り可能な記憶媒体。
【請求項１２】
映像情報をフィルタリングするための装置であって、
映像情報を格納するための手段であって、前記映像情報は、少なくとも２つの空間的に隣接する映像ブロックを備え、各映像ブロックは、複数の映像サンプルを備え、各映像サンプルは、ビット深度を有し、前記映像サンプルは、前記隣接する映像ブロックのうちの２つの間の縁を横切って延びるサンプルの連続するライン上の空間的に隣接する映像サンプルを備える手段と、
前記映像サンプルの少なくとも１つに基づいてフィルタリング入力を決定する、及び、前記フィルタリング入力の前記ビット深度が、前記フィルタリング入力が基づく前記少なくとも１つの映像サンプルの総ビット深度よりも少ないように、前記フィルタリング入力の前記ビット深度を制限するための手段と、
前記フィルタリング入力の値及び前記映像サンプルのうちの１つ以上の組み合わせとして調整値を決定するための手段と、
フィルタリングされた映像サンプルを入手するために前記映像サンプルのうちの１つ以上と前記調整値を組み合わせるための手段と
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［０００１］本開示は、映像コーディングに関するものである。
【背景技術】
【０００２】
［０００２］デジタル映像能力を広範なデバイス内に組み入れることができ、デジタルテレビと、デジタル直接放送システムと、無線放送システムと、パーソナルデジタルアシスタント（ＰＤＡ）と、ラップトップ又はデスクトップコンピュータと、タブレットコンピュータと、電子書籍リーダーと、デジタルカメラと、デジタル記録デバイスと、デジタルメディアプレーヤーと、ビデオゲームプレイ装置と、ビデオゲームコンソールと、セルラー又は衛星無線電話と、いわゆる“スマートフォン”と、ビデオ会議装置と、映像ストリーミングデバイスと、等、を含む。デジタル映像デバイスは、映像コーディング技法、例えば、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ））、現在策定中の高効率映像コーディング（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格によって定義される規格、及び該規格の拡張版において説明されるそれらを実装する。映像デバイスは、該映像コーディング技法を実装することによってデジタル映像情報をより効率的に送信、受信、符号化、復号、及び／又は格納することができる。
【０００３】
［０００３］映像コーディング技法は、映像シーケンスに固有の冗長性を低減又は除去するために空間的（イントラピクチャ）予測及び／又は時間的（インターピクチャ）予測を行う。ブロックに基づく映像コーディングでは、映像スライス（例えば、映像フレーム又は映像フレームの一部分）を映像ブロックに分割することができ、それらは、複数の映像サンプル（ピクセルとも呼ばれる）を備える。映像ブロックは、ツリーブロック、コーディングユニット（ＣＵ）及び／又はコーディングノードと呼ぶこともできる。ピクチャのイントラコーディングされた（Ｉ）スライス内の映像ブロックは、同じピクチャ内の近隣ブロック内の基準サンプルに関して空間的予測を用いて符号化される。ピクチャのインターコーディングされた（Ｐ又はＢ）スライス内の映像ブロックは、同じピクチャ内の近隣ブロック内の基準サンプルに関しては空間的予測、その他の基準ピクチャ内の基準サンプルに関しては時間的予測を使用することができる。ピクチャは、フレームと呼ぶことができ、基準ピクチャは、基準フレームと呼ぶことができる。
【０００４】
［０００４］空間又は時間的予測の結果、コーディングされるべきブロックに関する予測ブロックが得られる。残差データは、コーディングされるべきオリジナルのブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する基準サンプルのブロックを指し示す動きベクトル、及びコーディングされたブロックと予測ブロックとの間の差分を示す残差データにより符号化される。イントラコーディングされたブロックは、イントラコーディングモード及び残差データにより符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換することができ、その結果残差変換係数が得られ、それらは量子化することができる。量子化された変換係数は、当初は二次元配列で配置され、変換係数の一次元ベクトルを生成するために走査することができ、及び、さらなる圧縮を達成させるためにエントロピーコーディングを適用することができる。
【発明の概要】
【０００５】
［０００５］概して、本開示は、ブロックに基づく映像データのフィルタリングに関連する技術について説明する。映像ブロックに関して符号化動作が行われ、その結果得られたデータが圧縮されるときには、ブロック間の縁（又は境界）においてサンプル間で突然の遷移が生じるおそれがある。これらの突然の変化は、ブロッキングアーティファクトと時々呼ばれる。幾つかの例では、デブロッキングフィルタは、該アーティファクトを低減するため又はそれらの視覚効果を軽減するために使用することができる。デブロッキングフィルタは、１つ以上の入力に依存することができ、これらの入力のビット深度は、本開示の技法より小さくすることができる。
【０００６】
［０００６］デブロッキングフィルタがハードウェア内に実装されるときには、フィルタリング中に使用された入力の値を格納するためにラインバッファが使用される。該入力は、ブロックの縁の近くに位置する映像サンプルを含むことができる。本開示の幾つかの実施形態は、ラインバッファによって使用されるメモリの量を低減させるために使用することができる。例えば、ブロックの縁の各側における４つの映像サンプルを格納する代わりに、各側から、サンプルのビット深度よりも小さいそれを有する３つのサンプル及び１つの入力、すなわち計算された値、を格納するようにデブロッキングフィルタを構成することができる。該入力のより小さいビット深度は、ラインバッファ内においてサンプルよりも小さいスペースを占めるのを可能にする。その結果、ラインバッファは、より小さく、対費用効果がより高く、かつ効率的であることができる。
【０００７】
［０００７］本開示の幾つかの態様による映像情報をフィルタリングするように構成された装置は、メモリユニットと、そのメモリユニットと通信状態にあるプロセッサと、を含む。メモリユニットは、少なくとも２つの隣接する映像ブロックを備える映像情報を格納する。各映像ブロックは、複数の映像サンプルを含み、各映像サンプルは、ビット深度を有する。プロセッサは、映像サンプル及び調整値に少なくとも部分的に基づいてフィルタリングされた映像サンプルを決定する。プロセッサは、少なくとも部分的に制限されたビット深度を有する入力から調整値を決定することができる。入力は、１つ以上の映像サンプルの組から決定され、それのビット深度は、１つ以上の映像サンプルのビット深度よりも小さくなるように制限される。
【０００８】
［０００８］１つ以上の例の詳細が、添付図面及び以下の説明において示される。それらの説明及び図面から、及び請求項からその他の特徴、目的、及び利点が明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】［００９］本開示の態様により技法を利用することができる映像符号化及び復号システム例を示したブロック図である。
【図２】［００１０］本開示の態様により技法を実装することができる映像符号器の例を示したブロック図である。
【図３】［００１１］本開示の態様により技法を実装することができる映像復号器の例を示したブロック図である。
【図４Ａ】［００１２］本開示の態様によりフィルタリングすることができる、複数の映像ブロックを備える映像スライスを例示した概念図である。
【図４Ｂ】［００１３］図４Ａの幾つかの映像ブロックをさらに詳細に例示した概念図である。
【図５】［００１４］本開示の態様による小さくされたビット深度を有する入力を有するデブロッキングフィルタに関するプロセス例を示したフローチャートである。
【図６】［００１５］ＨＥＶＣワーキングドラフトに基づいてデブロッキングフィルタに関して詳細に説明される図５からのプロセス例の１つのバージョンを例示したフローチャートである。
【図７Ａ】［００１６］デブロッキングフィルタによって使用される入力をラインバッファ内に格納することができる方法を示した例の概念図である。
【図７Ｂ】［００１７］本開示の態様によりデブロッキングフィルタによって使用される小さくされたビット深度を有する入力を、縮小されたサイズを有するラインバッファ内に格納することができる方法を示した例の概念図である。
【発明を実施するための形態】
【００１０】
［００１８］本開示の実施形態は、ブロックに基づく映像コーディングに関するものであり、それは、符号化及び復号の両方を含むことができる。例えば、実施形態は、高効率映像コーディング（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）の実装に関するものであることができ、又は、高効率映像コーディング（ＨＥＶＣ）の実装とともに使用することができ、又は、高効率映像コーディング（ＨＥＶＣ）の実装内で使用することができる。前記のように、ブロックに基づく映像符号器は、映像スライス（例えば、映像フレーム）をブロックに分割し、それらの各々は、複数のサンプルが入っている。各サンプルの値は、映像の特定の部分の１つ以上の態様を表す。例えば、映像ブロックの右下隅のサンプルの値は、映像ピクチャの対応する部分に関するルミナンス（“ルマ”）又はクロミナンス（“クロマ”）レベルを表すことができる。
【００１１】
［００１９］例示することのみを目的して、本開示の幾つかの技法は、例を用いて説明される。それらの例の一部は、４つの行及び４つの列に配置された１６のサンプルが入ったブロックを含む。技法は、様々な数の行及び列により多い又はより少ない数のサンプルが入ったブロックを有する例にまで拡大することができることが理解されるべきである。
【００１２】
［００２０］映像コーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２又はＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６４を含む。さらに、新しいコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）、が、ＩＴＵ−Ｔビデオコーディングエキスパーツグループ（ＶＣＥＧ）及びＩＳＯ／ＩＥＣモーションピクチャエキスパーツグループ（ＭＰＥＧ）の映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）によって開発中である。２０１２年１０月２４日現在では、“ＨＥＶＣワーキングドラフト６”と呼ばれるＨＶＣＶ規格のドラフトを、http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v6.zipからダウンロード可能である。ＨＥＶＣワーキングドラフト６に関する完全な引用名は、document JCTVC-H1003, Bross et al., "High Efficiency Video Coding(HEVC) Text Specification Draft 6," Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, Switzerland, November 21, 2011 to November 30, 2011である。これらの引用文書の各々は、引用によってその全体が組み入れられている。
【００１３】
［００２１］前記のように、ブロックに基づく映像符号器は、予測（例えば、インターフレーム又はイントラフレーム）によって映像データを圧縮することができる。符号器は、残差データを生成することもでき、それは、特定のブロック内における予測サンプルと実際のサンプルとの間の差分を表す。残差データは、サンプル領域から変換領域に変換することができ、その結果得られた変換係数を量子化することができる。量子化された変換係数は、符号化された映像データの近似を表し、その近似は、ある程度の誤差を呈することがある。量子化された変換係数は、各ブロックに関して別々に計算されるため、誤差の分布は、ブロック間の境界において突然変化することがある。
【００１４】
［００２２］復号が行われるときには、量子化プロセス及び変換プロセスが逆転され、各ブロックに関するサンプルの組を提供する。これらのサンプルは、上述されるように、量子化プロセスによって導入された誤差又はアーティファクトに起因して符号化されたオリジナルのサンプルとまったく同じでないことがある。その結果、符号化されたデータから得られたピクチャは、ブロッキングアーティファクトを含むことがあり、例えば、ピクチャが表示されたときに視覚的に煩わしい不連続部として現れることができるブロック縁を横切るサンプル値の鋭い遷移である。
【００１５】
［００２３］本開示において説明される技法は、該ブロッキングアーティファクトの影響を軽減するために使用されるデブロッキングフィルタに関連する課題に対処することができる。デブロッキングフィルタは、ブロックの縁を横切る遷移を平滑化するために隣接するブロック内のサンプルを調整することができる。デブロッキングフィルタによって行われる調整は、ブロック内のサンプルを入力として使用する決定及び計算を含むことができる。本開示の技法は、１つ以上の代替入力を選択するために使用することができ、それらは、１つ以上のサンプルの代わりに決定及び計算において使用することができる。代替入力自体をサンプルから導き出すことができるが、それのビット深度は、それが取って代わるサンプルのビット深度よりも小さくなるように制限することができる。
【００１６】
［００２４］開示される技法は、要求されるラインバッファ記憶量を低減させるためにデブロッキングフィルタのハードウェア実装において使用することができる。ラインバッファは、メモリから入力を再フェッチするのを回避するために、フィルタリングプロセスに関して要求される入力を格納するために使用される。デブロッキングフィルタを実装するために要求されるラインバッファ数は、フィルタリングプロセス内での決定及び計算のために使用される入力数によって決定される。ラインバッファのビット深度は、そこに格納される入力のビット深度によって決定される。上記のように、本開示の技法は、少なくとも１つの入力のビット深度を小さくするために使用することができる。開示される技法は、フィルタによって要求される入力数を減少させるためにも使用することができる。それらの技法が、高解像度映像スライスとともに使用されるときには、デブロッキングのために要求される総ラインバッファ記憶量を有意に低減させることができる。
【００１７】
［００２５］以後は、新規のシステム、装置、及び方法の様々な態様が、添付される図面を参照してより完全に説明される。しかしながら、本開示は、数多くの異なる形態で具現化することができ、本開示全体を通じて提示される特定の構造又は機能に限定されるとは解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であるようにするために及び本開示の適用範囲を当業者に十分に伝達するようにするために提供される。ここにおける教示に基づき、本開示の適用範囲は、発明のその他の態様から独立して実装されるか又は結合されて実装されるかにかかわらず、ここにおいて開示される新規のシステム、装置、及び方法のあらゆる態様を網羅することが意図されていることを当業者は評価すべきである。例えば、ここにおいて説明される態様のうちのあらゆる数を用いて装置を実装し、方法を実践することができる。さらに、発明の適用範囲は、ここにおいて説明される発明の様々な態様に加えて又は様々な態様以外にその他の構造、機能、又は構造と機能を用いて実践される装置又は方法を網羅することが意図される。ここにおいて開示されるいずれの態様も、請求項の１つ以上の要素によって具現化することができることが理解されるべきである。
【００１８】
［００２６］ここでは特定の態様が説明されるが、これらの態様の数多くの変形及び置換が本開示の適用範囲内に入る。好ましい態様の幾つかの利益及び利点が述べられているが、本開示の適用範囲は、特定の利益、用途、又は目標に限定することは意図されない。むしろ、本開示の態様は、例えば、異なる無線技術、システム構成、ネットワーク、及び送信プロトコルとともに使用することができる異なる映像フィルタ及び映像コーダに広範囲にわたって適用可能であることが意図され、そのうちの一部は、図において及び以下の説明において例として示される。発明を実施するための形態及び図面は、制限するのではなく、単に本開示を例示するものであるにすぎず、本開示の適用範囲は、添付された請求項及びそれらの同等物によって定義される。
【００１９】
［００２７］図１は、本開示において説明される態様により技法を利用することができる映像符号化及び復号システム例を示したブロック図である。図１において示されるように、システム１０は、行先デバイス１４によってのちに復号されることになる符号化された映像データを提供するソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータによって読み取り可能な媒体１６を介して行先デバイ１４に映像データを提供する。ソースデバイス１２及び行先デバイス１４は、広範なデバイスを備えることができ、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、例えば、いわゆる“スマート”フォン、いわゆる“スマート”パッド、テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミングデバイス、等を含む。幾つかの場合は、ソースデバイス１２及び行先デバイス１４は、無線通信のために装備することができる。
【００２０】
［００２８］行先デバイス１４は、コンピュータによって読み取り可能な媒体１６を介して復号されるべき符号化された映像データを受信することができる。コンピュータによって読み取り可能な媒体１６は、符号化された映像データをソースデバイス１２から行先デバイス１４に移動させることが可能なタイプの媒体又はデバイスを備えることができる。一例では、コンピュータによって読み取り可能な媒体１６は、ソースデバイス１２が符号化された映像データをリアルタイムで直接行先デバイス１４に送信するのを可能にする通信媒体を備えることができる。符号化された映像データは、通信規格、例えば、無線通信プロトコル、により変調し、行先デバイス１４に送信することができる。通信媒体は、無線又は有線の通信媒体、例えば、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的送信ライン、を備えることができる。通信媒体は、パケットに基づくネットワーク、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク、例えば、インターネット、の一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス１２から行先デバイス１４への通信を容易にするのに役立つことができるその他のあらゆる装置を含むことができる。
【００２１】
［００２９］幾つかの例では、符号化されたデータは、出力インタフェース２２から記憶デバイス３２に出力することができる。同様に、符号化されたデータは、入力インタフェース２８によって記憶デバイスからアクセスすることができる。記憶デバイスは、様々な分散された又はローカルでアクセスされるデータ記憶媒体、例えば、ハードドライブ、Ｂｌｕｅ−ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性又は非揮発性メモリ、又は符号化された映像データを格納するためのその他の適切なデジタル記憶媒体を含むことができる。さらなる例では、記憶デバイスは、ソースデバイス１２によって生成された符号化された映像を格納することができるファイルサーバ又は他の中間的な記憶デバイスに対応することができる。行先デバイス１４は、ストリーミング又はダウンロードを介して記憶デバイスから格納された映像データにアクセスすることができる。ファイルサーバは、符号化された映像データを格納すること及びその符号化された映像データを行先デバイス１４に送信することが可能なあらゆるタイプのサーバであることができる。ファイルサーバ例は、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、又はローカルディスクドライブを含む。行先デバイス１４は、インターネット接続を含む標準的なデータ接続を通じて符号化された映像データにアクセスすることができる。これは、ファイルサーバに格納された符号化された映像データにアクセスするのに適する無線チャネル（例えば、Ｗｉ−Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデム、等）、又は両方の組み合わせを含むことができる。記憶デバイスからの符号化された映像データの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合わせであることができる。
【００２２】
［００３０］本開示の技法は、無線の用途またはセッティングには必ずしも限定されない。それらの技法は、映像コーディングに適用することができ、様々なマルチメディア用途、例えば、オーバー・ザ・エアテレビ放送、ケーブルテレビ送信、衛星テレビ送信、インターネットストリーミング映像送信、例えば、ダイナミックアダプティブストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）、符号化されてデータ記憶媒体上に格納されるデジタル映像、データ記憶媒体に格納されたデジタル映像の復号、又はその他の用途をサポートする。幾つかの例では、システム１０は、映像ストリーミング、映像再生、映像放送、及び／又は映像テレフォニー、等の用途をサポートするために１方向又は２方向の映像送信をサポートするように構成することができる。
【００２３】
［００３１］図１の例では、ソースデバイス１２は、映像ソース１８と、映像符号器２０と、出力インタフェース２２と、を含む。行先デバイス１４は、入力インタフェース２８と、映像復号器３０と、表示装置３２と、を含む。この開示により、ソースデバイス１２の映像符号器２０は、複数の規格又は拡張規格に準拠して映像データを含むビットストリームをコーディングするための技法を適用するように構成することができる。その他の例では、ソースデバイス及び行先デバイスは、その他のコンポーネント又は配置を含むことができる。例えば、ソースデバイス１２は、外部の映像ソース１８、例えば、外部のカメラ、から映像データを受信することができる。同様に、行先デバイス１４は、一体化された表示装置を含むのではなく、外部の表示装置とインタフェースすることができる。
【００２４】
［００３２］図１の例示されるシステム１０は、単なる１つの例である。本開示の技法は、あらゆるデジタル映像符号器及び／又は復号器によって実行することができる。さらに、本開示の技法は、映像の符号化又は復号の前に、又は例えば、復号後に適用されるフィルタによって、映像の符号化又は復号に後続して実行することができる。幾つかの例では、デバイス１２、１４は、実質的に対称的な形で動作することができ、従って、デバイス１２、１４の各々は、映像符号化及び復号コンポーネントを含む。従って、システム１０は、例えば、映像ストリーミング、映像再生、映像放送、及び／又は映像テレフォニーのためにデバイス１２、１４間での１方向又は２方向の映像送信をサポートすることができる。
【００２５】
［００３３］ソースデバイス１２の映像ソース１８は、映像キャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされた映像が入った映像アーカイブ、及び／又は映像コンテンツプロバイダからの映像を受信するための映像フィードインタフェースを含むことができる。さらなる代替として、映像ソース１８は、コンピュータグラフィックスに基づくデータを、ソース映像、又は、ライブ映像、アーカイブに保存された映像、及びコンピュータによって生成された映像の組み合わせとして生成することができる。幾つかの事例では、映像ソース１８がビデオカメラである場合は、ソースデバイス１２及び行先デバイス１４は、いわゆるカメラフォン又はビデオフォンであることができる。しかしながら、上記のように、本開示において説明される技法は、映像コーディング全般に適用可能であり、無線及び／又は有線用途に適用することができる。各事例において、キャプチャされた、予めキャプチャされた、又はコンピュータによって生成される映像は、映像符号器２０によって符号化することができる。符号化された映像情報は、出力インタフェース２２によってコンピュータによって読み取り可能な媒体１６上に出力することができる。
【００２６】
［００３４］コンピュータによって読み取り可能な媒体１６は、一時的な媒体、例えば、無線放送又は有線ネットワーク送信、又は記憶媒体（すなわち、非一時的な記憶媒体）、例えば、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク、又はその他のコンピュータによって読み取り可能な媒体、を含むことができる。幾つかの例では、ネットワークサーバ（示されていない）は、例えば、ネットワーク送信、直接有線通信、等を介して、符号化された映像データをソースデバイス１２から受信し、符号化された映像データを行先デバイス１４に提供することができる。同様に、媒体生産ファシリティ、例えば、ディスクスタンピングファシリティ、のコンピューティングデバイスは、符号化された映像データをソースデバイス１２から受信し、符号化された映像データが入ったディスクを生産することができる。従って、コンピュータによって読み取り可能な媒体１６は、様々な例においては、様々な形態の１つ以上のコンピュータによって読み取り可能な媒体を含むと理解することができる。
【００２７】
［００３５］行先デバイス１４の入力インタフェース２８は、コンピュータによって読み取り可能な媒体１６から情報を受信する。コンピュータによって読み取り可能な媒体１６の情報は、映像符号器２０によって定義された構文情報を含むことができ、それは、映像復号器３０によっても使用され、ブロック及びその他のコーディングされたユニット、例えば、ＧＯＰ、の特徴及び／又は処理を記述する構文要素を含む。表示装置３２は、復号された映像データをユーザに表示し、及び、様々な表示装置、例えば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、又は他のタイプの表示装置、を備えることができる。
【００２８】
［００３６］映像符号器２０及び映像復号器３０は、映像コーディング規格、例えば、現在策定中の高効率映像コーディング（ＨＥＶＣ）規格、に従って動作することができ、及びＨＥＶＣテストモデル（ＨＭ）に準拠することができる。代替として、映像符号器２０及び映像復号器３０は、その他の独占規格又は工業規格、例えば、ＩＴＵ−Ｔ  Ｈ．２６４規格、代替でＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれる、又は該規格の拡張版、により動作することができる。本開示の技法は、特定のコーディング規格には限定されず、上記のあらゆる規格を含むがこれらに限定されない。映像コーディング規格のその他の例は、ＭＰＥＧ−２と、ＩＴＵ−Ｔ  Ｈ．２６３と、を含む。図１には示されていないが、幾つかの態様では、映像符号器２０及び映像復号器３０は、各々、音声符号器及び復号器と一体化することができ、及び、共通のデータストリーム又は別々のデータストリーム内の音声及び映像の両方の符号化を取り扱うための該当するＭＵＸ−ＤＥＭＵＸユニット、又はその他のハードウェア及びソフトウェアを含むことができる。該当する場合は、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はその他のプロトコル、例えば、ユーザデータグラムプロトコル（ＵＤＰ）、に準拠することができる。
【００２９】
［００３７］映像符号器２０及び映像復号器３０は、各々、様々な適切な符号器回路、例えば、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はそれらのあらゆる組み合わせのうちのいずれかとして実装することができる。技法がソフトウェア内において部分的に実装されるときには、デバイスは、ソフトウェアに関する命令を適切な、非一時的なコンピュータによって読み取り可能な媒体に格納することができ及び本開示の技法を実行するために１つ以上のプロセッサを用いてハードウェア内で命令を実行することができる。映像符号器２０及び映像復号器３０の各々は、１つ以上の符号器又は復号器に含めることができ、それらのいずれも、各々のデバイスにおいて結合された符号器／復号器（ＣＯＤＥＣ）の一部として一体化することができる。映像符号器２０及び／又は映像復号器３０を含むデバイスは、集積回路、マイクロプロセッサ、及び／又は無線通信デバイス、例えば、携帯電話、を備えることができる。
【００３０】
［００３８］ＪＣＴ−ＶＣでは、ＨＥＶＣ規格の策定作業中である。ＨＥＶＣ標準化努力は、ＨＥＶＣテストモデル（ＨＭ）と呼ばれる映像コーディングデバイスの進化中のモデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣ、による既存のデバイスに対する映像コーディングデバイスの幾つかの追加能力を想定している。例えば、Ｈ．２６４は９つのイントラ予測符号化モードを提供する一方で、ＨＭは、３３ものイントラ予測符号化モードを提供することができる。
【００３１】
［００３９］概して、ＨＭのワーキングモデルでは、映像フレーム又はピクチャは、ルマサンプル及びクロマサンプルの両方を含むツリーブロック又は最大コーディングユニット（ＬＣＵ）のシーケンスに分割することができると記述している。ビットストリーム内の構文データは、ＬＣＵに関するサイズを定義することができ、それは、サンプル数の点で最大のコーディングユニットである。スライスは、幾つかの連続するツリーブロックをコーディング順に含む。映像フレーム又はピクチャは、１つ以上のスライスに分割することができる。各ツリーブロックは、四分木に従ってコーディングユニット（ＣＵ）に分割することができる。概して、四分木データ構造は、ＣＵ当たり１つのノードを含み、ツリーブロックに対応する根ノードを有する。ＣＵが４つのサブＣＵに分割される場合は、ＣＵに対応するノードは、４つの葉ノードを含み、それらの各々は、サブＣＵのうちの１つに対応する。
【００３２】
［００４０］四分木データ構造の各ノードは、対応するＣＵに関する構文データを提供することができる。例えば、四分木内のノードは、ノードに対応するＣＵがサブＣＵに分割されるかどうかを示すスプリットフラグを含むことができる。ＣＵに関する構文要素は、繰り返し定義することができ、及び、ＣＵの映像ブロックがサブブロックに分割されているかどうかに依存することができる。ＣＵがさらに分割されない場合は、葉ＣＵと呼ばれる。本開示では、葉ＣＵの４つのサブＣＵは、オリジナルの葉ＣＵの明示の分割が存在しない場合でも葉ＣＵと呼ばれる。例えば、１６×１６のＣＵがさらに分割されない場合は、１６×１６のＣＵがまったく分割されなかったにもかかわらず、４つの８×８サブＣＵも葉ＣＵと呼ばれる。
【００３３】
［００４１］ＣＵは、Ｈ．２６４規格のマクロブロックと同様の目的を有するが、サイズの区別は有さない。例えば、ツリーブロックは、４つの子ノード（サブＣＵとも呼ばれる）に分割することができ、各子ノードは親ノードであることができ、及び、他の４つの子ノードに分割することができる。最終的な、分割されない子ノードは、四分木の葉ノードと呼ばれ、葉ＣＵとも呼ばれるコーディングノードを備える。コーディングされたビットストリームと関連付けられた構文データは、ツリーブロックを分割することができる最大回数を定義することができ、最大ＣＵ深度と呼ばれ、及びコーディングノードの最小サイズを定義することもできる。従って、ビットストリームは、最小のコーディングユニット（ＳＣＵ）も定義することができる。本開示は、ＨＥＶＣの文脈におけるＣＵ、ＰＵ、又はＴＵのうちのいずれか、又は、その他の規格の文脈における類似のデータ構造（例えば、Ｈ．２６４／ＡＶＣにおけるマクロブロック及びサブブロック）を意味するために用語“ブロック”を使用する。
【００３４】
［００４２］ＣＵは、コーディングノードと、そのコーディングノードに関連する予測ユニット（ＰＵ）及び変換ユニット（ＴＵ）を含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状は正方形でなければならない。ＣＵのサイズは、８×８サンプルからツリーブロックのサイズまでの範囲であることができ、最大サイズは６４×６４サンプル以上である。各ＣＵには、１つ以上のＰＵ及び１つ以上のＴＵが入ることができる。ＣＵに関連する構文データは、例えば、１つ以上のＰＵへのＣＵの分割を記述することができる。分割モードは、ＣＵがスキップ又は直接モード符号化されるか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかの間で異なることができる。ＰＵは、形状が非正方形に分割することができる。ＣＵに関連する構文データは、例えば、四分木による１つ以上のＴＵへのＣＵの分割も記述することができる。ＴＵの形状は、正方形であっても非正方形（例えば、長方形）であってもよい。
【００３５】
［００４３］ＨＥＶＣ規格は、ＴＵによる変換を考慮しており、異なるＣＵごとに異なることができる。ＴＵは、典型的には、分割されたＬＣＵに関して定義される所定のＣＵ内のＰＵのサイズに基づいてサイズが設定されるが、常にそうであるわけではない。ＴＵは、典型的には、ＰＵと同じサイズであるか又はそれよりも小さい。幾つかの例では、ＣＵに対応する残差サンプルは、“残差四分木（ＲＱＴ）”と呼ばれる四分木構造を用いてより小さいユニットに細分割することができる。ＲＱＴの葉ノードは、変換ユニット（ＴＵ）と呼ぶことができる。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換することができ、それらは量子化することができる。
【００３６】
［００４４］葉ＣＵは、１つ以上の予測ユニット（ＰＵ）を含むことができる。概して、ＰＵは、対応するＣＵの全部又は一部に対応する空間エリアを表し、ＰＵに関する基準サンプルを取り出すためのデータを含むことができる。さらに、ＰＵは、予測に関連するデータを含む。例えば、ＰＵがイントラモード符号化されるときには、ＰＵに関するデータを残差四分木（ＲＱＴ）に含めることができ、それは、ＰＵに対応するＴＵに関するイントラ予測モードを記述するデータを含むことができる。他の例として、ＰＵがインターモード符号化されるときには、ＰＵは、ＰＵに関する１つ以上の動きベクトルを定義するデータを含むことができる。ＰＵに関する動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度（例えば、１／４サンプル精度又は１／８サンプル精度）、動きベクトルが指し示す基準ピクチャ、及び／又は動きベクトルに関する基準ピクチャリスト（例えば、リスト０、リスト１、又はリストＣ）を記述することができる。
【００３７】
［００４５］１つ以上のＰＵを有する葉ＣＵは、１つ以上の変換ユニット（ＴＵ）を含むこともできる。変換ユニットは、上述されるように、ＲＱＴ（ＴＵ四分木構造とも呼ばれる）を用いて指定することができる。例えば、スプリットフラグは、葉ＣＵが４つの変換ユニットに分割されるかどうかを示すことができる。次に、各変換ユニットは、さらなるサブＴＵにさらに分割することができる。ＴＵがさらに分割されないときには、それは、葉ＴＵと呼ぶことができる。概して、イントラコーディングに関しては、葉ＣＵに属するすべての葉ＴＵが同じイントラ予測モードを共有する。すなわち、概して、葉ＣＵのすべてのＴＵに関する予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングに関して、映像符号器は、ＴＵに対応するＣＵの部分とオリジナルブロックとの間の差分として、イントラ予測モードを用いて各葉ＴＵに関する残差値を計算することができる。ＴＵは、ＰＵのサイズに必ずしも限定されない。従って、ＴＵは、ＰＵよりも大きいこと又はより小さいことができる。イントラコーディングに関して、ＰＵは、同じＣＵに関する対応する葉ＴＵと共配置することができる。幾つかの例では、葉ＴＵの最大サイズは、対応する葉ＣＵのサイズに対応することができる。幾つかの例では、葉ＴＵの最大サイズは、対応する葉ＣＵのサイズに対応することができる。
【００３８】
［００４６］さらに、葉ＣＵのＴＵは、残差四分木（ＲＱＴ）と呼ばれる各々の四分木データ構造と関連付けることもできる。すなわち、葉ＣＵは、葉ＣＵがどのようにしてＴＵに分割されるかを示す四分木を含むことができる。ＴＵの根ノードは、概して、葉ＣＵに対応し、ＣＵ四分木の根ノードは、概して、ツリーブロック（又はＬＣＵ）に対応する。分割されないＲＱＴのＴＵは、葉ＴＵと呼ばれる。概して、本開示は、別の記載がない限り、葉ＣＵ及び葉ＴＵをそれぞれ意味するために用語ＣＵ及びＴＵを使用する。
【００３９】
［００４７］映像シーケンスは、典型的には、一連の映像フレーム又はピクチャを含む。ピクチャのグループ（ＧＯＰ）は、概して、映像ピクチャのうちの一連の１つ以上を備える。ＧＯＰは、ＧＯＰ内に含まれるピクチャ数を記述する構文データをＧＯＰのヘッダ、１つ以上のピクチャのヘッダ、又はその他の場所において含むことができる。ピクチャの各スライスは、各々のスライスに関する符号化モードを記述するスライス構文データを含むことができる。映像符号器２０は、典型的には、映像データを符号化するために個々の映像スライス内の映像ブロックに対して動作する。映像ブロックは、ＣＵ内のコーディングノードに対応することができる。映像ブロックは、固定された又は可変のサイズを有することができ、及び、指定されたコーディング規格によりサイズが異なることができる。
【００４０】
［００４８］一例として、ＨＭは、様々なＰＵサイズの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×ＮのＰＵサイズでのイントラ予測、及び２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎの対称的ＰＵサイズでのインター予測をサポートする。ＨＭは、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮのＰＵサイズでのインター予測に関する非対称的な分割もサポートする。非対称的な分割では、ＣＵの１方の方向が分割されず、他方の方向が２５％及び７５％に分割される。２５％の分割に対応するＣＵの部分は、“ｎ”によって示され、“上（Ｕｐ）”、“下（Ｄｏｗｎ）”、“左（Ｌｅｆｔ）”、又は“右（Ｒｉｇｈｔ）”の表示文字によって後続される。従って、例えば、“２Ｎ×ｎＵ”は、水平に分割され、最上部が２Ｎ×０．５Ｎ  ＰＵ、最下部が２Ｎ×１．５Ｎ  ＰＵである２Ｎ×２Ｎ  ＣＵを意味する。
【００４１】
［００４９］本開示においては、“Ｎ×Ｎ”及び“Ｎ  ｂｙ  Ｎ”は、垂直及び水平の寸法に関する映像ブロックのサンプル寸法を意味するために互換可能な形で使用することができ、例えば、１６×１６サンプル又は１６  ｂｙ  １６サンプル。概して、１６×１６ブロックは、垂直方向に１６サンプル（ｙ＝１６）及び水平方向に１６サンプル（ｘ＝１６）を有することになる。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮのサンプル及び水平方向にＮのサンプルを有し、ここで、Ｎは、負でない整数値を表す。ブロック内のサンプルは、行及び列で配列することができる。さらに、ブロックは、水平方向と垂直方向で必ずしも同じサンプル数を有する必要がない。例えば、ブロックは、Ｎ×Ｍサンプルを備えることができ、ここで、Ｍは必ずしもＮと等しくない。
【００４２】
［００５０］ＣＵのＰＵを用いたイントラ予測又はインター予測コーディングに引き続き、映像符号器２０は、ＣＵのＴＵに関する残差データを計算することができる。ＰＵは、空間領域（サンプル領域とも呼ばれる）において予測サンプルデータを備えることができ、及び、ＴＵは、変換、例えば、離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に類似する変換を残差映像データに適用後に変換領域において係数を備えることができる。残差データは、符号化されないピクチャのサンプルとＰＵに対応する予測値との間のサンプル差分に対応することができる。映像符号器２０は、ＣＵに関する残差データを含むＴＵを形成することができ、次に、ＣＵに関する変換係数を生成するためにＴＵを変換することができる。
【００４３】
［００５１］変換係数を生成するための変換に引き続き、映像符号器２０は、それらの変換係数の量子化を行うことができる。量子化は、概して、係数を表すために使用されるデータ量を低減させ、さらなる圧縮を提供するために変換係数が量子化されるプロセスを意味する。量子化プロセスは、係数の一部又は全部に関連するビット深度を小さくすることができる。例えば、量子化中にｎビット値が切り捨てられてｍビット値になり、ここで、ｎはｍよりも大きい。
【００４４】
［００５２］量子化に引き続き、映像符号器は、変換係数を走査し、量子化された変換係数を含む二次元行列から一次元ベクトルを生成することができる。走査は、より高いエネルギー（従って、より低い周波数）係数をアレイの前部に置き、より低いエネルギー（及び従って、より高い周波数）係数をアレイの後部に置くように設計することができる。幾つかの例では、映像符号器２０は、エントロピー符号化することができるシリアライズされたベクトルを生成するために量子化された変換係数を走査するために予め定義された走査順序を利用することができる。その他の例では、映像符号器２０は、適応型走査を行うことができる。一次元ベクトルを形成するために量子化された変換係数を走査後は、映像符号器２０は、例えば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、構文に基づくコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔パーティショニングエントロピー（ＰＩＰＥ）コーディング又は他のエントロピー符号化法により一次元ベクトルをエントロピー符号化することができる。映像符号器２０は、映像データを復号する際に映像復号器３０によって使用するための符号化された映像データと関連付けられた構文要素もエントロピー符号化することができる。
【００４５】
［００５３］ＣＡＢＡＣを行うために、映像符号器２０は、コンテキストモデル内のコンテキストを送信されるべきシンボルに割り当てることができる。コンテキストは、例えば、シンボルの近隣値がゼロでないかどうかに関連することができる。ＣＡＶＬＣを行うために、映像符号器２０は、送信されるべきシンボルに関する可変長コードを選択することができる。ＶＬＣにおけるコードワードは、相対的により短いコードがより確率の高いシンボルに対応し、より長いコードがより確率の低いシンボルに対応するような形で構築することができる。このように、ＶＬＣの使用は、例えば、送信されるべき各シンボルに関して等しい長さのコードワードを使用することと比較してビットの節約を達成することができる。確率決定は、シンボルに割り当てられたコンテキストに基づくことができる。
【００４６】
［００５４］映像符号器２０は、構文データ、例えば、ブロックに基づく構文データ、フレームに基づく構文データ、及びＧＯＰに基づく構文データを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はＧＯＰヘッダにおいて、映像復号器３０にさらに送信することができる。ＧＯＰ構文データは、各々のＧＯＰ内のフレーム数を記述することができ、及び、フレーム構文データは、対応するフレームを符号化するために使用される符号化／予測モードを示すことができる。
【００４７】
［００５５］図２は、本開示の態様により技法を実装することができる映像符号器の例を示したブロック図である。幾つかの例では、本開示において説明される技法は、映像符号器２０の様々なコンポーネントの間で共有することができる。幾つかの例では、プロセッサ（示されていない）は、本開示において説明されるすべての技法を実行するように構成することができる。
【００４８】
［００５６］映像符号器２０は、映像スライス内の映像ブロックのイントラ及びインターコーディングを行うことができる。イントラコーディングは、所定の映像フレーム又はピクチャ内の映像の空間的冗長性を低減又は除去するために空間的予測に依存する。インターコーディングは、映像シーケンスの隣接するフレーム又はピクチャ内の映像の時間的冗長性を低減又は除去するために時間的予測に依存する。イントラモード（Ｉモード（登録商標））は、幾つかの空間に基づくコーディングモードのうちのいずれかを意味することができる。インターモード、例えば、単一方向性予測（Ｐモード）又は両方向性予測（Ｂモード）は、幾つかの時間に基づくコーディングモードのうちのいずれかを意味することができる。
【００４９】
［００５７］図２の例において、映像符号器２０は、モード選択ユニット４０と、基準フレームメモリ６６と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６と、を含む。モード選択ユニット４０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、分割ユニット４８と、を含む。映像ブロック再構築に関して、映像符号器２０は、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２と、デブロッキングフィルタ６４と、も含む。
【００５０】
［００５８］符号化プロセス中に、映像符号器２０は、コーディングされるべき映像フレーム又はスライスを受信する。フレーム又はスライスは、複数の映像ブロックに分割することができる。動き推定ユニット４２及び動き補償ユニット４４は、時間的予測を提供するために１つ以上の基準フレーム内の１つ以上のブロックに関して受信された映像ブロックのインター予測コーディングを行う。イントラ予測ユニット４６は、代替として、空間的予測を提供するためにコーディングされるべきブロックと同じフレーム又はスライス内の１つ以上の近隣ブロックに関して受信された映像ブロックのイントラ予測コーディングを行うことができる。映像符号器２０は、例えば、映像データの各ブロックに関して該当するコーディングモードを選択するために複数のコーディングパス（ｃｏｄｉｎｇ  ｐａｓｓ）を行うことができる。
【００５１】
［００５９］さらに、分割ユニット４８は、以前のコーディングパスにおける以前の分割方式の評価に基づいて、映像データのブロックをサブブロックに分割することができる。例えば、分割ユニット４８は、最初にフレーム又はスライスをＬＣＵに分割し、及び、レート−歪み解析（例えば、レート−歪み最適化）に基づいて各々のＬＣＵをサブＣＵに分割することができる。モード選択ユニット４０は、サブＣＵへのＬＣＵの分割を示す四分木データ構造をさらに生成することができる。四分木の葉ノードＣＵは、１つ以上のＰＵと、１つ以上のＴＵと、を含むことができる。
【００５２】
［００６０］モード選択ユニット４０は、例えば、誤り結果に基づいてコーディングモードのうちの１つ、イントラ又はインター、を選択することができ、及び、結果的に得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成するために加算器５０に及び基準フレームにおいて使用するための符号化されたブロックを再構築するために加算器６２に提供する。モード選択ユニット４０は、構文要素、例えば、動きベクトル、イントラモードインジケータ、分割情報、及びその他の構文情報、もエントロピー符号化ユニット５６に提供する。
【００５３】
［００６１］動き推定ユニット４２及び動き補償ユニット４４は、高度に一体化することができるが、概念上の目的のために別々に示されている。動き推定は、動き推定ユニット４２によって行われ、映像ブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又はその他のコーディングされたユニット）内のコーディング中の現在のブロックに対する基準フレーム（又はその他のコーディングされたユニット）内の予測ブロックに対する現在の映像フレーム又はピクチャ内の映像ブロックのＰＵの変位を示すことができる。予測ブロックは、ピクセル差分の点でコーディングされるべき映像ブロックのＰＵに密接にマッチングすることが判明しているブロックであり、差分絶対値和（ＳＡＤ）、差分二乗和（ＳＳＤ）、又はその他の差分メトリックによって決定することができる。幾つかの例では、映像符号器２０は、基準フレームメモリ６４に格納された基準ピクチャの整数未満のサンプル位置に関する値を計算することができる。例えば、映像符号器２０は、基準ピクチャの１／４サンプル位置、１／８サンプル位置、又はその他の分数のサンプル位置の値を内挿することができる。従って、動き推定ユニット４２は、完全サンプル位置及び分数サンプル位置に関する動き探索を行い、分数のピクセル精度を有する動きベクトルを出力することができる。
【００５４】
［００６２］動き推定ユニット４２は、インターコーディングされたスライス内の映像ブロックのＰＵの位置を基準ピクチャの予測ブロックの位置と比較することによってそのＰＵに関する動きベクトルを計算する。基準ピクチャは、第１の基準ピクチャリスト（リスト０）又は第２の基準ピクチャリスト（リスト１）から選択することができ、それらの各々は、基準フレームメモリ６４に格納された１つ以上の基準ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６及び動き補償ユニット４４に送信する。
【００５５】
［０１４５］動き補償は、動き補償ユニット４４によって行われ、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを含むことができる。繰り返すと、幾つかの例では、動き推定ユニット４２及び動き補償ユニット４４は、機能的に一体化することができる。現在の映像ブロックのＰＵに関する動きベクトルを受信した時点で、動き補償ユニット４４は、基準ピクチャリストのうちの１つにおいて動きベクトルが指し示す予測ブロックの位置を突き止めることができる。加算器５０は、後述されるように、コーディング中の現在の映像ブロックのサンプル値から予測ブロックのサンプル値を減じることによって残差映像ブロックを形成し、サンプル差分値を形成する。ルマ及びクロマコンポーネントを有する映像において、動き推定ユニット４２は、ルマコンポーネントのみに関する動き推定を行う。動き補償ユニット４４は、クロマコンポーネント及びルマコンポーネントの両方に関して予測ブロックを突き止めるためにルマコンポーネントに基づいて計算された動きベクトルを使用する。モード選択ユニット４０は、映像スライスの映像ブロックを復号する際に映像復号器３０によって使用するために映像ブロック及び映像スライスと関連付けられた構文要素を生成することもできる。
【００５６】
［００６４］イントラ予測ユニット４６は、上述されるように、動き推定ユニット４２及び動き補償ユニット４４によって行われるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定することができる。幾つかの例では、イントラ予測ユニット４６は、例えば、別々の符号化パス（ｅｎｃｏｄｉｎｇ  ｐａｓｓ）中に、様々なイントラ予測モードを用いて現在のブロックを符号化することができ、及び、イントラ予測ユニット４６（又は、幾つかの例では、モード選択ユニット４０）は、使用すべき適当なイントラ予測モードを試験されたモードから選択することができる。
【００５７】
［００６５］例えば、イントラ予測ユニット４６は、様々な試験されたイントラ予測モードに関するレート−歪み解析を用いてレート−歪み値を計算すること、及び、試験されたモードの中で最良のレート−歪み特性を有するイントラ予測モードを選択することができる。レート−歪み解析は、概して、符号化されたブロックを生成するために符号化されたブロックとオリジナルの符号化されないブロックとの間の歪み（又は誤り）の量、及び符号化されたブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測モジュール４６は、いずれのイントラ予測モードがブロックに関する最良のレート−歪み値を呈するかを決定するために様々な符号化されたブロックに関する歪み及びレートから比率を計算することができる。
【００５８】
［００６６］ブロックに関するイントラ予測モードを選択後は、イントラ予測ユニット４６は、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピーコーディングユニット５６に提供することができる。エントロピーコーディングユニット５６は、選択されたイントラ予測モードを示す情報を符号化することができる。映像符号器２０は、符号化された映像ビットストリーム内に構成データを含めることができる。構成データは、複数のイントラ予測モードインデックステーブル及び複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）を含むことができる。さらに、構成データは、様々なブロックに関するコンテキクストを符号化する定義、最も可能性の高いイントラ予測モードのインディケーション（ｉｎｄｉｃａｔｉｏｎ）、イントラ予測モードインデックステーブル、及び各符号化コンテキストに関して使用すべき修正されたイントラ予測モードインデックステーブルを含むことができる。
【００５９】
［００６７］映像符号器２０は、モード選択ユニット４０からの予測データをコーディング中のオリジナルの映像ブロックから減じることによって残差映像ブロックを形成する。加算器５０は、この減算動作を行うコンポーネント又はコンポーネント（複数）を表す。変換処理ユニット５２は、変換、例えば、離散コサイン変換（ＤＣＴ）又は概念的に類似の変換、を残差ブロックに適用し、残差変換係数値を備える映像ブロックを生成する。変換処理ユニット５２は、ＤＣＴに概念的に類似するその他の変換を行うことができる。ウェーブレット変換、整数変換、サブバンド変換又はその他のタイプの変換も使用可能である。いずれの場合も、変換処理ユニット５２は、残差ブロックに変換を適用し、残差変換係数のブロックを生成する。変換は、残差情報をサンプル値領域から変換領域、例えば、周波数領域、に変換することができる。変換処理ユニット５２は、その結果得られた変換係数を量子化ユニット５４に送信することができる。量子化ユニット５４は、ビットレートをさらに低減させるために変換係数を量子化する。
【００６０】
［００６８］量子化は、量子化ユニット５４によって行われ、一組の可能な入力値をそれよりも小さい一組の可能な出力値にマッピングすることを含むことができる。量子化は、例えば、入力値を丸めてより低い精度を有する出力値を生成することによって実装することができる。代替として、量子化は、ある一定の精度を超えたデジットを単に無視することによって達成することができる。いずれの場合も、量子化に伴う精度の喪失は、その結果として、入力値と出力値との間における食い違いがしばしば生じる。これらの食い違いは、量子化を行う映像コーダにおける誤り源であり、例えば、映像符号器２０。
【００６１】
［００６９］映像符号器２０において、変換処理ユニット５２からの変換係数が量子化ユニット５４によって量子化された後は、それらは、より低いビット深度を有することができる。換言すると、それらは、表現するためにより少ないバイナリディジットを要求することができ、それによって、符号化された映像のサイズを小さくすることができる。量子化度及び関連するビット深度の低減は、量子化パラメータを調整することによって変更することができる。幾つかの例では、量子化ユニット５４は、量子化された変換係数を含む行列のスキャンを行うことができる。代替として、エントロピー符号化ユニット５６がそのスキャンを行うことができる。
【００６２】
［００７０］量子化に引き続き、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、構文に基づくコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔分割エントロピー（ＰＩＰＥ）コーディング、又はその他のエントロピー符号化技法を実行することができる。コンテキストに基づくエントロピーコーディングの場合は、コンテキストは、近隣ブロックに基づくことができる。エントロピー符号化ユニット５６によるエントロピー符号化に引き続き、符号化されたビットストリームは、他のデバイス（例えば、映像復号器３０）に送信すること、又は、のちの送信又は取り出しのためにアーカイブに保存することができる。
【００６３】
［００７１］逆量子化ユニット５８及び逆変換ユニット６０は、例えば、基準ブロックの一部としてののちの使用のためにサンプル領域において残差ブロックを再構築するために逆量子化及び逆変換をそれぞれ適用する。再構築された残差ブロックは、上述されるように、量子化ユニット５４によって導入された誤差の結果オリジナルの残差ブロックと異なることがある。
【００６４】
［００７２］動き補償ユニット４４は、基準フレームメモリ６４のフレームのうちの１つの予測ブロックに残差ブロックを加えることによって基準ブロックを計算することができる。動き補償ユニット４４は、動き推定における使用のために整数未満のサンプル値を計算するために１つ以上の内挿フィルタを再構築された残差ブロックに適用することもできる。加算器６２は、デブロッキングフィルタ６４に送信される再構築された映像ブロックを生成するために動き補償ユニット４４によって生成された動き補償された予測ブロックに再構築された残差ブロックを加える。
【００６５】
［００７３］デブロッキングフィルタ６４は、隣接する映像ブロック間の縁を横切るフィルタリングを行う。映像符号器２０の幾つかの実装においては、デブロッキングフィルタ６４は、映像の異なる部分をフィルタリングするときに異なるフィルタリング強度を適用することができ、及び、映像の一部は、まったくフィルタリングすることができない。従って、デブロッキングフィルタ６４は、縁をフィルタリングすべきかどうか、及びどのフィルタリング強度を使用すべきかに関する決定を行うように構成することができる。デブロッキングフィルタ６４が縁をフィルタリングすることを決定した場合は、それは、縁の各側におけるサンプルの値を調整することによってそれらのサンプル間の遷移を平滑化することができる。
【００６６】
［００７４］フィルタリング強度に関して決定するために、デブロッキングフィルタ６４は、隣接するブロックからの１つ以上のサンプルを入力としとて使用することができる。ブロックからのサンプルは、調整を計算することを目的として入力として使用することもできる。例えば、デブロッキングフィルタ６４は、調整値を計算してそれを特定のサンプルに加えることによってその特定のサンプルを調整することができる。調整値は、ブロックからのその他のサンプル、及び、サンプルが属するブロックの縁に関して決定されたフィルタリング強度に依存することができる。
【００６７】
［００７５］本開示の態様により、デブロッキングフィルタ６４は、制限されたビット深度を有する入力に依存することによって最適化されたサンプル調整モードを実装することができる。さらに、デブロッキングフィルタ６４は、フィルタリング強度及びそもそもフィルタリングすべきかどうかを決定するために制限されたビット深度を有する入力を使用することもできる。以下において、必要な入力のビット深度を小さくするためにデブロッキングフィルタ６４で使用することができる技法が、追加の図面及び例に関して詳細に開示される。
【００６８】
［００７６］デブロッキングフィルタ６４は、後続する符号化予測が基づく基準データ内にそれの出力が組み入れられるため、インループフィルタである。特に、デブロッキングフィルタ６４によってフィルタリングされている再構築された映像ブロックは、基準フレームメモリ６６内に格納することができる。次に、基準フレームメモリ６６からの再構築及びフィルタリングされた映像ブロックは、映像内のその他のブロックをコーディングするための基準ブロックとして動き推定ユニット４２及び動き補償ユニット４４によって使用することができる。
【００６９】
［００７７］デブロッキングフィルタ６４は、インループフィルタとして描かれているが、本発明の技法は、その他のタイプのフィルタ、例えば、ポストループフィルタ、に適用することができる。さらに、図２に関して、デブロッキングフィルタ６４に加えて追加のフィルタ（インループ、ポストループ、等）も使用することができる。
【００７０】
［００７８］図３は、本開示の態様により技法を実装することができる映像復号器の例を示したブロック図である。映像復号器３０は、本開示のいずれかの又はすべての技法を実行するように構成することができる。一例として、デブロッキングフィルタ８２は、本開示において説明されるいずれかの又はすべての技法を実行するように構成することができる。しかしながら、本開示の態様は、そのようには限定されない。幾つかの例では、本開示において説明される技法は、映像復号器３０の様々なコンポーネント間で共有することができる。さらに、幾つかの例では、プロセッサ（示されていない）は、本開示において説明されるいずれかの又はすべての技法を実行するように構成することができる。
【００７１】
［００７９］図３の例では、映像復号器３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、基準フレームメモリ８２と、加算器８０と、デブロッキングフィルタ８２と、を含む。映像復号器３０は、幾つかの例では、映像符号器２０に関して説明された符号化パスと概して相互的な復号パスを行う（図２）。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成することができ、他方、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
【００７２】
［００８０］復号プロセス中には、映像復号器３０は、符号化された映像スライスの映像ブロックを表す符号化された映像ビットストリーム及び関連する構文要素を映像符号器２０から受信する。映像復号器３０のエントロピー復号ユニット７０は、量子化された係数、動きベクトル又はイントラ予測モードインジケータ、及びその他の構文要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトル及びその他の構文要素を動き補償ユニット７２に転送する。映像復号器３０は、映像スライスレベル及び／又は映像ブロックレベルで構文要素を受信することができる。
【００７３】
［００８１］映像スライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるときには、イントラ予測ユニット７４は、シグナリングされたイントラ予測モード及び現在のフレーム又はピクチャの以前に復号されたブロックからのデータに基づいて現在の映像スライスの映像ブロックに関する予測データを生成することができる。映像フレームがインターコーディングされた（すなわち、Ｂ、Ｐ又はＧＰＢ）スライスとしてコーディングされるときには、動き補償ユニット７２は、動きベクトル及びエントロピー復号ユニット７０から受信されたその他の構文要素に基づいて現在の映像スライスの映像ブロックに関する予測ブロックを生成する。予測ブロックは、基準ピクチャリストのうちの１つ内の基準ピクチャのうちの１つから生成することができる。映像復号器３０は、基準フレームメモリ８４に格納された基準ピクチャに基づいてデフォルト構築技法を用いて基準フレームリスト、リスト０及びリスト１、を構築することができる。動き補償ユニット７２は、動きベクトル及びその他の構文要素を構文解析することによって現在の映像スライスの映像ブロックに関する予測情報を決定し、復号中の現在の映像ブロックに関する予測ブロックを生成するために予測情報を使用する。例えば、動き補償ユニット７２は、映像スライス、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）、スライスに関する基準ピクチャリストのうちの１つ以上に関する構築情報、スライスの各インター符号化された映像ブロックに関する動きベクトル、スライスの各インターコーディングされた映像ブロックに関するインター予測状態、及び現在の映像スライス内の映像ブロックを復号するためのその他の情報、の映像ブロックをコーディングするために使用される予測モード（例えば、イントラ又はインター予測）を決定するために受信された構文要素の一部を使用する。
【００７４】
［００８２］動き補償ユニット７２は、内挿フィルタに基づいて内挿を行うこともできる。動き補償ユニット７２は、基準ブロックの整数未満のサンプルに関する内挿値を計算するために映像ブロックの符号化中に映像符号器２０によって使用される内挿フィルタを使用することができる。この場合は、動き補償ユニット７２は、受信された構文要素から映像符号器２０によって使用される内挿フィルタを決定すること及び予測ブロックを生成するために内挿フィルタを使用することができる。
【００７５】
［００８３］逆量子化ユニット７６は、ビットストリーム内で提供され、エントロピー復号ユニット７０によって復号された量子化された変換係数を逆量子化する、すなわち、量子化解除する。逆量子化プロセスは、量子化度、そして同様に、適用されるべき逆量子化度、を決定するために映像スライス内の各映像ブロックに関して映像復号器３０によって計算された量子化パラメータＱＰＹを使用することを含むことができる。
【００７６】
［００８４］逆変換ユニット７８は、サンプル領域において残差ブロックを生成するために逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に類似する逆変換プロセス、を変換係数に適用する。
【００７７】
［００８５］動き補償ユニット７２が動きベクトル及びその他の構文要素に基づいて現在の映像ブロックに関する予測ブロックを生成した後は、映像復号器３０は、逆変換ユニット７８からの残差ブロックを、動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって復号された映像ブロックを形成する。加算器８０は、この加算動作を行うコンポーネント又はコンポーネント（複数）を表す。
【００７８】
［００８６］加算器８０によって生成される復号された映像ブロック内のサンプルは、前述されるように、符号化プロセス中に使用される量子化又は同様の圧縮技法の結果生じる誤差が入っていることがある。この誤差は、ブロッキングアーティファクトを引き起こすことがある。
【００７９】
［００８７］デブロッキングフィルタ８２は、ブロッキングアーティファクトを除去するために加算器８０からの復号されたブロックをフィルタリングする。デブロッキングフィルタ８２は、フィルタリングすべきかどうかを決定することと、フィルタリング強度を決定することと、ブロックの縁を横切る遷移を平滑化するために復号されたブロック内のサンプルを調整することと、を含むフィルタリングプロセスを実装することができる。フィルタリングプロセスの一部又は全体は、１つ以上のサンプルから導き出される入力に依存することができる。本開示の態様により、それらの入力は、それらが導き出されるサンプルのビット深度よりも小さいビット深度を有することができる。以下では、入力のビット深度を小さくするために使用することができる技法が、追加の図面及び例に関して詳細に開示される。
【００８０】
［００８８］映像の品質を向上させるためにデブロッキングフィルタ８２以外のフィルタも（コーディングループ内で又はコーディングループ後に）使用することができる。デブロッキングフィルタ８２からの復号された映像ブロックは、基準フレームメモリ８４に格納され、それは、後続する動き補償のために基準ピクチャを提供する。基準フレームメモリ８４は、映像復号器３０からの出力のために復号された映像も格納する。映像出力は、のちに、表示装置、例えば、図１の表示装置３２、において提示することができる。
【００８１】
［００８９］図４Ａは、複数の映像ブロックを備える映像スライスを例示した概念図である。描かれるように、映像スライス４０２は、１６の映像ブロックを備える。映像スライス４０２は、例えば、図２の映像符号器２０によって符号化すること又は図３の映像復号器３０によって復号することができる。映像スライス４０２は、例えば、図２のデブロッキングフィルタ６４又は図３のデブロッキングフィルタ８２によってフィルタリングすることもできる。映像スライス４０２のフィルタリングは、制限されたビット深度を有する入力の使用に関連する本開示の態様により行うことができる。
【００８２】
［００９０］映像スライス４０２は、隣接するブロック４０４、４０６を含み、それらは、各々、高さが４つのサンプルで、幅が４つのサンプルである。隣接するブロック４０４、４０６は、縁４０８を共有する。ブロック４０４、４０６及び縁４０８は、図４Ｂにおいてより詳細に示される。
【００８３】
［００９１］図４Ｂの概念図において、ブロック４０４及び４０６を備える個々のサンプル、例えば、サンプル４１０、は、可視である。縁４０８の１方の側のサンプルは、英字“ｐ”によって示され、縁の他方の側のサンプルは、英字“ｑ”によって示される。縁４０８の各側において、縁に最も近いサンプルは、添字数字０によって示され、縁から離れているサンプルは、徐々に大きくなる整数によって示され、最後が３である。幾つかの実施形態では、行４１２、４１４、４１６、４１８は、各々、個々にフィルタリングされるため、これらの行の各々において同じ英字及び数字が繰り返される。従って、フィルタリングプロセスは、行４１２から始まり、行４１４、行４１６、及び行４１８に順次移動する。
【００８４】
［００９２］縁４０８は、図４Ｂにおいては垂直に描かれているが、水平の縁のフィルタリングに関しても同様に類似の英字及び数字の使用方式を採用することができる。水平の縁の場合は、ｐ３乃至ｐ０及びｑ０乃至ｑ３で示されるサンプルは、水平の行ではなく垂直の列内に配置され、それらのサンプルは、行別ではなく列別に順次フィルタリングすることができる。
【００８５】
［００９３］図５は、制限されたビット深度を有する入力を使用するデブロッキングフィルタに関するプロセス例を示したフローチャートである。プロセス５００の要素は、映像符号器２０のデブロッキングフィルタ６４に関して部分的に説明されているが、そのプロセスは、その他のコンポーネント、例えば、復号器３０のデブロッキングフィルタ８２、によって、又はその他のタイプの映像フィルタによって、実行することができる。プロセス５００の要素は、ブロック４０４、４０６、行４１２、その中に位置するサンプル、及び縁４０８に関しても説明される。しかしながら、プロセス５００は、ブロック、縁、及びサンプルの様々なその他の組み合わせ及び構成に関して実行することができる。図５に関して説明されるすべての実施形態は、別々に又は互いに組み合わせて実装することができる。
【００８６】
［００９４］プロセス５００は、縁４０８におけるブロッキングアーティファクトを軽減するためにブロック４０４、４０６においてサンプルをフィルタリングするときにデブロッキングフィルタ６４によって適用することができる。プロセス５００の要素、例えば、要素５０２、５０６、５０８は、１つ以上のサンプルが関わる計算を含む。プロセス５００は、一度に１つの行、例えば、行４１２、に対して適用することができ、従って、計算は、その行のみからのサンプルが関わる。代替として、プロセス５００は、２つ以上の行からのサンプルが計算に関わるように適用することが可能である。
【００８７】
「００９５」プロセス５００は、要素５０２から開始し、デブロッキングフィルタ６４は、少なくとも１つのサンプルに基づいてフィルタリング入力を決定する。少なくとも１つのサンプルは、行４１２から、他の行から、又は行のあらゆる組み合わせから来ることができる。デブロッキングフィルタ６４は、１つ以上の算術演算、１つ以上の論理演算、１つ以上のビットごとの演算、又はそれらの組み合わせからフィルタリング入力を決定することができる。フィルタリング入力は、サンプルに加えて、定数又は可変パラメータから決定することができる。
【００８８】
［００９６］要素５０４において、デブロッキングフィルタ６４は、要素５０２において決定されたフィルタリング入力のビット深度を制限する。フィルタリング入力の制限されたビット深度は、入力を決定するために使用されたサンプルのビット深度よりも小さい。例えば、フィルタリング入力は、行４１２内の３つのサンプルから決定することができ、各々は、８ビットのビット深度を有する。それらの３つのサンプルの総ビット深度は２４ビットであり、このため、フィルタリング入力は、２４ビットよりも小さいビット深度に制限することができる。幾つかの実装においては、デブロッキングフィルタ６４は、２つ以上のサンプルからフィルタリング入力を決定し、入力のビット深度が単一のサンプルのビット深度よりも小さくなるように入力のビット深度を制限することができる。例えば、組み入れられたサンプルの総ビット深度は２４ビットであることができ、フィルタリング入力の制限されたビット深度は、例えば、６ビットであることができる。いずれの場合も、デブロッキングフィルタ６４がフィルタリング入力に対して課す制限は、入力のビット深度を小さくし、このため、より少ないスペース、すなわちメモリ、を占める。要素５０４において達成されたスペースすなわちメモリの節約は、デブロッキングフィルタ６４がハードウェア内に実装されるときに有益であることができる。
【００８９】
［００９７］フィルタリング入力のビット深度は、要素５０４において様々な技法によって制限することができる。例えば、ビット深度は、入力を予め決定された範囲内に抑えることによって、又は、入力から最上位ビットのうちの少なくとも１つを落とすことによって制限することができる。幾つかの実施形態においては、ビット深度は、量子化によって制限することができる。ビット深度は、入力サイズを縮小すること及び対応する記憶要求を低減させることができる１つ以上の算術演算、論理演算、又はビットごとの演算を適用することによって制限することもできる。
【００９０】
［００９８］要素５０４においてフィルタリング入力のビット深度を制限することは、幾つかの状況においては、デブロッキングフィルタ６４の有効性に対して悪影響を及ぼすことがある。例えば、入力の規模を抑えることによってビット深度が制限される場合は、その結果としてデブロッキングフィルタ６４のフィルタリング強度を制限することができる。他の例では、入力の精度を低下させることによってビット深度が制限される場合は、その結果として、フィルタの好適性を制限することができる。入力のビット深度を制限した結果生じる悪影響は、制限の厳しさに比例することができる。従って、制限度は、スペースの効率とフィルタリングの有効性との間のバランスをとるような形で選択することができる。しかしながら、のちにさらに詳細に説明されるように、デブロッキングフィルタ７６４の有効性は、幾つかの状況においては、幾つかのフィルタリング実装に関してはまったく影響を受けない。
【００９１】
［００９９］デブロッキングフィルタ６４は、要素５０６において調整値を決定するために要素５０４において生成された制限されたビット深度を有する入力を使用する。調整値は、デブロッキングフィルタ６４がフィルタリング中のサンプルに適用する調整量に対応する。入力は、単一のサンプルに関する調整値を計算するために、又は、複数のサンプルに関する調整値を計算するために使用することができる。入力に加えて、調整値は、１つ以上のサンプルに依存することができる。調整値は、１つ以上の算術演算、１つ以上の論理演算、又は１つ以上のビットごとの演算、又はそれらの組み合わせによりサンプルから決定することができる。調整値は、入力及びサンプルに加えて、定数又は可変パラメータから決定することができる。
【００９２】
［００１００］幾つかの実施形態においては、デブロッキングフィルタ６４は、要素５０６において決定された調整値を予め決定された範囲内に抑える。一実施形態においては、調整値を抑えることは、過度のフィルタリングを防止する。
【００９３】
［００１０１］要素５０６において調整値が決定された後は、それは、フィルタリングされたサンプルを生成するために要素５０８においてサンプルと結合される。デブロッキングフィルタ６４は、典型的には、調整値をサンプルと結合するために加算に依存するが、その他の算術演算、論理演算、ビットごとの演算、又はそれらの組み合わせも同様に使用することができる。ブロック５０８において生成されたフィルタリングされたサンプルは、プロセス５００の出力である。
【００９４】
［００１０２］図６は、デブロッキングフィルタリングプロセス６００の他の実施形態を例示したフローチャートである。プロセス６００は、以下では、図４のブロック４０４、４０６、縁４０８、４１２、及び関連するサンプルに関して動作するデブロッキングフィルタに関して説明される。プロセス６００は、ブロック、縁、行、列、及びサンプルの異なる構成にも同様に適用することができる。さらに、プロセス６００は、ラインバッファ内への入力の格納を企図し、それは、典型的には、デブロッキングフィルタのハードウェア実装において生じる。しかしながら、プロセス６００は、単なる例であり、本開示の技法は、その他の例においては、ソフトウェア又はハードウェアとソフトウェアの組み合わせによって実装することができる。
【００９５】
［００１０３］縁に関連するブロッキングアーティファクトの影響を軽減するために、デブロッキングフィルタは、一度に１つの行又は列内のサンプルを調整することができる。例えば、縁４０８と関連するブロッキングアーティファクトをフィルタリングするために、デブロッキングフィルタは、とりわけ、行４１２内のサンプルを調整することができる。例えば、フィルタは、強い又は弱いフィルタリングをサンプルに適用することができる。強いフィルタリングと弱いフィルタリングとの間の選択は、複数の行又は列に関して同時に行うことができ、行又は列のうちの一部は、決定を行うときには考慮されない。行４１２が考慮されると仮定した場合、強い／弱いフィルタリングの決定は、行４１２内の縁４０８の各側に位置する４つのサンプル、すなわち、ｐ３、ｐ２、ｐ１、ｐ０及びｑ０、ｑ１、ｑ２、ｑ３、に依存することができる。
【００９６】
［００１０４］強い／弱い決定に依存して、デブロッキングフィルタは、強いフィルタリングモード又は弱いフィルタリンモードにより調整値を計算する。１つのタイプの強い／弱いフィルタリングモードがＤｒａｆｔ（ドラフト）において提供される。Ｄｒａｆｔの強いフィルタリングモードは、縁４０８の各側のすべての４つのサンプル、すなわち、ｐ３、ｐ２、ｐ１、ｐ０及びｑ０、ｑ１、ｑ２、ｑ３、を使用する。Ｄｒａｆｔの弱いフィルタリングモードは、各側において縁４０８の最も近くに位置する２つ又は３つのサンプルのみを使用する。従って、全体として、デブロッキングフィルタは、Ｄｒａｆｔにより強い／弱いフィルタリング決定を行うために及び強いフィルタリング又は弱いフィルタリングを適用するために縁４０８の各側において最高で４つのサンプルを要求する。フィルタリングプロセス中におけるこれらのサンプルの使用を容易にするために、デブロッキングフィルタは、以下において説明されるようにサンプルのうちの一部をラインバッファ内に格納する。
【００９７】
［００１０５］デブロッキングフィルタは、ハードウェアにおいて実装することができる。例えば、デブロッキングフィルタは、映像符号器又は映像復号器の一部としてチップ上において実装することができる。ラインバッファは、外部のメモリアクセスに関連する問題を回避するためにオンチップ（内部）メモリとして実装することができる。デブロッキングフィルタは、フィルタリングプロセスに関して使用されるサンプルをラインバッファ内に格納することができ、このため、それは、フィルタリングプロセス中に外部メモリからサンプルを再フェッチする必要がない。
【００９８】
［００１０６］オンチップメモリは、典型的には、非常に制限されたサイズを有しており、従って、そこに一時的に格納されるデータの量は可能な限り少なくするのが有利である。デブロッキングフィルタによって要求されるラインバッファのサイズは、ラインバッファに格納されるフィルタリング入力の総ビット深度に依存する。プロセス６００の１つの利点は、小さくされたビット深度を有する入力を使用することであり、それは、Ｄｒａｆｔによって指定される入力よりも小さいラインバッファスペースを要求する。チップ生産に関しては、追加のラインバッファ容量は追加コストを意味するためラインバッファのサイズを小さくするのが有利である。
【００９９】
［００１０７］デブロッキングフィルタによって使用されるすべてのサンプルが必ずしもラインバッファ内に格納されるわけではない。プロセス６００の例では、ブロックの縁のｐ側のサンプルはラインバッファに格納されるが、ｑ側のサンプルは格納されない。ラインバッファに格納されないサンプルは、メモリの別のエリア、例えば、フレームバッファ、に格納することができる。代替として、プロセス６００におけるように、サンプルは、デブロッキングフィルタにおける使用直前に前のコーディング段階で計算することができ、メモリからは読み取られない。いずれの場合も、本来であればラインバッファに格納されることになる少なくとも１つの入力がより小さいビット深度を有する入力によって代えられる限りにおいてラインバッファ容量が節約される。
【０１００】
［００１０８］プロセス６００は、強い及び弱いフィルタリングに加えて、強い／弱い決定を含む。しかしながら、プロセス６００が強い／弱い決定及び強いフィルタリングのために使用する入力の総ビット深度は、Ｄｒａｆｔによって指定された入力のビット深度よりも小さい。具体的には、一実施形態においては、プロセス６００が実行されるときに、強い／弱い決定のためにサンプルｐ３がサンプルｐ２によって取って代わられ、それは、強いフィルタリングのために代替入力ｐｓｈｏｒｔによって取って代わられる。ｑ３に関しても、縁４０８の両側においてフィルタリングプロセスの対称性を維持するために同等の交換が行われる。代替入力ｐｓｈｏｒｔは、図５におけるプロセス５００の要素５０４に関して説明された制限されたビット深度を有するフィルタリング入力の実施形態である。ｐｓｈｏｒｔの制限されたビット深度は、ラインバッファにおいてｐ３よりも小さいスペースを占めるのを可能にし、それによって、デブロッキングフィルタによって使用されるラインバッファ容量を低減させる。
【０１０１】
［００１０９］一実施形態においては、デブロッキングフィルタが強いフィルタリングを適用するときには、縁４０８の各側において３つのサンプル、例えば、ｐ２、ｐ１、ｐ０及びｑ０、ｑ１、ｑ２、が調整される。その結果調整されたサンプルは、ｐ２’、ｐ１’、ｐ０’及びｑ０’、ｑ１’、ｑ２’として示される。強いフィルタリングの計算は、Ｄｒａｆｔでは次のように指定されている。
【数１】
0006316842.tif 000002
【０１０２】
［００１１０］上の公式の各々において、フィルタリングされたサンプルｐｉ’又はｑｉ’は、オリジナルサンプルｐｉ又はｑｉ及びＣｌｉｐ（−２＊ｔｃ）−（２＊ｔｃ）（．．．）によって指定される調整値から決定される。Ｃｌｉｐ関数は、フィルタが過度に大きい調整を行うのを防止する。一実施形態においては、Ｃｌｉｐ関数は、次のように定義される。
【数２】
0006316842.tif 000003
【０１０３】
従って、Ｃｌｉｐ（−２＊ｔｃ）−（２＊ｔｃ）（．．．）の出力は、−２＊ｔｃと２＊ｔｃとの間に抑えられ、ここで、ｔｃはスレショルド値である。Ｃｌｉｐ関数の適用は、抑制の特定の値にかかわらず、“クリッピング”と呼ぶことができる。
【０１０４】
［００１１１］上において示される強いフィルタリング計算は、前述されるように、縁の各側において４つのサンプルを使用する。最も外側のｐ３及びｑ３は、その他のサンプルに関する強いフィルタリング計算において使用されるが、それら自体はフィルタリングされない。計算において使用されるサンプルのうちで、ｐ３及びｑ３は、縁４０８から最も遠くに位置するため最も少ない方程式において現れる。従って、それらは、フィルタリング品質を失うことなしにビット深度を小さくするための最良の候補を提供する。
【０１０５】
［００１１２］プロセス６００は、要素６０２において開始し、デブロッキングフィルタは、短縮された入力ｐｓｈｏｒｔを計算する。例えば、幾つかの実施形態においては、短縮された入力値を計算するために様々な技法を使用することができる。
【数３】
0006316842.tif 000004
【０１０６】
又は
【数４】
0006316842.tif 000005
【０１０７】
これらの公式例の両方において、ｐ３を含むサンプルは算術によって結合され、その結果のビット深度は、Ｃｌｉｐ関数の適用によって制限される。算術によるサンプルの結合及びＣｌｉｐ関数の適用は、図５からのプロセス５００の要素５０２及び５０４にそれぞれ対応する特定の実施形態である。ｐｓｈｏｒｔを計算するためにｐ３が使用されるが、ｐ３は、ｐｓｈｏｒｔが代わりにラインバッファに格納されるため格納されない。
【０１０８】
［００１１３］要素６０４において、ｐｓｈｏｒｔは、ｐ２、ｐ１、及びｐ０とともにラインバッファ内に格納される。制限されたビット深度のおかげで、ｐｓｈｏｒｔは、ラインバッファ内においてｐ３よりも小さいスペースを占める。従って、デブロッキングフィルタによって要求される総ラインバッファ容量が低減され、そのことは、例えば、本開示の技法により映像符号器又は復号器を実装するチップを製造するコストを削減する。
【０１０９】
［００１１４］要素６０６において、デブロッキングフィルタは、強いフィルタリングと弱いフィルタリングとの間の決定を行うためにラインバッファからサンプルを読み取る。強い／弱い決定は、Ｄｒａｆｔでは次のように定義されている。
【数５】
0006316842.tif 000006
【０１１０】
上記の条件は、４サンプルの縁セグメントに関する強い／弱い決定を定義する。従って、縁を横切る４つの行又は４つの列の組に対して単一の強い／弱い決定が適用される。前記のように、４つの行又は４つの列の最初及び最後のみが決定に含められる。含められる行及び列に関して、Ｄｒａｆｔは、ｐ３及びｑ３が条件２において考慮されるように要求する。しかしながら、プロセス６００において、ｐ３は、ラインバッファにない。従って、ｐ３は、条件２においてはｐ２に取って代わられる。さらに、対称性を維持するためにｑ３はｑ２に取って代わられる。従って、条件２は、次のようになる。
【数６】
0006316842.tif 000007
【０１１１】
この変更により、強い／弱い決定は、もはやｐ３又はｑ３には依存せず、このため、デブロッキングフィルタは、要素６０６においてｐ０、ｐ２及びｑ０、ｑ２のみを読み取る。前述されるように、ｐ側のサンプルがラインバッファから読み取られ、ｑ側のサンプルは、前のコーディング段階から直接入手される。要素６０８において、デブロッキングフィルタは、Ｄｒａｆｔにおいて指定されて上記において修正された条件に従って強い又は弱いフィルタリングを選択する。
【０１１２】
［００１１５］強いフィルタリングが選択された場合は、デブロッキングフィルタは、要素６１０において、必要なｐ側入力をラインバッファから読み取り、必要なｑ側入力を前のコーディング段階から入手することによって、フィルタリングされたサンプル値ｐ０’、ｐ１’、ｐ２’、及びｑ０’、ｑ１’、ｑ２’を計算する準備をする。総合すると、必要な入力は、短縮された入力ｐｓｈｏｒｔ及びｑｓｈｏｒｔと同様にｐ０、ｐ１、ｐ２、及びｑ０、ｑ１、ｑ２を含む。入力ｐｓｈｏｒｔは、要素６０２において以前に計算されており、ラインバッファから読み取ることができる。しかしながら、入力ｑｓｈｏｒｔは、その時点では計算されなかった。その理由は、この例ではｑ側サンプルはラインバッファに格納されていないためである。従って、要素６１２において、デブロッキングフィルタは、前のコーディング段階から入手されたｑ側サンプルのうちの一部又は全部を用いてｑｓｈｏｒｔを計算する。ｑｓｈｏｒｔを計算するために使用される公式は、ｐｓｈｏｒｔを計算するために使用されるのと同じ公式であり、ただし、ｐ側サンプルがｑ側サンプルに取って代わられる。従って、ｐｓｈｏｒｔに関して提供される公式例に基づき、ｑｓｈｏｒｔ公式の例は以下を含むことができる。
【数７】
0006316842.tif 000008
【０１１３】
又は
【数８】
0006316842.tif 000009
【０１１４】
［００１１６］以前において示されるように、ｐ２’及びｑ２’に関する強いフィルタリングの計算は、サンプルｐ３及びｑ３に依存する。しかしながら、プロセス６００において、ｐ３及びｑ３は、ｐｓｈｏｒｔ及びｑｓｈｏｒｔによって取って代わられる。従って、一実施形態においては、次の公式がｐ２’及びｑ２’に関して使用される。
【数９】
0006316842.tif 000010
【０１１５】
これは次のように展開することができる。
【数１０】
0006316842.tif 000011
【０１１６】
及び
【数１１】
0006316842.tif 000012
【０１１７】
これは次のように展開することができる。
【数１２】
0006316842.tif 000013
【０１１８】
［００１１７］図５に関して前述されるように、制限されたビット深度を有するフィルタリング入力、例えば、ｐｓｈｏｒｔ及びｑｓｈｏｒｔ、の使用は、デブロッキングフィルタの性能に悪影響を及ぼす可能性がある。特に、ｐｓｈｏｒｔ及びｑｓｈｏｒｔを計算するために使用されるＣｌｉｐ関数は、デブロッキングフィルタのフィルタリング強度を制限することができる。しかしながら、Ｃｌｉｐ関数は、ｐｓｈｏｒｔ及びｑｓｈｏｒｔのビット深度を小さくするので有用である。実際、デブロッキングフィルタの強度に関する制限は、Ｃｌｉｐ関数が提供するビット深度を小さくすることに比例する。従って、スペース効率とフィルタリング強度との間のバランスをとるために希望される範囲ａ−ｂを選択することができるため、ｐｓｈｏｒｔ及びｑｓｈｏｒｔを計算するために使用されるＣｌｉｐ関数に関しては特定の抑制範囲は規定されていない。
【０１１９】
［００１１８］しかしながら、本来はＤｒａｆｔに準拠するデブロッキングフィルタにおいて、ｐｓｈｏｒｔ及びｑｓｈｏｒｔに関して上において提供される公式に準拠した穏やかなクリッピングは、通常は、フィルタリング強度に対して悪影響を与えない。この有利な結果は、Ｄｒａｆｔが強いフィルタリングに関して要求する条件によるものである。具体的には、デブロッキングフィルタは、以下の場合のみに強いフィルタリングを使用する。
【０１２０】
ｄ＜β／４、これは以下を意味し、
｜ｐ２−２＊ｐ１＋ｐ０｜＜β／８、これは以下を意味する。
【０１２１】
｜ｐ２−２＊ｐ１＋ｐ０｜＜８
項｜ｐ２−２＊ｐ１＋ｐ０｜は、ｐ１にセンタリングされたラプラシアンに対応する。ラプラシアンは、サンプル間における遷移の突然性を測定する。このため、強いフィルタリングは、ｐ１の近傍のサンプル間の遷移がそれほど突然でない場合しか使用されない。ｐ１の周囲において突然の遷移がない場合は、ｐ２に適用されるフィルタリングの量は、概して、クリッピングされたｐｓｈｏｒｔ及びｑｓｈｏｒｔの使用によって課せられた制限にもかかわらず収納することができるような十分に少ないものであるべきである。
【０１２２】
［００１１９］要素６１４及び６１６において、ｐｓｈｏｒｔ及びｑｓｈｏｒｔを組み入れた強いフィルタリングに関する公式が計算される。最初に、要素６１４において、デブロッキングフィルタは、調整値を計算する。本例では、調整値は、強いフィルタリングに関する公式内のＣｌｉｐ（−２＊ｔｃ）−（２＊ｔｃ）（．．．）項によって表される。要素６１６において、フィルタリングされたサンプルｐ０’、ｐ１’、ｐ２’及びｑ０’、ｑ１’、ｑ２’を生成するためにサンプルｐ０、ｐ１、ｐ２及びｑ０、ｑ１、ｑ２に調整値が加えられる。フィルタリングされたサンプルは、プロセス６００の最終出力である。
【０１２３】
［００１２０］要素６０８において強いフィルタリングの代わりに弱いフィルタリングが選択される場合は、デブロッキングフィルタは、Ｄｒａｆｔにおいて定義される弱いフィルタリングに関する公式に従って調整値及びフィルタリングされたサンプルを計算する。要素６２０において、デブロッキングフィルタは、ラインバッファ及び前のコーディング段階からのサンプルを読み取ることによって弱いフィルタリングに関する公式を計算する準備をする。弱いフィルタリングにおいて入力して修正されて使用されるサンプルの数は、変化することができるが、Ｄｒａｆｔの弱いフィルタリングに関する公式は、ｐ３又はｑ３には決して依存しない。弱いフィルタリングに関する公式は、せいぜい、サンプルｐ０、ｐ１、ｐ２及びｑ０、ｑ１、ｑ２に依存するだけである。従って、これらの公式は、プロセス６００における修正なしで使用することができる。
【０１２４】
［００１２１］要素６２０において弱いフィルタリングのために必要な入力サンプルが入手された後は、デブロッキングフィルタは、要素６２２において、最高で４つのサンプル、すなわち、ｐ０、ｐ１及びｑ０、ｑ１、に関して調整値を計算する。次に、要素６２４において、デブロッキングフィルタは、最高で４つのフィルタリングされたサンプル、すなわち、ｐ０’、ｐ１’及びｑ０’、ｑ１’、を生成するためにオリジナルのサンプルに調整値を加える。フィルタリングされたサンプルは、プロセス６００の最終出力である。
【０１２５】
［００１２２］図６は、一連の別々のステップでのフィルタリングプロセスを描く一方で、幾つかの実施形態においては、これらのステップのうちの一部又は全部は、結合すること又は同時に生じることができる。
【０１２６】
［００１２３］図７Ａは、隣接する映像ブロック内のサンプル、及びこれらのサンプルのうちの一部を格納するために使用することができるラインバッファを例示した概念図である。図７Ａは、デブロッキングフィルタに関する可能な記憶要求の一例を提供する。縁７０６を横切るフィルタリングのための準備として、デブロッキングフィルタは、ブロック７０２からのサンプルをラインバッファ内に格納する。この例では、ブロック７０４からのサンプルは、図６のプロセス６００に関して前述されるように、フィルタリングプロセス中にその他のソースから入手することができるため、それらは、ラインバッファには格納されない。
【０１２７】
［００１２４］上において説明されるように、強い／弱いフィルタリングの決定及び強いフィルタリング計算の幾つかの実施形態は、フィルタリングされるべき各行内において、縁の各側の４つのサンプルを利用する。ブロック７０２において、４つの行が存在し、各々が４つのサンプルを有する。従って、デブロッキングフィルタは、ブロック７０２からのすべてのサンプルをラインバッファに格納する。従って、ラインバッファ７１０は、３２のサンプルを格納することができる。各サンプルが、例えば８ビットのビット深度を有する場合は、ラインバッファの総容量は、少なくとも２５６ビットでなければならない。
【０１２８】
［００１２５］図７Ｂは、隣接する映像ブロック内のサンプル、及び小さくされたビット深度を有するラインバッファを例示した概念図である。図７Ｂは、スペース節約のための修正を伴うデブロッキングフィルタに関する可能な記憶要求の一例を提供する。それらの修正は、本開示の態様により説明されており、それらは、図６のプロセス６００に関して上において説明される。修正の結果として、デブロッキングフィルタは、各行の最後においてサンプルｐ３及びｑ３を使用せずに動作するように構成される。その代わりに、フィルタは、ｐｓｈｏｒｔ及びｑｓｈｏｒｔに依存し、それらは、例えば、ｐ３、ｐ２、ｐ１及びｑ３、ｑ２、ｑ１のそれぞれのクリッピングされた組み合わせから決定される。図７Ｂにおいて描かれるように、入力ｐｓｈｏｒｔは、モジュール７２０によって各行に関して計算され、サンプルｐ２、ｐ１、ｐ０とともにラインバッファ７２４に格納される。入力ｐｓｈｏｒｔは、各サンプルよりも小さいビット深度を有する。従って、ｐｓｈｏｒｔを格納するために使用されるスペース７２６（又はメモリサイズ）は、サンプルを格納するために使用されるスペース７２８（又はメモリサイズ）よりも小さい。その結果、ラインバッファ７２４の全体的なサイズを縮小することができ、それにより、デブロッキングフィルタのコストを削減すること及びコーディングデバイスの性能及び／又は効率を向上させることができる。
【０１２９】
［００１２６］例により、ここにおいて説明される技法のうちのいずれかの幾つかの行為又はイベントは、異なるシーケンスで実行すること、追加すること、結合すること、又はまったく無視できることが認識されるべきである（それらの技法の実践のためにすべての説明される行為又はイベントが必要なわけではない）。さらに、幾つかの例では、行為又はイベントは、順次ではなく、例えば、マルチスレッド処理、割り込み処理、又は複数のプロセッサを通じて、同時並行して実行することができる。
【０１３０】
［００１２７］１つ以上の例において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのあらゆる組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、それらの機能は、コンピュータによって読み取り可能な媒体において１つ以上の命令又はコードとして格納又は送信すること及びハードウェアに基づく処理ユニットによって実行することができる。コンピュータによって読み取り可能な媒体は、コンピュータによって読み取り可能な記憶媒体を含むことができ、それは、有形な媒体、例えば、データ記憶媒体、又は、例えば、通信プロトコルにより、１つの場所から他へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む通信媒体、に対応する。このように、コンピュータによって読み取り可能な媒体は、概して、（１）非一時的である有形なコンピュータによって読み取り可能な記憶媒体又は（２）通信媒体、例えば、信号又は搬送波、に対応することができる。データ記憶媒体は、本開示において説明される技法の実装のために命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ又は１つ以上のプロセッサによってアクセスすることができるあらゆる利用可能な媒体であることができる。コンピュータプログラム製品は、コンピュータによって読み取り可能な媒体を含むことができる。
【０１３１】
［０１２８］一例により、及び制限することなしに、該コンピュータによって読み取り可能な記憶媒体は、希望されるプログラムコードを命令又はデータ構造の形態で格納するために使用することができ及びコンピュータによってアクセス可能であるＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又はその他の光学ディスク記憶装置、磁気ディスク記憶装置、又はその他の磁気記憶デバイス、フラッシュメモリ、又はその他のいずれかの媒体を備えることができる。さらに、どのような接続も、コンピュータによって読み取り可能な媒体であると適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者ライン（ＤＳＬ）、又は無線技術、例えば、赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバ、又はその他の遠隔ソースから送信される場合は、該同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、又は無線技術、例えば赤外線、無線、及びマイクロ波、は、媒体の定義の中に含まれる。しかしながら、コンピュータによって読み取り可能な記憶媒体およびデータ記憶媒体は、コネクション、搬送波、信号、又はその他の遷移媒体は含まず、代わりに、非一時的な、有形の記憶媒体を対象とすることが理解されるべきである。ここにおいて用いられるときのディスク（ｄｉｓｋ及びｄｉｓｃ）は、コンパクトディスク（ＣＤ）（ｄｉｓｃ）と、レーザーディスク（登録商標）（ｄｉｓｃ）と、光ディスク（ｄｉｓｃ）と、デジタルバーサタイルディスク（ＤＶＤ）（ｄｉｓｃ）と、フロッピー（登録商標）ディスク（ｄｉｓｋ）と、Ｂｌｕ−ｒａｙディスク（ｄｉｓｃ）と、を含み、ここで、ｄｉｓｋは、通常は磁気的にデータを複製し、ｄｉｓｃは、レーザを用いて光学的にデータを複製する。上記の組み合わせも、コンピュータによって読み取り可能な媒体の適用範囲内に含められるべきである。
【０１３２】
［０１２９］命令は、１つ以上のプロセッサ、例えば、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、又はその他の同等の集積又はディスクリート論理回路によって実行することができる。従って、ここにおいて用いられる場合の用語“プロセッサ”は、上記の構造又はここにおいて説明される技法の実装に適するあらゆるその他の構造のうちのいずれかを意味することができる。さらに、幾つかの態様では、ここにおいて説明される機能は、符号化および復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内において提供されること、又は組み合わされたコーデック内に組み入れることができる。さらに、技法は、１つ以上の回路又は論理素子内に完全に実装することが可能である。
【０１３３】
［０１２５］本開示の技法は、無線ハンドセット、集積回路（ＩＣ）又は一組のＩＣ（例えば、チップセット）を含む非常に様々なデバイス又は装置内に実装することができる。本開示では、開示される技法を実施するように構成されたデバイスの機能上の態様を強調するために様々なコンポーネント、モジュール、又はユニットが説明されるが、異なるハードウェアユニットによる実現は必ずしも要求しない。むしろ、上述されるように、様々なユニットは、適切なソフトウェア及び／又はファームウェアと関係させて、コーデックハードウェアユニット内において結合させること又は上述されるように１つ以上のプロセッサを含む相互運用的なハードウェアユニットの集合によって提供することができる。
【０１３４】
［０１２６］様々な例が説明されている。これらの及びその他の例は、以下の請求項の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  映像情報をフィルタリングするように構成された装置であって、
映像情報を格納するように構成されたメモリユニットであって、前記映像情報は、少なくとも２つの空間的に隣接する映像ブロックを備え、各映像ブロックは、複数の映像サンプルを備え、各映像サンプルは、ビット深度を有するメモリユニットと、
前記メモリユニットと通信状態にあるプロセッサと、を備え、前記プロセッサは、
入力値及び調整値に少なくとも部分的に基づいてフィルタリングされた映像サンプルを決定するように構成され、
前記入力値は、前記映像サンプルのうちの１つ以上から成る第１の組から決定され及び前記第１の組の総ビット深度よりも小さいビット深度を有し、
前記調整値は、前記入力値及び前記映像サンプルのうちの１つ以上から成る第２の組の組み合わせを備える、装置。
［Ｃ２］  前記第１の組内の前記映像サンプル及び前記第２の組内の前記映像サンプルは、前記隣接する映像ブロックのうちの２つの間で延びる空間的に隣接する映像サンプルの連続するライン上に位置するＣ１に記載の装置。
［Ｃ３］  前記入力値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記プロセッサは、前記入力値が前記下限を下回る場合は前記入力値を前記下限に設定し、前記入力値が前記上限を上回る場合は前記入力値を前記上限に設定することによって前記入力値を抑えるようにさらに構成されるＣ１に記載の装置。
［Ｃ４］  前記調整値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記プロセッサは、前記調整値が前記下限を下回る場合は前記調整値を前記下限に設定し、前記調整値が前記上限を上回る場合は前記調整値を前記上限に設定することによって前記調整値を抑えるようにさらに構成されるＣ１に記載の装置。
［Ｃ５］  前記プロセッサは、前記入力値を量子化することによって前記入力値の前記ビット深度を小さくするようにさらに構成されるＣ１に記載の装置。
［Ｃ６］  前記プロセッサは、前記入力値をラインバッファに格納するようにさらに構成されるＣ１に記載の装置。
［Ｃ７］  前記プロセッサは、前記フィルタリングされた映像サンプルを用いて前記映像情報を符号化するようにさらに構成されるＣ１に記載の装置。
［Ｃ８］  前記プロセッサは、前記フィルタリングされた映像サンプルを用いて前記映像情報を復号するようにさらに構成されるＣ１に記載の装置。
［Ｃ９］  前記プロセッサは、フィルタリング強度に少なくとも部分的に基づいて前記フィルタリングされた映像サンプルを決定するようにさらに構成されるＣ１に記載の装置。
［Ｃ１０］  前記フィルタリング強度は、前記映像サンプルのうちの１つ以上から成る第３の組に基づいて決定されるＣ９に記載の装置。
［Ｃ１１］  １つ以上の映像サンプルの前記第１の組は、前記第２の組及び前記第３の組のいずれにも含まれていない少なくとも１つの映像サンプルを含むＣ１０に記載の装置。
［Ｃ１２］  １つ以上の映像サンプルの前記第２の組内の少なくとも１つの映像サンプルは、１つ以上の映像サンプルの前記第３の組内に存在するＣ１０に記載の装置。
［Ｃ１３］  映像情報をフィルタリングする方法であって、
映像情報を格納することであって、前記映像情報は、少なくとも２つの空間的に隣接する映像ブロックを備え、各映像ブロックは、複数の映像サンプルを備え、各映像サンプルは、ビット深度を有することと、
入力値及び調整値に少なくとも部分的に基づいてフィルタリングされた映像サンプルを決定することと、を備え、
前記入力値は、前記映像サンプルのうちの１つ以上から成る第１の組から決定され及び前記第１の組の総ビット深度よりも小さいビット深度を有し、
前記調整値は、前記入力値及び前記映像サンプルのうちの１つ以上から成る第２の組の組み合わせを備える、方法。
［Ｃ１４］  前記第１の組内の前記映像サンプル及び前記第２の組内の前記映像サンプルは、前記隣接する映像ブロックのうちの２つの間で延びる空間的に隣接する映像サンプルの連続するライン上に位置するＣ１３に記載の方法。
［Ｃ１５］  前記入力値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記入力値は、前記入力値が前記下限を下回る場合は前記入力値を前記下限に設定し、前記入力値が前記上限を上回る場合は前記入力値を前記上限に設定することによって抑えられるＣ１３に記載の方法。
［Ｃ１６］  前記調整値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記調整値は、前記調整値が前記下限を下回る場合は前記調整値を前記下限に設定し、前記調整値が前記上限を上回る場合は前記調整値を前記上限に設定することによって抑えられるＣ１３に記載の方法。
［Ｃ１７］  前記入力値の前記ビット深度は、前記入力値を量子化することによって制限されるＣ１３に記載の方法。
［Ｃ１８］  前記入力値をラインバッファに格納することをさらに備えるＣ１３に記載の方法。
［Ｃ１９］  前記フィルタリングされた映像サンプルを用いて前記映像情報を符号化することをさらに備えるＣ１３に記載の方法。
［Ｃ２０］  前記フィルタリングされた映像サンプルを用いて前記映像情報を復号することをさらに備えるＣ１３に記載の方法。
［Ｃ２１］  前記フィルタリングされた映像サンプルは、フィルタリング強度に少なくとも部分的に基づいて決定されるＣ１３に記載の方法。
［Ｃ２２］  前記フィルタリング強度は、前記映像サンプルのうちの１つ以上から成る第３の組に基づいて決定されるＣ２１に記載の方法。
［Ｃ２３］  １つ以上の映像サンプルの前記第１の組は、前記第２の組及び前記第３の組のいずれにも含まれていない少なくとも１つの映像サンプルを含むＣ２２に記載の方法。
［Ｃ２４］  １つ以上の映像サンプルの前記第２の組内の少なくとも１つの映像サンプルは、１つ以上の映像サンプルの前記第３の組内に存在するＣ１０に記載の装置。
［Ｃ２５］  コンピュータによって読み取り可能な記憶媒体であって、
実行されたときに、
映像情報を格納し、及び
入力値及び調整値に少なくとも部分的に基づいてフィルタリングされた映像サンプルを決定することを装置に行わせる命令が格納されており、
前記映像情報は、少なくとも２つの空間的に隣接する映像ブロックを備え、各映像ブロックは、複数の映像サンプルを備え、各映像サンプルは、ビット深度を有し、
前記入力値は、前記映像サンプルのうちの１つ以上から成る第１の組から決定され及び前記第１の組の総ビット深度よりも小さいビット深度を有し、
前記調整値は、前記入力値及び前記映像サンプルのうちの１つ以上から成る第２の組の組み合わせを備える、コンピュータによって読み取り可能な記憶媒体。
［Ｃ２６］  前記第１の組内の前記映像サンプル及び前記第２の組内の前記映像サンプルは、前記隣接する映像ブロックのうちの２つの間で延びる空間的に隣接する映像サンプルの連続するライン上に位置するＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ２７］  前記入力値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記入力値が前記下限を下回る場合は前記入力値を前記下限に設定し、前記入力値が前記上限を上回る場合は前記入力値を前記上限に設定することによって前記入力値を抑えるための命令をさらに備えるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ２８］  前記調整値は、下限及び上限を有する予め決定された範囲内に抑えられ、
前記調整値が前記下限を下回る場合は前記調整値を前記下限に設定し、前記調整値が前記上限を上回る場合は前記調整値を前記上限に設定することによって前記調整値を抑えるための命令をさらに備えるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ２９］  前記入力値を量子化することによって前記入力値の前記ビット深度を制限するための命令をさらに備えるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３０］  前記入力値をラインバッファに格納するための命令をさらに備えるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３１］  前記フィルタリングされた映像サンプルを用いて前記映像情報を符号化するための命令をさらに備えるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３２］  前記フィルタリングされた映像サンプルを用いて前記映像情報を復号するための命令をさらに備えるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３３］  前記フィルタリングされた映像サンプルは、フィルタリング強度に少なくとも部分的に基づいて決定されるＣ２５に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３４］  前記フィルタリング強度は、前記映像サンプルのうちの１つ以上から成る第３の組に基づいて決定されるＣ３３に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３５］  １つ以上の映像サンプルの前記第１の組は、前記第２の組及び前記第３の組のいずれにも含まれていない少なくとも１つの映像サンプルを含むＣ３４に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３６］  １つ以上の映像サンプルの前記第２の組内の少なくとも１つの映像サンプルは、１つ以上の映像サンプルの前記第３の組内に存在するＣ３４に記載のコンピュータによって読み取り可能な記憶媒体。
［Ｃ３７］  映像情報をフィルタリングするための装置であって、
映像情報を格納するための手段であって、前記映像情報は、少なくとも２つの空間的に隣接する映像ブロックを備え、各映像ブロックは、複数の映像サンプルを備え、各映像サンプルは、ビット深度を有する手段と、
入力値及び調整値に少なくとも部分的に基づいてフィルタリングされた映像サンプルを決定するための手段と、を備え、
前記入力値は、前記映像サンプルのうちの１つ以上から成る第１の組から決定され及び前記第１の組の総ビット深度よりも小さいビット深度を有し、
前記調整値は、前記入力値及び前記映像サンプルのうちの１つ以上から成る第２の組の組み合わせを備える、装置。
［Ｃ３８］  前記第１の組内の前記映像サンプル及び前記第２の組内の前記映像サンプルは、前記隣接する映像ブロックのうちの２つの間で延びる空間的に隣接する映像サンプルの連続するライン上に位置するＣ３７に記載の装置。
［Ｃ３９］  前記入力値は、下限及び上限を有する予め決定された範囲内に抑えられ、
フィルタリングされた映像サンプルを決定するための前記手段は、前記入力値が前記下限を下回る場合は前記入力値を前記下限に設定し、前記入力値が前記上限を上回る場合は前記入力値を前記上限に設定することによって前記入力値を抑えるようにさらに構成されるＣ３７に記載の装置。
［Ｃ４０］  前記調整値は、下限及び上限を有する予め決定された範囲内に抑えられ、
フィルタリングされた映像サンプルを決定するための前記手段は、前記調整値が前記下限を下回る場合は前記調整値を前記下限に設定し、前記調整値が前記上限を上回る場合は前記調整値を前記上限に設定することによって前記調整値を抑えるようにさらに構成されるＣ３７に記載の装置。
［Ｃ４１］  フィルタリングされた映像サンプルを決定するための前記手段は、前記入力値を量子化することによって前記入力値の前記ビット深度を小さくするようにさらに構成されるＣ３７に記載の装置。
［Ｃ４２］  フィルタリングされた映像サンプルを決定するための前記手段は、前記入力値をラインバッファに格納するように又は前記入力値をラインバッファから入手するようにさらに構成されるＣ３７に記載の装置。
［Ｃ４３］  前記装置は、前記フィルタリングされた映像サンプルを用いて前記映像情報を符号化するための手段をさらに備えるＣ３７に記載の装置。
［Ｃ４４］  前記装置は、前記フィルタリングされた映像サンプルを用いて前記映像情報を復号するための手段をさらに備えるＣ３７に記載の装置。
［Ｃ４５］  フィルタリングされた映像サンプルを決定するための前記手段は、フィルタリング強度に少なくとも部分的に基づいて前記フィルタリングされた映像サンプルを決定するようにさらに構成されるＣ３７に記載の装置。
［Ｃ４６］  前記フィルタリング強度は、前記映像サンプルのうちの１つ以上から成る第３の組に基づいて決定されるＣ４５に記載の装置。
［Ｃ４７］  １つ以上の映像サンプルの前記第１の組は、前記第２の組及び前記第３の組のいずれにも含まれていない少なくとも１つの映像サンプルを含むＣ４６に記載の装置。
［Ｃ４８］  １つ以上の映像サンプルの前記第２の組内の少なくとも１つの映像サンプルは、１つ以上の映像サンプルの前記第３の組内に存在するＣ４６に記載の装置。
【図１】
0006316842.tif 000014
【図２】
0006316842.tif 000015
【図３】
0006316842.tif 000016
【図４Ａ】
0006316842.tif 000017
【図４Ｂ】
0006316842.tif 000018
【図５】
0006316842.tif 000019
【図６】
0006316842.tif 000020
【図７Ａ】
0006316842.tif 000021
【図７Ｂ】
0006316842.tif 000022