(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
ビデオ情報のピクチャ部分を符号化又は復号することはブロックごとの改良モードを使用することを含むことができ、改良モードは改良パラメータに基づくことができる。改良モードは、成分間クロマ改良であり得る成分間改良を含むことができる。改良モードは改良パラメータのブロックごとの選択を可能にすることを含むことができ、改良パラメータはクロマ改良テーブル内に含まれる1つ又は複数のクロマ改良パラメータを含むことができる。
(i)ブロックごとの再構成済み信号に改良モードを適用することに基づいてピクチャ部分を符号化するためのコストであって、前記改良モードは改良パラメータに基づく、符号化するためのコスト、及び(ii)前記改良モード以外のモードを使用して前記ピクチャ部分を符号化するためのコストを得ること、並びに
前記コストに基づいて前記ピクチャ部分を符号化すること
を含む、符号化の方法。
ブロックごとの再構成済み信号に改良モードを適用することに基づいてピクチャ部分を符号化するためのコストであって、前記改良モードは改良パラメータに基づく、符号化するためのコスト、及び前記改良モードを使用することなしに前記ピクチャ部分を符号化するためのコストを得ること、並びに
前記コストに基づいて前記ピクチャ部分を符号化すること
を行うように構成された1つ又は複数のプロセッサ
を含む、機器。
ピクチャ部分の符号化中にブロックごとの再構成済み信号に適用されている改良モードの指示を得ることであって、前記改良モードは改良パラメータに基づく、指示を得ること、及び
前記指示に基づいて前記符号化済みピクチャ部分を復号すること
を含む、復号の方法。
符号化済みピクチャ部分の符号化中にブロックごとの再構成済み信号に適用されている改良モードの指示を得ることであって、前記改良モードは改良パラメータに基づく、指示を得ること、及び
前記指示に基づいて前記符号化済みピクチャ部分を復号すること
を行うように構成された1つ又は複数のプロセッサ
を含む、機器。
前記改良モードが成分の改良を含む、請求項1若しくは3に記載の方法、又は請求項2若しくは4に記載の機器、又は請求項5に記載の信号、又は請求項6に記載のビットストリーム。
前記改良モードが成分間改良又は成分内改良の少なくとも1つを含む、請求項1、3、若しくは7の何れか一項に記載の方法、又は請求項2、4、若しくは7の何れか一項に記載の機器、又は請求項5若しくは7に記載の信号、又は請求項6若しくは7に記載のビットストリーム。
前記改良モードが前記改良パラメータのブロックごとの選択を可能にすることを含む、請求項1、3、若しくは7乃至9の何れか一項に記載の方法、又は請求項2、4、若しくは7乃至9の何れか一項に記載の機器、又は請求項5若しくは7乃至9の何れか一項に記載の信号、又は請求項6乃至9の何れか一項に記載のビットストリーム。
前記改良パラメータが改良テーブル内に含まれる1つ又は複数の改良パラメータを含む、請求項1、3、若しくは7乃至10の何れか一項に記載の方法、又は請求項2、4、若しくは7乃至10の何れか一項に記載の機器、又は請求項5若しくは7乃至10の何れか一項に記載の信号、又は請求項6乃至10の何れか一項に記載のビットストリーム。
前記符号化することが前記ピクチャ部分を符号化することを含み、前記改良パラメータは、前記改良モードを使用して前記ピクチャ部分を符号化したときの前記コストの改善に基づいて複数の改良パラメータからブロックごとに選択される、請求項1若しくは7乃至11の何れか一項に記載の方法、又は請求項2若しくは7乃至11の何れか一項に記載の機器。
前記コストがレート歪みコストを含み、前記改善は前記改良モードを使用して前記ピクチャ部分を符号化したときの前記レート歪みコストの低下を含む、請求項12に記載の方法又は機器。
命令を実行しているコンピュータに請求項1、3、又は7乃至13の何れか一項に記載の方法を実行させるための実行可能プログラム命令を記憶する、非一時的コンピュータ可読媒体。
【発明を実施するための形態】
【0014】
図面は様々な態様及び実施形態の例を示すことを目的としており、必ずしも可能な唯一の構成ではないことを理解すべきである。様々な図面を通して、同様の参照記号は同じ又は同様の特徴を指す。
【0015】
詳細な説明
ビデオの圧縮及び再構成処理は歪みを生じる場合がある。例えば歪みは、例えばビデオピクチャのサンプルのコード語の分布をより活用するためにとりわけビデオ信号が符号化前にマッピングされる場合に再構成済みビデオ信号内で認められ得る。概して少なくとも1つの実施形態は、例えばクロマ成分に基づくビデオ信号の改良を使用して柔軟性及びコード化利得をもたらし、歪みを低減すること及び/又は圧縮効率を改善することを可能にし得る。少なくとも1つの実施形態は、復号後の再構成済みビデオ信号を改善するためにインループフィルタ又はループ外フィルタとして改良ステップを含み得る。改良は、例えば符号化中にビットストリーム又は信号内にコード化される改良テーブルに基づき得る。その後、復号器は改良テーブルに基づいて信号補正(例えばフィルタリング)を適用する。あり得るモードの様々な例のうち、少なくとも1つの実施形態のモードの一例はクロマ成分の成分間改良である。少なくとも1つの実施形態のモードの別の例は、例えばルマ成分に適用される成分内改良である。
【0016】
改良をもたらすことを意図する特定の処理、方法、又は技法を全スライスに又は所与の全領域に適用することは、改良が全スライス又は全領域にとって全体的に有益でも、改良を適用するスライス又は領域の局所部分の劣化を招く可能性がある。概して、少なくとも1つの実施形態がこの問題に対処し、改良テーブル等の関与するデータのコード化を改善することも狙う。全スライス又は全領域に対処する改良は、成分ごとに1つのテーブルをコード化し、その1つのテーブルを全スライスの又は全領域の全てのサンプルに適用することを含み得る。
【0017】
概して少なくとも1つの実施形態では、例えば検討する全ピクチャ又は全領域にわたるレート歪みコスト(典型的には歪み及びコード化コストの加重和である)を低減することにより、メトリクによって示される改善をもたらすことに基づいて符号器側でテーブルを計算する。歪みは、例えば改良させた再構成済み信号と元の信号との間の平均二乗誤差であり得る。その後、結果として生じるテーブルをビットストリーム又は信号内にコード化する。検討するスライス又は領域にわたるレート歪みコストが全体的に低下する場合、そのことは検討するスライス又は領域内にレート歪みコストが増加する部分があり得ることも意味する。概して実施形態の少なくとも1つの例は、成分間クロマ改良を含む改良モードを含み得る。実施形態の別の例は、例えばルマ成分に適用される成分内改良を含み得る。
【0018】
本明細書で使用するとき、データの改良とは、改善、例えばビデオデータ等の情報をコード化及び/又は復号する効率を上げること等の改善、及び/又は本明細書に記載のレート歪みコスト等のコストを低減すること等の他の改善を生じることができる処理の変更、調節、修正、改定、又は適応を指すことができる。説明を簡単にするために、本明細書に記載の1つ又は複数の実施形態は改良モードを使用することに関連する効果、影響、又は改善を評価し、決定し、又は得るために使用され得る「レート歪みコスト」であるものとして「コスト」に言及する場合がある。例えば改良モードに関連するコストと改良モードの使用なしのコストとを評価(例えば比較)して、例えばコストの変化によって示される圧縮効率の改善及び/又は歪みの低減等の改善に基づいて本明細書に記載の改良モードを使用するかどうかを判定することができる。コストの一種はレート歪みコストを含み得るが、本明細書でレート歪みコストに言及することは限定的ではなく、他の種類のコスト及び/又は改良モードの効果を評価するための他の手法が想定される。
【0019】
更に本明細書の説明では、「再構成する」という用語と「復号する」という用語を区別なく使用する場合がある。必ずではないが通常、「再構成する」は符号器側で使用されるのに対し「復号する」は復号器側で使用される。「復号する」又は「再構成する」という用語は、ビットストリーム又は信号を部分的に「復号する」又は「再構成する」こと、例えばデブロッキングフィルタリングの後だがSAOフィルタリングよりも前に得られる信号を意味することができ、再構成済みサンプルは表示に使用される最終的な復号済み出力と異なり得ることに留意すべきである。更に「画像」、「ピクチャ」、及び「フレーム」という用語を区別なく使用する場合がある。
【0020】
概して、少なくとも1つの実施形態は、ブロックごとの改良を活性化できるようにすること、及びことによるとストリーム内に前にコード化された1組のあり得る改良パラメータの中からブロックに適用するための改良パラメータをブロックごとに選択できるようにすることを含み得る。「ブロック」という用語は、改変形態では「コード化単位」(CU)、「コード化ツリー単位」(CTU)で置換することができる。
【0021】
概して、1つ又は複数の実施形態は符号器及び復号器に関係し、1つ又は複数の実施形態は復号器の仕様及びセマンティクスに関係し得る。
【0022】
図1は、符号器100の実施形態の一例を示す。この符号器100の改変形態が考えられるが、予期される全ての改変形態を記述することなしに明瞭にするために符号器100を以下で説明する。
【0023】
ビデオシーケンスは、符号化される前に、例えば入力カラーピクチャに色変換(例えばRGB4:4:4からYCbCr4:2:0への変換)を適用する、又は圧縮に対してより回復性がある信号分布を得るために入力ピクチャ成分の再マッピングを行う(例えば色成分の1つのヒストグラム平坦化を使用する)符号化前の処理(101)にかけることができる。メタデータが前処理に関連することができ、ビットストリーム又は信号に付加され得る。
【0024】
符号器100内で、以下に記載の通り符号器の要素によってピクチャを符号化する。符号化しようとするピクチャを例えばCUの単位で分割し(102)処理する。各単位は、例えばイントラモード又はインタモードを使用して符号化される。単位をイントラモードで符号化する場合、イントラモードはイントラ予測(160)を行う。インタモードでは動き推定(175)及び動き補償(170)を行う。符号器は単位を符号化するためにイントラモード又はインタモードのどちらを使用するのかを決定し(105)、イントラ/インタの決定を例えば予測モードフラグによって示す。例えば元の画像ブロックから予測済みブロックを減算する(110)ことによって予測残差を計算する。
【0025】
次いで予測残差を変換し(125)量子化する(130)。量子化した変換係数、並びに動きベクトル及び他の構文要素をエントロピコード化して(145)ビットストリーム又は信号を出力する。符号器は変換を飛ばし、変換されていない残差信号に量子化を直接適用することができる。符号器は変換及び量子化の両方をバイパスすることができ、即ち変換プロセス又は量子化プロセスを適用することなしに残差が直接コード化される。
【0026】
符号器は符号化済みブロックを復号して更なる予測のための参照を提供する。予測残差を復号するために量子化済み変換係数を逆量子化し(140)逆変換する(150)。復号済み予測残差と予測済みブロックとを組み合わせることで(155)画像ブロックを再構成する。例えばデブロッキング/SAO(サンプル適応オフセット)フィルタリングを実行して符号化のアーティファクトを減らすために、再構成済みピクチャにインループフィルタ(165)を適用する。フィルタ済み画像は参照ピクチャバッファ(180)内に記憶する。
【0027】
図2は、ビデオ復号器200の実施形態の一例のブロック図を示す。復号器200では、以下で説明するようにビットストリーム又は信号が復号器の要素によって復号される。ビデオ復号器200は、
図1に記載した符号化パスと逆の復号パスを概して実行する。符号器100も、ビデオデータを符号化する一環としてビデオの復号を概して実行する。
【0028】
具体的には、復号器の入力はビデオ符号器100によって生成され得るビデオビットストリーム又は信号を含む。変換係数、動きベクトル、及び他のコード化情報を得るためにビットストリーム又は信号を最初にエントロピ復号する(230)。ピクチャがどのように分割されるのかをピクチャ分割情報が示す。従って復号器は、復号したピクチャ分割情報に従ってピクチャを分けることができる(235)。予測残差を復号するために変換係数を逆量子化し(240)逆変換する(250)。復号した予測残差と予測済みブロックとを結合して(255)画像ブロックを再構成する。予測済みブロックはイントラ予測(260)又は動き補償予測(即ちインタ予測)(275)から得ることができる(270)。再構成済み画像にインループフィルタ(265)を適用する。フィルタ済み画像を参照ピクチャバッファ(280)に記憶する。
【0029】
復号済みピクチャは、復号後の処理(285)、例えば逆色変換(例えばYCbCr4:2:0からRGB4:4:4への変換)又は符号化前の処理(101)で行われた再マッピングプロセスの逆を行う逆再マッピングを更に経ることができる。復号後の処理は、符号化前の処理において導出され、ビットストリーム又は信号内でシグナリングされるメタデータを使用することができる。
【0030】
概して少なくとも1つの実施形態では、本明細書に記載の1つ又は複数の特徴が、本明細書に記載の特徴の様々な例に従い、インループフィルタ(165及び265)並びにエントロピコード化(145)及びエントロピ復号(230)等の符号器/復号器(符復号器)の部分又は区域又はモジュールに影響を及ぼし得る。
【0031】
図3は、
図1のビデオ符号器100の改変形態3000を示す。
図1のモジュールと同一の
図3のモジュールは同じ参照番号でラベル付けしており、更なる説明は行わない。
図3では、図示の実施形態がインループである改良プロセスを含む。改良パラメータを計算するステップ(ステップ3001)は、インループフィルタリングのステップ(165)の後に行われる。改良パラメータの計算ステップは、入力ビデオ及びインループフィルタリングのステップから生じる再構成済みビデオを入力として得る。改良パラメータを計算するステップ(ステップ3001)は、修正されたエントロピコーダ(3003)によってビットストリーム又は信号内にコード化される改良パラメータを計算する。改良パラメータは、インループフィルタから生じる再構成済みビデオに改良ステップを適用する(3002)ためにも使用される。
【0032】
図4は、
図2のビデオ符号器100の改変形態102を示す。
図2のモジュールと同一の
図4のモジュールは同じ参照番号でラベル付けしており、更なる説明は行わない。
図4では、ビットストリーム又は信号をステップ4001でエントロピ復号器によって復号する。エントロピ復号器は、再構成済みビデオ及び追加で復号済み改良パラメータを生じる。改良パラメータは、再構成済みビデオの改良を適用して出力ビデオを生じるためにステップ4002で使用する。
【0033】
本明細書で使用するとき、以下の表記は、次の内容を表すか又はかかる内容に相当する:
− Bは信号のビット深度である(例えば10ビット)
− MaxValは、(2
B-1)として計算される信号の最大値である
− Sin_Y(p)、Sin_cb(p)、Sin_cr(p)は、ピクチャ内の相対位置pにおけるY、cb、及びcrの元の(入力)信号に相当する
− Sout_cb(p)、Sout_cr(p)は、ピクチャ内の相対位置pにおける、改良によって生じるcb及びcrの(入力)信号に相当する
− Srec_Y(p)は、ピクチャ内の相対位置pにおける再構成済みルマ信号に相当する。これはインループフィルタから生じる信号に相当する
− Srec_cb(p)、Srec_cr(p)は、ピクチャ内の相対位置pにおける、改良させる再構成済みクロマ信号に相当する。これはインループフィルタから生じる信号に相当する
− neutralValは既定値に相当し、改良値がneutralValに等しい場合は改良が信号を修正せず、neutralValの典型的な値は64である
− Rcb、Rcrはクロマ改良パラメータに相当する
Rcb、Rcrは典型的には区分線形(PWL)モデルのピボットポイントとして定義することができる。例えば、
Rcb={(Rcb_idx[pt], Rcb_val[pt]), pt=0からNcb-1まで}、Ncbはピボットポイントの数である。
【0034】
クロマ改良パラメータRcb、RcrからルックアップテーブルLutRcb、LutRcrを導出する。例えばLutRcbは、Rcbのポイントの各対の間の線形補間によって以下のように構築することができる。
pt=0からNcb-2
idx=Rcb_idx[pt]から(Rcb_idx[pt+1]-1)では、
LutRcb[idx]=Rcb_val[pt]+(Rcb_val[pt+1]-Rcb_val[pt])*(idx-Rcb_idx[pt])/(Rcb_idx[pt+1]-Rcb_idx[pt])
【0035】
成分間クロマ改良の一実施形態は以下のように機能する(ここでは成分cbについて示す):
・ Sout_cb(p)=offset+LutRcb[Srec_Y(p)]/neutralVal*(Srec_cb(p)-offset)
但しoffsetは概して(MaxVal/2)に設定され、pはピクチャ内の同じ相対位置に対応する。
又は以下のように機能する:
・ Sout_cb(p)=(LutRcb[Srec_Y(p)]-neutralVal)+Srec_cb(p)
【0036】
実施形態の別の例では、改良はルマ成分の成分内改良として適用することができ、この改良は以下のように機能する:
・ Sout_Y(p)=(LutRy[Srec_Y(p)]/neutralVal)*Srec_Y(p)
又は以下のように機能する:
・ Sout_Y(p)=LutRy[Srec_Y(p)]+Srec_Y(p)
【0037】
一実施形態は、
図5の例に示すような1つ又は複数の構文の特徴を有するビットストリーム又は信号を提供することを含み得る。一態様は、クロマ成分だけが改良されることを含み得る。例えばrefinement_table_flag_cbが真の場合、0から(refinement_table_cb_size-1)までの全てのptについて、cb改良テーブルの値(Rcb_idx[pt]), Rcb_val[pt])を以下のように計算する:
・ Rcb_idx[pt]を(Rcb_idx[pt-1]+refinement_cb_idx[pt])に等しく設定する
・ Rcb_val[pt]を(neutralVal+refinement_cb_value[pt])に等しく設定する
cr成分にも同様のプロセスが適用される。
【0038】
改良テーブルの一例を
図6に示し、
図6ではrefinement_table_cb_size=6(pt=0から5)である。表記を単純にするために、
図6では「Rcb」を「R」で置換した。
【0039】
一実施形態では、ブロックベースの成分間クロマ改良が活性化されるとき、cb、cr改良テーブルのK個のペア(Rcb
k, Rcr
k)、k=1からKが使用可能にされる。Kが0に等しい場合、スライス内で改良は適用されない。これらのテーブルペアのどれを使用するのかを示すために、又は改良を活性化しないかどうかを示すために、又はこのブロックで活性化しないかどうかを示すために、1つ又は幾つかのブロックベースのインジケータをブロックごとにコード化する。
【0040】
実施形態の非限定的な例では、テーブルの1つのペアだけを使用する(K=1)。
【0041】
実施形態の別の例では、スライスヘッダ内で1組の改良テーブルがまずコード化される。cb、cr改良テーブルのペアを復号するための構文の一例を
図7に示す。
図7には、テーブルペア識別子を使用するスライスヘッダ構文の一例が示されており:
refinement_number_of_tablesは、ストリーム内にコード化されるクロマ改良テーブルペアの数を示す。この数は0以上であるものとする。0に等しい場合、それは現在のスライスにクロマ改良を適用しないことを意味する。refinement_number_of_tablesが0を上回る場合、0から(refinement_number_of_tables-1)の間のidxの任意の値について、少なくともrefinement_table_flag_cb[idx]又はrefinement_table_flag_cr[idx]が1に等しいものとする。
注記:refinement_number_of_tablesは上記で論じたパラメータKに相当する。
refinement_table_flag_cb[idx]は、識別子の値idxの改良テーブルペアのcb成分について、改良テーブルがコード化されているかどうかを示す。refinement_table_flag_cb[idx]が0に等しい場合、refinement_table_flag_cr[idx]が1に等しくなるものとする。
【0042】
refinement_table_cb_size[idx]は、識別子の値idxの改良テーブルペアのcb改良テーブルのサイズを示す。
refinement_cb_idx[idx][i]は、識別子の値idxの改良テーブルペアのcb改良テーブルのi番目の要素のインデックス(第1の座標)を示す。
refinement_cb_value[idx][i]は、識別子の値idxの改良テーブルペアのcb改良テーブルのi番目の要素の値(第2の座標)を示す。
refinement_table_flag_cr[idx]は、識別子の値idxの改良テーブルペアのcr成分について、改良テーブルがコード化されているかどうかを示す。refinement_table_flag_cr[idx]が0に等しい場合、refinement_table_flag_cb[idx]が1に等しくなるものとする。
refinement_table_cr_size[idx]は、識別子の値idxの改良テーブルペアのcr改良テーブルのサイズを示す。
refinement_cr_idx[idx][i]は、識別子の値idxの改良テーブルペアのcr改良テーブルのi番目の要素のインデックス(第1の座標)を示す。
refinement_cr_value[idx][i]は、識別子の値idxの改良テーブルペアのcr改良テーブルのi番目の要素の値(第2の座標)を示す。
【0043】
ブロック(又はCU又はCTU)レベルで、現在のブロックに適用すべきcb、cr改良テーブルのペアの識別子に対応する、ブロックベースの識別子tables_idがシグナリングされる。ブロック改良情報を復号するための構文の一例を
図8に示し、
図8はテーブルペア識別子を使用するブロックレベル構文の一例を示す。
図8では:
構文要素refinement_activation_flagは現在のブロックが改良を使用するかどうかを示す。
現在のブロックが改良を使用している(refinement_activation_flagが1に等しい)場合、構文要素tables_idを復号する。識別子tables_idに対応する改良テーブルを使用して現在のブロックを改良させる:
・ i=0から(refinement_table_cb_size[tables_id]-1)まで
〇 refinement_cb_idx[tables_id][i]
〇 refinement_cb_value[tables_id][i]
・ i=0から(refinement_table_cr_size[tables_id]-1)まで
〇 refinement_cr_idx[tables_id][i]
〇 refinement_cr_value[tables_id][i]
【0044】
現在のブロックの改良情報を導出するための実施形態を示す対応するブロック図を
図9に示す。
図9では、601で構文要素refinement_activation_flagを復号する。602で、refinement_activation_flagが0に等しいかを確認する。refinement_activation_flagが0に等しい場合は改良を適用しない(603)。refinement_activation_flagが0に等しくない場合、604でtables_idを復号する。605で、識別子tables_idによって示されるテーブルペアを使用して改良を適用する。
【0045】
一実施形態では、構文要素refinement_activation_flagがコード化されないが、ブロックが改良されないことをtables_idの特定の値が示す。例えば0に等しいtables_idは現在のブロックが改良を使用しないことを示す。「refinement_activation_flag==0?」の検定が「tables_id==0?」で置換される。
【0046】
別の実施形態では、一態様が隣接改良情報と相対的にコード化することを含む。例えばブロックベースのインジケータは、現在のブロックの改良情報が隣接ブロックから複製されるかどうかを示す構文要素で作られる。改良情報は、少なくとも
− ブロックが改良を使用したかどうかを示すパラメータ(ここでは、refinement_activation_flagと命名する構文要素にも対応するrefinedBlockと命名する)
− ブロックが改良されることをrefinedBlockが示す場合、ブロックのサンプルを改良させるために使用される改良テーブル
で作られる。
ブロック改良情報を復号するための構文の一例を
図10に示し:
tables_from_left_flagは、改良情報が現在のブロックの左のブロックから複製されるかどうかを示す。
tables_from_up_flagは、改良情報が現在のブロックの上のブロックから複製されるかどうかを示す。
refinement_activation_flagは、現在のブロックについて改良が活性化されているかどうかを示す。
【0047】
現在のブロックの改良情報を導出するための対応するブロック図を
図11に示す。
図11では、(501)で構文要素tables_from_left_flagを復号する。502で、tables_from_left_flagが0に等しいかを確認する。tables_from_left_flagが0に等しくない場合、現在のブロックの改良情報を現在のブロックの左のブロックから複製する(504)。さもなければ、503で構文要素tables_from_up_flagを復号する。505で、tables_from_up_flagが0に等しいかを確認する。tables_from_up_flagが0に等しくない場合、現在のブロックの改良情報を現在のブロックの上のブロックから複製する(507)。さもなければ、506で構文要素refinement_activation_flagを復号する。現在のブロックのrefinedBlockをrefinement_activation_flagに設定する。508で、refinement_activation_flagが0に等しいかを確認する。refinement_activation_flagが1に等しい場合は改良テーブルを復号する(510)。さもなければ、特定のプロセスは適用されない(510)。511で改良を適用する。このステップでは、refinedBlockが0に等しい場合、そのブロックは改良プロセスによって処理しない。refinedBlockが1に等しい場合、現在のブロックについて導出される改良テーブルを使用してブロックを改良させる。
【0048】
一実施形態では、refinement_activation_flagが明確にコード化又は復号されないが、コンテキスト的に暗に推論される。例えばコンテキストはSAOループフィルタリングプロセスに関係する。この実施形態では、SAOパラメータからrefinement_activation_flagを演繹する。一実施形態では、ブロックについてSAOが無効にされる場合、refinement_activation_flagが0に等しく設定される。ブロックについてSAOが有効にされる場合、refinement_activation_flagが1に等しく設定される。別の実施形態では、ブロックについてSAOバンドオフセットが無効にされる場合、refinement_activation_flagが0に等しく設定される。ブロックについてSAOバンドオフセットが有効にされる場合、refinement_activation_flagが1に等しく設定される。エッジオフセット等の他のSAOの種類についても同様の規則を適用することができる。
【0049】
一実施形態では、改良プロセスがSAO等の別のループフィルタプロセスと一緒に適用される。
【0050】
概して一実施形態は、冗長なニュートラル値を回避することによってテーブルのコード化コストを低減することを含み得る。一実施形態では、クロマ改良テーブルが同じサイズを有し(Ncb=Ncr=N)、同じインデックスを共有すると考える:
Rcb_idx[pt]=Rcr_idx[pt]、pt=0から(N-1)
殆どの場合において、或る成分(例えばcb)の改良パラメータがニュートラル値neutralValに等しい場合、他のクロマ成分の対応する改良パラメータがニュートラル値に往々にして近いことが認められる。
【0051】
このことを以下の例によって示し、以下の例はVTMコーデックを使用して37のQPによってコード化されるSDRコンテンツBasketballDrive_1920x1080の最初のピクチャの処理から得られる。neutralValueは64に等しく、改良値が64に近い事例を太字フォントで示す。
【数1】
従って一実施形態では、第1のクロマ成分の改良パラメータの対応する改良パラメータ値に基づいて第2のクロマ成分の改良パラメータのコード化を条件付けることにより、改良パラメータのコストを低減することができる。これを
図12に示し、
図12は符号器側に対応する上部のブロック図、及び復号器側に対応する下部のブロック図の両方を含む。
【0052】
符号器において、入力値は、第1のクロマ成分(例えばcb成分)の改良パラメータRp_c1、及び(改良パラメータテーブル内の同じ相対インデックスに関して指定される)第2のクロマ成分の対応する改良パラメータRp_c2である。第1のステップは、第1のクロマ成分の改良パラメータRp_c1の符号化を行う(ステップ701)。第2のステップは、Rp_c1の値に関係する条件を確認する(ステップ702)。条件が偽の場合、第2のクロマ成分の対応する改良パラメータRp_c2の値を符号化する(ステップ704)。条件が真の場合、Rp_c2の値を推論する(ステップ703)。
【0053】
復号器において、第1のステップは第1のクロマ成分の改良パラメータRp_c1の復号を行う(ステップ711)。第2のステップは、Rp_c1の値に関係する条件を確認することを含む(ステップ712)。条件が偽の場合、第2のクロマ成分の対応する改良パラメータRp_c2の値を復号する(ステップ714)。条件が真の場合、Rp_c2の値を推論する(ステップ713)。
【0054】
一実施形態では、検定される条件は、第1のクロマ成分の改良パラメータの値がneutralValueに等しいかどうかを確認することを含み得る:
Rp_c1==neutralValue?
【0055】
別の実施形態では、検定される条件は、第1のクロマ成分の改良パラメータの値が(neutralValue-thresh1)以上かどうか、又は(neutralValue-thresh2)以下かどうかを確認することを含むことができ、thresh1及びthresh2は(典型的には1に等しい)既定値である:
Rp_c1>=(neutralValue-thresh1) AND Rp_c1<=(neutralValue+thresh2)?
【0056】
一実施形態では、Rp_c2の推論値がneutralValueである。
【0057】
一実施形態では、Rp_c2の推論値がRp_c1である。
【0058】
一実施形態では、Rp_c2の推論値が(neutralValue-Rp_c1)である。
【0059】
Rp_c1(テーブル内のrefinement_cb_value[i])==neutralValue?の条件を有する、修正した構文の一例を
図13に示す。この条件が真の場合、Rp_c2(テーブル内のrefinement_cr_value[i])はneutralValueに推論される。さもなければこの要素は明確にシグナリングされる。
【0060】
概して、一実施形態は改良テーブルのサイズの制御を含み得る。例えば一実施形態では、改良テーブルのコード化コストを低減するために以下のうちの少なくとも1つが含まれ得る:
・ cb及びcrのテーブルサイズが同じであり、既定で固定され及び定められ、ここではNと命名する。
・ テーブルRcb_idx[pt]及びRcr_idx[pt]のインデックスが等距離ポイントに対応する。
・ 改良テーブルごとに限られた既定数Nrefの要素がコード化される。この事例では、テーブルの要素がコード化される最初のテーブルポイントの指示pt_initが与えられる。従ってコード化される改良値は、
〇 Rcb_idx[pt_init]からRcb_idx[pt_init+Nref-1]
〇 Rcr_idx[pt_init]からRcr_idx[pt_init+Nref-1]
【0061】
他の(コード化されない)値はニュートラル値(NeutralVal)に設定される。
〇 Rcr_idx[pt]=neutralVal及びRcb_idx[pt]=neutralVal、pt=0から(pt_init-1)及び(pt_init+Nref)から(N-1)まで
一実施形態では、改良テーブルごとの値の数Nrefが4に等しい。
【0062】
一実施形態では、例えば以下に列挙し、
図14に示す対応するブロック図の中で示すアクションに基づく本明細書に記載の1つ又は複数の実施形態に従い、符号器がブロックベースの改良の活性化を決定し、1つ又は複数の改良テーブルを導出することができる。一実装形態では、列挙するアクションを繰り返し行うことができる。
1.blkId=0から(Nblk-1)でありNblkはスライスのブロック数である、マップblkTablesId[blkId]を−1に初期化する(ステップ802)。
2.テーブル識別子のパラメータtablesIdを0に初期化する(ステップ803)。
3.blkTablesId[blkId]=-1であるブロックblkId内のサンプルから識別子tablesIdの改良テーブルを導出する(ステップ804)。
a.結果はcbテーブル及びcrテーブルである:
i.(refinement_cb_idx[tablesId][i], refinement_cb_value[tablesId][i])、iは0から(refinement_table_cb_size[tablesId]-1)、及び
(refinement_cr_idx[tablesId][i], refinement_cr_value[tablesId][i])、iは0から(refinement_table_cr_size[tablesId]-1)
b.記載した計算を行うための実施形態については以下を参照されたい。
4.blkTablesId[blkId]=-1であるブロックblkIdごとに、改良なしのクロマレート歪みコスト(RD_without[blkId])、及びステップ3で計算したテーブルを使用する改良ありのクロマレート歪みコスト(RD_with[blkId])を計算する(ステップ805)。
a.クロマレート歪みコストは以下のように計算する:
distortion(cb)+distortion(cr)+L*cost(refinement_table_cb)+L*cost(refinement_table_cr)+L*cost(activation map)
但しLはレート歪みコストの導出内のよく知られている「ラムダ」パラメータである。
5.blkTablesId[blkId]=-1である全てのブロックblkIdについて、ブロックベースの改良の活性化を以下のように更新する(ステップ806):
a.(RD_with[blkId]<RD_without[blkId])が成立する場合、blkTablesId[blkId]=tablesIdである
6.blkTablesId[blkId]=-1等のブロックblkIdが依然としてあり且つtablesId<MaxNbTablesである場合(ステップ807)、
a.tablesIdを1インクリメントしステップ3に進む。
b.さもなければ停止する(ステップ809)。
【0063】
MaxNbTablesは、改良テーブルの有効にされたペアの最大数を指定する既定のパラメータである(ステップ808)。
【0064】
上記の態様3bに関して、一実施形態では以下で説明するように改良メタデータを導出することができる。改良メタデータは、色成分(例えばルマ成分Y、又はクロマ成分Cb/Cr)の個々のサンプルに適用されるR()で示す補正関数を表す。改良メタデータの1つの態様は、再構成済みピクチャと元のピクチャとの間のレート歪みコストを最小化することである。この最小化は所与の領域A、例えば全ピクチャ、スライス、タイル、又はCTU上で行うことができる。改良メタデータはRで示す。好ましい実装形態では、N個の対(R_idx[k], R_val[k])、k=0からN-1によって定められる区分線形モデルをRに使用する。
【0065】
このプロセスは改良メタデータRをニュートラル値によって初期化することから始まる(ステップ300)。ニュートラル値は、改良が信号を変えないものである。これについては以下で更に説明する。Rを使用して最初のレート歪みコストinitRDを計算する。関数Rを使用するレート歪みコストの導出は以下で説明する。パラメータbestRDをinitRDに初期化する。改良メタデータRを最適化するステップは以下のステップで構成される。PWLモデルの連続したピボットポイントRのインデックスptに関するループを実行する。パラメータbestVal及びinitValをR_val[pt]に初期化する。R_val[pt]の様々な値に関するループを実行する。ループは(initVal-Val0)の値から(initVal+Val1)の値まで果たし、Val0及びVal1は既定のパラメータである。典型的な値を以下に示す。(修正されたR_val[pt]と共に)修正されたRを使用してレート歪みコストcurRDを計算する。curRDとbestRDとの比較が。curRDがbestRDよりも低い場合、bestRDをcurRDに設定し、bestValueをR_val[pt]に設定する。次に、R_val[pt]の値に関するループの終了について確認を行う。ループが完了している場合はR_val[pt]をbestValueに設定する。次にptの値に関するループを確認する。ループが終了している場合、結果として生じる最適化プロセスのメタデータはRである。改良メタデータを最適化するステップは数回繰り返すことができる。
【0066】
次に、以下の表記を使用して改良プロセスの実施形態を説明する:
− Bは信号のビット深度である(例えば10ビット)
− MaxValは、(2
B-1)として計算される信号の最大値である
− Sin(p)は、ピクチャ内の位置pにおける元の(入力)信号である
− Sout(p)は、ピクチャ内の位置pにおける改良によって生じる信号である
− Srec(p)は、改良させる信号である。これは第1の改変形態の逆マッピングから生じる信号、又は第2の改変形態のインループフィルタから生じる信号に相当する
− NeutralValは既定値に相当し、改良値がNeutralValに等しい場合は改良が信号を修正せず、NeutralValの典型的な値は128である
【0067】
改良メタデータRからルックアップテーブルLutRを以下のように構築することができる。
pt=0からN-2
idx=R_idx[pt]から(R_idx[pt+1]-1)では、
LutR[idx]=R_val[pt]+(R_val[pt+1]-R_val[pt])*(idx-R_idx[pt])*(R_idx[pt+1]-R_idx[pt])
【0068】
概して、改良モードの少なくとも2つの例が定められる。本明細書ではこれらの例を「モード1」又は「成分内改良モード」、及び「モード2」又は「成分間改良モード」と呼ぶ:
・ モード1又は成分内改良モードでは改良を他の成分と独立に行う。好ましくはこのモードはルマ成分に適用され、以下の公式に基づく:
〇 Sout(p)=LutR[Srec(p)]/NeutralVal*Srec(p)
・ モード2又は成分間改良モードでは、改良が別の成分に依存して或る成分に対して行われる。好ましくは、このモードはルマ成分(以下Srec_Y(p)で示す)への依存を伴ってクロマ成分に適用される。Srec_Y(p)は、第1の改変形態ではインループフィルタのステップから又は逆マッピングから生じる信号とすることができることに留意されたい。Srec_Y(p)は、他の(Y)成分のフィルタリング済みバージョンとすることもできる。このプロセスは以下の公式に基づき:
〇 Sout(p)=offset+LutR[Srec_Y(p)]/NeutralVal*(Srec(p)-offset)
但しoffsetは概して(MaxVal/2)に設定され、pはピクチャ内の同じ相対位置に対応する。
最小信号値と最大信号値と(典型的には10ビット信号では0と1023と)の間の丸め及びクリッピングを最後に改良済みの値Sout(p)に適用する。ここでは改良を乗法演算子モードとして適用する。改良には加法改良演算子を使用することもできる。この場合、モード1は以下のように適用される:
〇 Sout(p)=LutR[Srec(p)]/NeutralVal+Srec(p)
モード2は以下のように適用される
〇 Sout(p)=LutR[Srec_Y(p)]/NeutralVal+Srec(p)
クロマ成分には乗法演算子モードを有する改良モード2が好ましい。
【0069】
次に、一実施形態では改良メタデータRのレート歪みコストを以下のように求めることができ、但し下記の表記を使用する:
− Aは改良を行うピクチャ領域であり、改良は例えば全ピクチャ、スライス、タイル、CTU上で行うことができる。
− Dist(x,y)は、サンプル値xとサンプル値yとの間の歪みである。典型的には歪みは二乗誤差(x-y)
2である
− Cost(R)は、改良メタデータRをコード化するためのコード化コストである
− Lは領域に関連するラムダ係数である。Lは典型的には2
(QP/6)に線形依存し、QPは領域に量子化パラメータが適用されることを表す。
改良メタデータRを使用するレート歪みコストRDcostは以下のように定められ:
【数2】
元の信号Sin(p)と改良済み信号Sout(p)との間の総レート歪みコストが最小化されるようにRは構築される。
【0070】
概して、一実施形態はコード化利得、つまり同じビットレートについて品質を高めること又は同じ品質についてビットレートを下げることをもたらす。ブロックベースの活性化による改良の利得を以下の表に示す。以下に示す非限定的な例では、成分ごとに1つのテーブルだけが認められる(K又は等価のrefinement_number_of_tablesが1に等しい)。
【0071】
5 HDR HD 10ビットコンテンツ、5 SDR HD 8ビットコンテンツ、及び2 SDR HD 10ビットコンテンツについてパフォーマンスを示す。使用するコーデックは、QTBT(4分木と2分木によるブロック分割構造)を活性化した状態のVTM(Versatile Video Coding(VVC)テストモデル)である。全てのシーケンスが10ビットの内部ビット深度でコード化される。以下の表は、ランダムアクセス構成における17フレームのシーケンスに対するコード化の結果を示す。neutraValは64に設定され、テーブルサイズは17に設定される。改良メタデータのコード化は、時間的レベル0についてのみ適用される。
【0072】
以下の5つの表は次のようにBDレートの利得を示す:全てのブロックに改良を適用した場合の表1(「フルスライスの改良」)、サイズ128x128のブロックごとの改良(「blk128の改良」)、サイズ64x64のブロックごとの改良(「blk64の改良」)、及びサイズ32x32のブロックごとの改良(「blk32の改良」)の活性化を有効にした場合の表2から表4、及びコンテンツごとに最良の構成を選択した場合の表5。これらの結果はブロックベースの改良の活性化を使用する利益又は改善を示す。
【0078】
本明細書は、実施形態、特徴、モデル、手法等の様々な例を説明する。そのような多くの例は特定性を伴って説明しており、少なくとも個々の特性を示すために限定的だと思われ得るやり方でしばしば説明する。但しそれは説明を明瞭にするためであり、この出願又は範囲を限定するものではない。実際、実施形態の更なる例をもたらすために、本明細書に記載の実施形態、特徴等の様々な例を様々なやり方で組み合わせ交換することができる。
【0079】
概して、本明細書に記載し本明細書で予期する実施形態の例は多くの異なる形態で実装することができる。上記の
図1及び
図2並びに下記の
図15は一部の実施形態を示すが、他の実施形態も予期され、
図1、
図2、及び
図15の解説は実装形態の範囲を限定するものではない。少なくとも1つの実施形態は概してビデオの符号化及び/又は復号に関係する例を提供し、少なくとも1つの他の実施形態は概して生成され又は符号化されたビットストリーム又は信号を伝送することに関係する。これらの及び他の実施形態は、方法、機器、記載する方法の何れかに従ってビデオデータを符号化し又は復号するための命令を記憶しているコンピュータ可読記憶媒体、及び/又は記載する方法の何れかに従って生成されるビットストリーム若しくは信号を記憶しているコンピュータ可読記憶媒体として実装することができる。
【0080】
本願では、「再構成する」という用語と「復号する」という用語を区別なく使用する場合があり、「ピクセル」という用語と「サンプル」という用語を区別なく使用する場合があり、「画像」、「ピクチャ」、及び「フレーム」という用語を区別なく使用する場合がある。必ずではないが通常、「再構成する」という用語は符号器側で使用されるのに対し「復号する」は復号器側で使用される。
【0081】
本開示ではHDR(高ダイナミックレンジ)及びSDR(標準ダイナミックレンジ)という用語を使用する。これらの用語は、多くの場合にダイナミックレンジの特定値を当業者に伝える。但し、HDRに言及することが「より高いダイナミックレンジ」を意味すると理解され、SDRに言及することが「より低いダイナミックレンジ」を意味すると理解される追加の実施形態も意図する。かかる追加の実施形態は、「高ダイナミックレンジ」及び「標準ダイナミックレンジ」という用語に多くの場合関連し得るダイナミックレンジの任意の特定値によって制約されることはない。
【0082】
本明細書では様々な方法を記載し、方法のそれぞれは記載する方法を実現するための1つ又は複数のステップ又はアクションを含む。方法が適切に動作するのにステップ又はアクションの特定の順序が要求されない限り、特定のステップ及び/又はアクションの順序及び/又は使用は修正し又は組み合わせることができる。
【0083】
本明細書に記載の様々な方法及び他の態様を使用してモジュール、例えば
図1及び
図2に示すビデオ符号器100及び復号器200のイントラ予測、エントロピコード化、及び/又は復号モジュール(160、360、145、330)を修正することができる。更に、本明細書の態様はVVC又はHEVCに限定されず、例えば既存の又は将来開発される他の規格及び勧告、並びにそのような任意の規格及び勧告(VVC及びHEVCを含む)の拡張に適用することができる。別段の定めがない限り、又は技術的に除外されない限り、本明細書に記載の態様は個別に又は組み合わせて使用することができる。
【0084】
例えば本明細書では様々な数値を使用する。具体的な値は例示目的であり、記載する態様はそれらの具体的な値に限定されない。
【0085】
図15は、様々な態様及び実施形態を実装することができるシステムの一例のブロック図を示す。システム1000は、以下に記載の様々なコンポーネントを含む装置として実装することができ、本明細書に記載の態様の1つ又は複数を実行するように構成される。かかる装置の例は、これだけに限定されないが、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ録画システム、接続された家庭用電化製品、及びサーバ等の様々な電子装置を含む。システム1000の要素は、単一の集積回路、複数のIC、及び/又は個別コンポーネント内に単独で又は組み合わせて実装することができる。例えば少なくとも1つの実施形態では、システム1000の処理及び符号器/復号器の要素が複数のIC及び/又は個別コンポーネントにわたって分散される。様々な実施形態において、システム1000は、例えば通信バスを介して又は専用の入力及び/又は出力ポートによって他の同様のシステムに又は他の電子装置に通信可能に結合される。様々な実施形態において、システム1000は本明細書に記載の態様の1つ又は複数を実装するように構成される。
【0086】
システム1000は、例えば本明細書に記載の様々な態様を実装するために自らの中にロードされた命令を実行するように構成される少なくとも1つのプロセッサ1010を含む。プロセッサ1010は、埋め込みメモリ、入出力インタフェース、及び当技術分野で知られている他の様々な回路を含み得る。システム1000は、少なくとも1つのメモリ1020(例えは揮発性メモリ装置及び/又は不揮発性メモリ装置)を含む。システム1000は、これだけに限定されないが、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ、磁気ディスクドライブ、及び/又は光ディスクドライブを含む不揮発性メモリ及び/又は揮発性メモリを含み得る記憶装置1040を含む。記憶装置1040は、非限定的な例として内蔵記憶装置、付加記憶装置、及び/又はネットワークアクセス可能記憶装置を含み得る。
【0087】
システム1000は、例えば符号化済みビデオ又は復号済みビデオを提供するためにデータを処理するように構成される符号器/復号器モジュール1030を含み、符号器/復号器モジュール1030は独自のプロセッサ及びメモリを含み得る。符号器/復号器モジュール1030は、符号化及び/又は復号機能を実行するために装置内に含まれ得るモジュールを表す。知られているように、装置は符号化モジュール及び復号モジュールの一方又は両方を含み得る。加えて、符号器/復号器モジュール1030はシステム1000の別個の要素として実装することができ、又は当業者に知られているようにハードウェアとソフトウェアとの組み合わせとしてプロセッサ1010内に組み込まれ得る。
【0088】
本明細書に記載の様々な態様を実行するためにプロセッサ1010又は符号器/復号器1030上にロードされるプログラムコードは記憶装置1040内に記憶され、その後プロセッサ1010によって実行するためにメモリ1020上にロードされ得る。様々な実施形態によれば、プロセッサ1010、メモリ1020、記憶装置1040、及び符号器/復号器モジュール1030の1つ又は複数が、本明細書に記載のプロセスの実行中に様々なアイテムの1つ又は複数を記憶し得る。記憶されるかかるアイテムは、これだけに限定されないが入力ビデオ、復号済みビデオ又は復号済みビデオの一部、ビットストリーム又は信号、行列、変数、並びに等式、公式、演算、及び演算ロジックの処理の中間結果又は最終結果を含み得る。
【0089】
幾つかの実施形態では、プロセッサ1010及び/又は符号器/復号器モジュール1030の内部のメモリを使用して命令を記憶し、符号化又は復号中に必要な処理用のワーキングメモリを提供する。しかし他の実施形態では、これらの機能の1つ又は複数のために処理装置(例えば処理装置はプロセッサ1010又は符号器/復号器モジュール1030であり得る)の外部のメモリが使用される。外部メモリはメモリ1020及び/又は記憶装置1040、例えばダイナミック揮発性メモリ及び/又は不揮発性フラッシュメモリとすることができる。幾つかの実施形態では、テレビのオペレーティングシステムを記憶するために外部の不揮発性フラッシュメモリが使用される。少なくとも1つの実施形態では、MPEG−2、HEVC、又はVVC(Versatile Video Coding)等のビデオのコード化及び復号操作用のワーキングメモリとしてRAM等の高速な外部のダイナミック揮発性メモリが使用される。
【0090】
システム1000の要素への入力は、ブロック1130内に示す様々な入力装置によって提供され得る。かかる入力装置は、これだけに限定されないが(i)例えばブロードキャスタによって無線で伝送されるRF信号を受信するRF部分、(ii)複合入力端子、(iii)USB入力端子、及び/又は(iv)HDMI入力端子を含む。
【0091】
様々な実施形態において、ブロック1130の入力装置は当技術分野で知られている関連する個々の入力処理要素を有する。例えばRF部分は、(i)所望の周波数を選択する(信号を選択する又は信号を或る周波数帯域に帯域制限するとも言う)、(ii)選択した信号をダウンコンバートする、(iii)(例えば)特定の実施形態においてチャネルと呼ばれ得る信号周波数帯域を選択するために、より狭い周波数帯域へと再び帯域制限する、(iv)ダウンコンバート及び帯域制限済みの信号を復調する、(v)誤り訂正を行う、及び(vi)データパケットの所望のストリームを選択するために逆多重化するための要素に関連し得る。様々な実施形態のRF部分はこれらの機能を実行するための1つ又は複数の要素、例えば周波数セレクタ、信号セレクタ、帯域制限器、チャネルセレクタ、フィルタ、ダウンコンバータ、復調器、誤り訂正器、及びデマルチプレクサを含む。RF部分は、例えば受信した信号をより低い周波数(例えば中間周波数又は基底帯域に近い周波数)又は基底帯域にダウンコンバートすることを含む、これらの機能の様々なものを行うチューナを含むことができる。或るセットトップボックスの実施形態では、RF部分及びその関連する入力処理要素が有線(例えばケーブル)媒体上で伝送されるRF信号を受信し、所望の周波数帯域へとフィルタリングし、ダウンコンバートし、再びフィルタリングすることによって周波数の選択を行う。様々な実施形態は上記で説明した(及び他の)要素の順序を並べ替え、それらの要素の一部を除去し、及び/又は同様の若しくは異なる機能を実行する他の要素を追加する。要素を追加することは既存の要素の間に要素を挿入すること、例えば増幅器及びアナログ−デジタル変換器を挿入することを含み得る。様々な実施形態において、RF部分はアンテナを含む。
【0092】
加えて、USB及び/又はHDMI端子は、USB及び/又はHDMI接続の両端間でシステム1000を他の電子装置に接続するための個々のインタフェースプロセッサを含み得る。例えば別個の入力処理IC内で又はプロセッサ1010内で入力処理、例えばリードソロモン誤り訂正の様々な態様を実装できることを理解すべきである。同様に、USB又はHDMIインタフェース処理の態様を別個のインタフェースIC内で又はプロセッサ1010内で実装することができる。出力装置上で提示するためにデータストリームを処理するために、変調済みの、誤り訂正済みの、及び逆多重化済みのストリームが、例えばメモリ及び記憶要素と組み合わせて動作するプロセッサ1010及び符号器/復号器1030を含む様々な処理要素に与えられる。
【0093】
システム1000の様々な要素を一体型ハウジング内に設けることができる。一体型ハウジングの中では様々な要素が相互接続され、適切な接続構成1140、例えばI2Cバス、配線、及びプリント回路基板を含む当技術分野で知られている内部バスを使用してそれらの間でデータを伝送し得る。
【0094】
システム1000は、通信チャネル1060を介して他の装置と通信することを可能にする通信インタフェース1050を含む。通信インタフェース1050は、これだけに限定されないが、通信チャネル1060上でデータを送受信するように構成されるトランシーバを含み得る。通信インタフェース1050は、これだけに限定されないがモデム又はネットワークカードを含むことができ、通信チャネル1060は例えば有線媒体及び/又は無線媒体内に実装することができる。
【0095】
様々な実施形態において、IEEE 802.11等のWi-Fiネットワークを使用してデータがシステム1000にストリームされる。これらの実施形態のWi-Fi信号は、Wi-Fi通信に適合される通信チャネル1060及び通信インタフェース1050上で受信される。これらの実施形態の通信チャネル1060は、ストリーミングアプリケーション及び他のオーバーザトップ通信を可能にするためにインターネットを含む外部ネットワークへのアクセスを提供するアクセスポイント又はルータに典型的には接続される。他の実施形態は、入力ブロック1130のHDMI接続上でデータを届けるセットトップボックスを使用してストリームデータをシステム1000に与える。更に他の実施形態は、入力ブロック1130のRF接続を使用してストリームデータをシステム1000に与える。
【0096】
システム1000は、ディスプレイ1100、スピーカ1110、及び他の周辺装置1120を含む様々な出力装置に出力信号を与えることができる。実施形態の様々な例において、他の周辺装置1120は、独立型DVR、ディスクプレーヤ、ステレオシステム、照明システム、及びシステム1000の出力に基づいて機能を提供する他の装置のうちの1つ又は複数を含む。様々な実施形態において、AV.Link、CEC、又はユーザの介入ありの若しくはなしの装置間制御を可能にする他の通信プロトコル等のシグナリングを使用し、システム1000とディスプレイ1100、スピーカ1110、又は他の周辺装置1120との間で制御信号が通信される。出力装置が、個々のインタフェース1070、1080、及び1090による専用接続を介してシステム1000に通信可能に結合され得る。或いは出力装置は、通信インタフェース1050を介して通信チャネル1060を使用してシステム1000に接続され得る。ディスプレイ1100及びスピーカ1110は、電子装置、例えばテレビの中でシステム1000の他のコンポーネントと共に単一のユニットに一体化することができる。様々な実施形態において、ディスプレイインタフェース1070はディスプレイドライバ、例えばタイミングコントローラ(T Con)チップを含む。
【0097】
例えば入力1130のRF部分が別個のセットトップボックスの一部である場合、ディスプレイ1100及びスピーカ1110は他のコンポーネントの1つ又は複数から代わりに切り離すことができる。ディスプレイ1100及びスピーカ1110が外部コンポーネントである様々な実施形態において、出力信号は例えばHDMIポート、USBポート、又はCOMP出力を含む専用出力接続によって与えることができる。
【0098】
実施形態は、プロセッサ1010によって実装されるコンピュータソフトウェアによって、又はハードウェアによって、又はハードウェアとソフトウェアとの組み合わせによって実行することができる。非限定的な例として、実施形態は1つ又は複数の集積回路によって実装され得る。メモリ1020は技術的環境に適した任意の種類のものとすることができ、非限定的な例として光メモリ装置、磁気メモリ装置、半導体ベースのメモリ装置、固定メモリ、及び脱着可能メモリ等、任意の適切なデータ記憶技術を使用して実装することができる。プロセッサ1010は技術的環境に適した任意の種類のものとすることができ、非限定的な例としてマイクロプロセッサ、汎用コンピュータ、専用コンピュータ、及びマルチコアアーキテクチャに基づくプロセッサのうちの1つ又は複数を包含し得る。
【0099】
以下、本明細書に記載の1つ又は複数の態様を実装するのに適した実施形態の他の様々な例を概して示す
図16から
図30について説明する。
【0100】
図16は、特定の及び非限定的な実施形態による、ビットストリーム内にピクチャを符号化するように構成される送信器1000のアーキテクチャの一例を示す。
【0101】
送信器1000は、内蔵メモリ1030(例えばRAM、ROM、及び/又はEPROM)と共に、例えばCPU、GPU、及び/又はDSP(デジタル信号プロセッサの英語の頭字語)を含み得る1つ又は複数のプロセッサ1005を含む。送信器1000は、出力情報を表示するように及び/又はユーザがコマンド及び/又はデータを入力することを可能にするようにそれぞれ適合される1つ又は複数の通信インタフェース1010(例えばキーボード、マウス、タッチパッド、ウェブカメラ)と、送信器1000の外部にあり得る電源1020とを含む。送信器1000は、1つ又は複数のネットワークインタフェース(不図示)も含み得る。符号器モジュール1040は、コード化機能を実行するために装置内に含まれ得るモジュールを表す。加えて、符号器モジュール1040は送信器1000の別個の要素として実装することができ、又は当業者に知られているようにハードウェアとソフトウェアとの組み合わせとしてプロセッサ1005内に組み込まれてもよい。
【0102】
ピクチャはソースから得ることができる。異なる実施形態によれば、ソースはこれだけに限定されないが、
− ローカルメモリ、例えばビデオメモリ、RAM、フラッシュメモリ、ハードディスク、
− 記憶域インタフェース、例えば大容量記憶域、ROM、光ディスク、又は磁気支持とのインタフェース、
− 通信インタフェース、例えば有線インタフェース(例えばバスインタフェース、広域ネットワークインタフェース、ローカルエリアネットワークインタフェース)、又は無線インタフェース(IEEE 802.11インタフェース又はBluetoothインタフェース等)、及び
− ピクチャ捕捉回路(例えばCCD(即ち電荷結合素子)又はCMOS(即ち相補型金属酸化膜半導体)等のセンサ)
であり得る。
【0103】
異なる実施形態によれば、ビットストリームは宛先に送信することができる。一例として、ビットストリームはリモートメモリ又はローカルメモリ、例えばビデオメモリ、又はRAM、ハードディスク内に記憶される。改変形態では、ビットストリームが記憶域インタフェース、例えば大容量記憶域、ROM、フラッシュメモリ、光ディスク、又は磁気支持とのインタフェースに送信され、及び/又は通信インタフェース、例えば二地点間リンク、通信バス、一地点対多地点間リンク、又はブロードキャストネットワークへのインタフェース上で伝送される。
【0104】
実施形態の非限定的な例によれば、送信器1000がメモリ1030内に記憶されるコンピュータプログラムを更に含む。コンピュータプログラムは、送信器1000によって、具体的にはプロセッサ1005によって実行されるときに
図20に関して記載する符号化方法を送信器1000が実行することを可能にする命令を含む。改変形態によれば、コンピュータプログラムが非一時的デジタルデータ支持上で、例えば全て当技術分野で知られているHDD、CD−ROM、DVD、読取専用及び/又はDVDドライブ、及び/又はDVDリード/ライトドライブ等の外部記憶媒体上で送信器1000の外部に記憶される。従って送信器1000はコンピュータプログラムを読み出すための機構を含む。更に送信器1000は、対応するユニバーサルシリアルバス(USB)ポート(不図示)経由で1つ又は複数のUSB型記憶装置(例えば「メモリスティック」)にアクセスすることができる。
【0105】
実施形態の1つ又は複数の非限定的な例によれば、送信器1000はこれだけに限定されないが、
− モバイル装置、
− 通信装置、
− ゲーム機、
− タブレット(又はタブレットコンピュータ)、
− ラップトップ、
− 静止画像カメラ、
− ビデオカメラ、
− 符号化チップ又は符号化装置/機器、
− 静止画像サーバ、及び
− ビデオサーバ(例えばブロードキャストサーバ、ビデオオンデマンドサーバ、又はウェブサーバ)
であり得る。
【0106】
図17は、
図20の符号化方法を実行するように適合されるビデオ符号器100、例えばHEVC型の符号器の一例を示す。符号器100は、送信器1000又はかかる送信器1000の一部の一例である。
【0107】
コード化するために、基本コード化単位、例えばHEVCのコード化ツリー単位(CTU)又はH.264のマクロブロック単位へとピクチャが通常は分割される。1組のことによると連続した基本コード化単位がスライスへとグループ化される。基本コード化単位は、全ての色成分の基本コード化ブロックを含む。HEVCでは、最も小さいコード化ツリーブロック(CTB)のサイズ16x16が、以前のビデオコード化規格で使用されるマクロブロックのサイズに相当する。本明細書では符号化/復号方法及び符号化/復号機器を説明するためにCTU及びCTBという用語を使用するが、これらの方法及び機器はH.264等の他の規格内で異なるように命名され得る(例えばマクロブロック)それらの特定の用語によって限定されるべきではないことが理解されよう。
【0108】
HEVCのコード化では、構成可能なサイズ、典型的には64x64、128x128、又は256x256を有する正方形のCTUへとピクチャが分割される。CTUは等しいサイズの、即ち親ブロックの幅及び高さの半分のサイズの4個の正方形のコード化単位(CU)への4分木分割の根である。4分木は親ノードを4個の子ノードに分割できるツリーであり、子ノードのそれぞれは4個の子ノードへの別の分割の親ノードになり得る。HEVCではコード化ブロック(CB)が1つ又は複数の予測ブロック(PB)へと分割され、変換ブロック(TB)への4分木分割の根を形成する。コード化ブロック、予測ブロック、及び変換ブロックに対応して、コード化単位(CU)は予測単位(PU)及び1組の木構造の変換単位(TU)を含み、PUは全ての色成分に関する予測情報を含み、TUは色成分ごとの残差コード化構文構造を含む。ルマ成分のCB、PB、及びTBのサイズは対応するCU、PU、及びTUに当てはまる。
【0109】
より最近の符号化システムでは、CTUはコード化単位(CU)へのコード化ツリー分割の根である。コード化ツリーは、(通常はCUに対応する)親ノードを子ノードに(例えば2個、3個、又は4個の子ノードに)分割することができるツリーであり、子ノードのそれぞれは子ノードへの別の分割の親ノードになり得る。4分木分割モードに加えて、可能な分割モードの総数を増やす新たな分割モード(2分木対称分割モード、2分木非対称分割モード、及び3分木分割モード)も定められる。コード化ツリーは固有の根ノード、例えばCTUを有する。コード化ツリーの葉はツリーの終端ノードである。コード化ツリーの各ノードは、サブCU又はより全般的にサブブロックとも命名されるより小さいCUへと更に分割され得るCUを表す。CUへのCTUの分割が決定されると、コード化ツリーの葉に対応するCUが符号化される。CUへのCTUの分割及び(コード化ツリーの葉に対応する)各CUを符号化するために使用されるコード化パラメータは、レート歪み最適化手続きによって符号器側で決定され得る。PB及びTBへのCBの分割はなく、即ちCUは単一のPU及び単一のTUで作られる。
【0110】
以下、「ブロック」又は「ピクチャブロック」という用語はCTU、CU、PU、TU、CB、PB、及びTBの何れか1つを指すために使用され得る。加えて「ブロック」又は「ピクチャブロック」という用語は、H.264/AVC又は他のビデオコード化規格内で規定されるマクロブロック、パーティション、及びサブブロックを指すために、より広くは様々なサイズのサンプルのアレイを指すために使用され得る。
【0111】
図17に戻り、符号器100の実施形態の例では、以下に記載の通り符号器の要素によってピクチャを符号化する。符号化しようとするピクチャはCUの単位で処理される。各CUはイントラモード又はインタモードを使用して符号化される。CUをイントラモードで符号化する場合、イントラモードはイントラ予測(160)を行う。インタモードでは、動き推定(175)及び動き補償(170)を行う。符号器はCUを符号化するためにイントラモード又はインタモードのどちらを使用するのかを決定し(105)、イントラ/インタの決定を予測モードフラグによって示す。元のピクチャブロックから予測済みサンプルブロック(予測子としても知られている)を減算する(110)ことによって残差を計算する。
【0112】
イントラモードのCUは、例えば同じスライス内の再構成済み隣接サンプルから予測される。HEVCでは、DC、planar、及び33個のangular予測モードを含む35個のイントラ予測モードの組を利用することができる。インタモードのCUは、参照ピクチャバッファ(180)内に記憶される参照ピクチャの再構成済みサンプルから予測される。
【0113】
残差を変換し(125)量子化する(130)。量子化した変換係数、並びに動きベクトル及び他の構文要素をエントロピコード化して(145)ビットストリームを出力する。符号器は変換を飛ばし、又は変換及び量子化の両方をバイパスすることもでき、即ち変換プロセス又は量子化プロセスを適用することなしに残差が直接コード化される。
【0114】
エントロピコード化は、例えばコンテキスト適応型バイナリ算術コード化(CABAC)、コンテキスト適応型可変長コード化(CAVLC)、ハフマン、算術、指数ゴロム等であり得る。CABACはH.264で最初に導入され、HEVCでも使用されているエントロピコード化の方法である。CABACは二値化、コンテキストモデリング、及び二値算術コード化を含む。二値化は構文要素を二値シンボル(ビン)にマッピングする。コンテキストモデリングは、或る特定のコンテキストに基づいてそれぞれの規則的にコード化されるビン(即ち非バイパス)の確率を決定する。最後に、決定された確率に従ってバイナリ算術コード化がビンをビットに圧縮する。
【0115】
符号器は復号ループを含み、従って符号化済みブロックを復号して更なる予測のための参照を提供する。残差を復号するために量子化済み変換係数を逆量子化し(140)逆変換する(150)。復号済み残差と予測済みサンプルブロックとを結合することにより(155)、ピクチャブロックを再構成する。任意選択的に、例えばDBF(デブロッキングフィルタ)/SAO(サンプル適応オフセット)/ALF(適応ループフィルタリング)を実行してコード化のアーティファクトを減らすために、再構成済みピクチャにインループフィルタ(165)を適用する。フィルタ済みピクチャは参照ピクチャバッファ(180)内に記憶し、他のピクチャ用の参照として使用することができる。この実施形態では、フィルタにかけた再構成済みピクチャ、即ちインループフィルタの出力及びその元のバージョンから改良データを決定する(190)。第1の改変形態では、インループフィルタリングの前の再構成済みピクチャ及びその元のバージョンから改良データを決定する(190)。この第1の改変形態では、インループフィルタリングの前に改良を適用する。第2の改変形態では、部分的にフィルタにかけた、例えばデブロッキングフィルタリングの後だがSAOよりも前の再構成済みピクチャ及びその元のバージョンから改良データを決定する(190)。この第2の改変形態では、部分的フィルタリングの後に、例えば直後に、例えばデブロッキングフィルタリングの後だがSAOよりも前に改良を適用する。改良データは、色成分(例えばルマ成分Y若しくはクロマ成分Cb/Cr、又は色成分R、G、若しくはB)の個々のサンプルに適用されるR()で示す補正関数を表す。次いで改良データをビットストリーム内にエントロピコード化する。この実施形態では、改良プロセスが復号ループの外側にある。従って改良プロセスは後処理としてのみ復号器内で適用される。
【0116】
図18は、
図17のビデオ符号器100の改変形態101を示す。
図17のモジュールと同一の
図18のモジュールは同じ参照番号でラベル付けしており、更なる説明は行わない。ビデオ符号器101によって符号化する前にピクチャをマッピングすることができる(105)。かかるマッピングは、ピクチャのサンプルのコード語の値の分布をより活用するために使用することができる。
図18に示すように、概してマッピングはコア符号化の前に元の(入力)サンプルに対して適用される。通常、複雑さを制限するために静的マッピング関数、即ち全てのコンテンツに対して同じ関数を使用する。ことによると1DルックアップテーブルLUTmap[x](xは値である)によってモデリングされるマッピング関数fmap()が下記の通り入力信号xに直接適用され:
y=fmap(x)又は
y=LUTmap[x]
但しxは(例えば10ビット信号では0から1023までの)入力信号であり、yはマッピングされた信号である。
【0117】
改変形態では、或る成分に関するマッピング関数が別の成分に依存する(成分間マッピング関数)。例えばクロマ成分cは、ピクチャ内の同じ相対位置にあるルマ成分yに応じてマッピングされる。クロマ成分cは下記の通りマッピングされ:
c=offset+fmap(y)*(c-offset)又は
c=offset+LUTmap[y]*(c-offset)
但しoffsetは通常、クロマ信号の中心値(例えば10ビットのクロマ信号では512)である。このパラメータは、圧縮利得の改善をもたらし得るストリーム内にコード化される動的パラメータとすることもできる。
【0118】
マッピング関数は既定で定めることができ、又は例えば区分線形モデル、スケーリングテーブル、若しくはデルタQP(dQP)テーブルを使用してビットストリーム内でシグナリングすることができる。
【0119】
フィルタにかけた再構成済みピクチャ、即ちインループフィルタの出力を逆マッピングする(185)。逆マッピング(185)は、マッピング(105)の逆のプロセスの実装である。逆マッピング後のフィルタにかけた再構成済みピクチャ及びその元のバージョンから改良データを決定する(190)。次いで改良データをビットストリーム内にエントロピコード化する。この実施形態では、改良プロセスが復号ループの外側にある。従って改良プロセスは後処理としてのみ復号器内で適用される。
【0120】
図19は、
図17のビデオ符号器100の改変形態102を示す。
図17のモジュールと同一の
図19のモジュールは同じ参照番号でラベル付けしており、更なる説明は行わない。マッピングモジュール105は任意選択的である。フィルタにかけた再構成済みピクチャ、即ちインループフィルタの出力及びマッピングが適用されない場合はその元のバージョンから、マッピングが適用される場合はそのマッピング済みの元のバージョンから改良データを決定する(190)。次いで改良データをビットストリーム内にエントロピコード化する(145)。改良データを使用し、フィルタにかけた再構成済みピクチャも改良させる(182)。フィルタにかけた再構成済みピクチャではなく、改良させたピクチャを参照ピクチャバッファ(180)内に記憶する。この実施形態では改良プロセスがインループプロセスであり、即ち復号ループの一部である。従って、改良プロセスは符号器及び復号器の復号ループの両方で適用される。モジュール182及び190は様々な位置に挿入することができる。改良のモジュール182はインループフィルタの前に、又は少なくとも2つのインループフィルタの場合はインループフィルタの間に、例えばDBFの後且つSAOの前に挿入することができる。モジュール190は、改良モジュール182と同じピクチャ、即ちモジュール182がインループフィルタの前にある場合は再構成済みピクチャ、モジュール182がインループフィルタの間にある場合は部分的にフィルタにかけた再構成済みピクチャを入力として得るように配置される。
【0121】
図20は、特定の及び非限定的な実施形態による、ビットストリーム内にピクチャ部分を符号化するための方法の流れ図を示す。この方法はステップS100から始まる。ステップS110で、例えば符号器100、101、又は102等の送信器1000がピクチャ部分にアクセスする。
図18及び
図19にあるように、アクセスされるピクチャ部分は符号化される前に任意選択的にマッピングされ得る。ステップS120で、再構成済みピクチャ部分を得るために、アクセスされるピクチャ部分を送信器が符号化し再構成する。そのためにピクチャ部分をブロックに分割することができる。ピクチャ部分を符号化することは、ピクチャ部分のブロックを符号化することを含む。ブロックを符号化することは、ブロックから予測子を減算して残差のブロックを得ること、残差のブロックを変換係数のブロックに変換すること、量子化ステップサイズを用いて係数のブロックを量子化して量子化済みの変換係数のブロックを得ること、及び量子化済みの変換係数のブロックをビットストリーム内にエントロピコード化することを必ずではないが通常は含む。符号器側でブロックを再構成することは、量子化済みの変換係数のブロックを逆量子化し逆変換して残差のブロックを得ること、及び残差のブロックに予測子を加えて復号済みブロックを得ることを必ずではないが通常は含む。再構成済みピクチャ部分は、
図17〜
図19にあるようにインループフィルタ、例えばデブロッキング/SAO/ALFフィルタによってフィルタにかけることができ、
図18にあるように逆マッピングすることもできる。
【0122】
ステップS130で、データのコード化コスト(即ち改良データ及び改良済みピクチャ部分のコード化コスト)、及びピクチャ部分の元のバージョン、即ちことによると
図19にあるようにマッピングされるアクセスされる画像部分と、ことによると
図17及び
図19にあるようにフィルタにかけられ又は
図18にあるように逆マッピングされ改良される再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストが低減され又は最小化されるように改良データを例えばモジュール190によって決定する。より正確には、改良データは:
− マッピングなしの
図17及び
図19にあるようにコード化の前にマッピングが適用されない場合、データのコード化コスト(即ち改良データ及び改良済みピクチャ部分のコード化コスト)及び前述のピクチャ部分の元のバージョンと前述の改良データによる改良後の前述の再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストが、データのコード化コスト(即ち改良なしのピクチャ部分のコード化コスト)及び前述のピクチャ部分の前述の元のバージョンと改良なしの前述の再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストと比較して減少するように決定され、
−
図18(マッピングあり、ループ外の改良)にあるようにコード化の前にマッピングが適用され、前述の改良が復号ループの外側にある場合、データのコード化コスト(改良データ及び改良済みピクチャ部分のコード化コスト)及び前述のピクチャ部分の元のバージョンと逆マッピング及び前述の改良データによる改良後の前述の再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストが、データのコード化コスト及び前述のピクチャ部分の前述の元のバージョンと改良なしの逆マッピング後の前述の再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストと比較して減少するように決定され、
− マッピングありの
図19にあるようにコード化の前にマッピングが適用され、前述の改良が復号ループの内側にある場合、データのコード化コスト及び前述のピクチャ部分のマッピングされた元のバージョンと前述の改良データによる改良後の前述の再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストが、データのコード化コスト及び前述のピクチャ部分の前述のマッピングされた元のバージョンと改良なしの前述の再構成済みピクチャ部分との間の歪みの加重和として計算されるレート歪みコストと比較して減少するように決定される。改良データを決定するために使用する再構成済みピクチャ部分は、再構成済みピクチャ部分のインループフィルタリング済みバージョン又はインループ部分フィルタリング済みバージョンとすることができる。
【0123】
特定の及び非限定的な実施形態では、Rで示す改良データが有利にはN個の対(R_idx[k], R_val[k])、k=0からN-1によって定められる区分線形モデル(PWL)によってモデリングされる。各対はPWLモデルのピボットポイントを定める。ステップS130は、
図21〜
図26で詳述する。R_idx[k]は、典型的には検討する信号の範囲内の、例えば10ビット信号では0から1023までの範囲内の値である。有利にはR_idx[k]はR_idx[k-1]よりも大きい。
【0124】
ステップS140で、改良データをビットストリーム又は信号内に符号化する。以下、構文の実施形態の非限定的な例を示す。この例は3つの成分を改良させることを検討する。改変形態では、成分の一部だけの(例えば2つのクロマ成分だけの)構文をコード化し適用することができる。改良データは改良テーブルの形で符号化される。
【0126】
refinement_table_new_flagが0に等しい場合、又はrefinement_table_flag_lumaが0に等しい場合、ルマに改良を適用しない。
【0127】
さもなければ、0から(refinement_table_luma_size-1)までの全てのptについて、ルマ改良値(R_idx[pt], R_val[pt])を以下のように計算する:
・ R_idx[pt]は(default_idx[pt]+refinement_luma_idx[pt])に等しく設定する
・ R_val[pt]は(NeutralVal+refinement_luma_value[pt])に等しく設定する
【0128】
同様のプロセスをcb成分又はcr成分に適用する。
【0129】
例えばNeutralVal=128。これは
図21及び
図24で詳述するように、ステップS130でR_valの値を初期化するために使用することができる。NeutralVal及びdefault_idx[pt]は符号器側及び復号器側の両方で知られている既定値とすることができ、その場合これらの値を伝送する必要はない。改変形態では、NeutralVal及びdefault_idx[pt]はビットストリーム又は信号内に符号化される値であり得る。
【0130】
好ましくは、0から(refinement_table_luma_size-1)までのptのdefault_idx[pt]は、
default_idx[pt]=(MaxVal/(refinement_table_luma_size-1))*pt
又は
default_idx[pt]=((MaxVal+1)/(refinement_table_luma_size-1))*pt
として定められ、これは0からMaxVal又は(Max+1)までの等距離インデックスに対応し、MaxValは信号の最大値(例えば信号を10ビットで表す場合は1023)である。
【0131】
改変形態では、マッピングが適用され、(map_idx[k], map_val[k])の対によって定められるPWLマッピングテーブルに基づく場合、k=0からN-1のR_idx[k]をmap_idx[k]によって初期化する。換言すれば、default_idx[k]はmap_idx[k]に等しい。同様に別の改変形態では、k=0からN-1のR_val[k]を、k=0からN-1のmap_val[k]によって初期化することができる。
【0132】
構文要素refinement_table_luma_size、refinement_table_cb_size、refinement_table_cr_sizeは既定で定めることができ、その場合これらをストリーム内にコード化する必要はない。
【0133】
ルマPWLモデルの等距離ポイントの場合、refinement_luma_idx[pt]をコード化する必要はない。0から(refinement_table_luma_size-1)までのptについてR_idx[pt]=default_idx[pt]となるように、refinement_luma_idx[pt]を0に設定する。同じことがcbテーブル又はcrテーブルに当てはまる。
【0134】
改変形態では、(成分内(モード1)及び又は成分間(モード2)の間の)どの改良モードを使用するのかを示すために構文要素をテーブルごとに追加することができる。構文要素はSPS、PPS、スライス、タイル、又はCTUのレベルでシグナリングすることができる。
【0135】
改変形態では、テーブルを乗法演算子として適用するのか、又は加法演算子として適用するのかを示すために構文要素をテーブルごとに追加することができる。構文要素はSPS、PPS、スライス、タイル、又はCTUのレベルでシグナリングすることができる。
【0136】
一実施形態では、ビットストリーム又は信号内に改良テーブルをコード化しない。代わりに、(
図18及び
図19のマッピング105によって使用されるマッピングテーブルの逆に対応する)既定の逆マッピングテーブルを改良テーブルによって修正し、修正した逆マッピングテーブルをビットストリーム又は信号内にコード化する。
【0137】
一実施形態では、低い時間的レベルのピクチャについてのみ改良テーブルをコード化する。例えば時間的レベルが0(時間的コード化階層の最も低いレベル)のピクチャについてのみテーブルをコード化する。
【0138】
一実施形態では、イントラピクチャ等のランダムアクセスピクチャについてのみ改良テーブルをコード化する。
【0139】
一実施形態では、所与の値を下回るピクチャ上の平均QPに対応する高品質のピクチャについてのみ改良テーブルをコード化する。
【0140】
一実施形態では、フルピクチャのコード化コストに対する改良テーブルのコード化コストが所与の値を下回る場合にのみ改良テーブルをコード化する。
【0141】
一実施形態では、改良テーブルをコード化しないことと比較したレート歪み利得が所与の値を上回る場合にのみ改良テーブルをコード化する。例えば以下の規則が当てはまり得る:
・ レート歪みコストの利得が(0.01*width*height)を上回り、width及びheightが検討する成分の寸法である場合、テーブルをコード化する。
・ レート歪みコストの利得が(0.0025*initRD)を上回り、initRDが成分の改良を適用しないときのレート歪みコストである場合、テーブルをコード化する。レート歪みコストが二乗誤差歪みに基づくとき、これは0.01dBの最小PSNR利得におおよそ相当する。所与の値が(0.01*initRD)に設定される場合、レート歪みコストが二乗誤差歪みに基づくとき、これは0.05dBの最小PSNR利得におおよそ相当する。記載した値は例に過ぎず、修正することができる。
【0142】
図20に戻り、任意選択的なステップS150で、ことによると
図19にあるようにフィルタにかけられる再構成済みピクチャ部分に改良データを適用する。そのために、pt=0からN-1のPWLのポイントの対(R_idx[pt], R_val[pt])からルックアップテーブルLutRを決定する。例えばLutRは、PWLのポイントの各対(R_idx[pt], R_val[pt])と(R_idx[pt+1], R_val[pt+1])との間の線形補間によって以下のように決定する:
pt=0からN-2
idx=R_idx[pt]から(R_idx[pt+1]-1)では、
LutR[idx]=R_val[pt]+(R_val[pt+1]-R_val[pt])*(idx-R_idx[pt])/(R_idx[pt+1]-R_idx[pt])
【0143】
改変形態ではLutRを以下のように決定する:
pt=0からN-2
idx=R_idx[pt]から(R_idx[pt+1]-1)では、
LutR[idx]=(R_val[pt]+R_val[pt+1])/2
改良モードの2つの例は以下の通りである:
・ モード1−成分内改良。モード1では改良を他の成分と独立に行う。信号Srec(p)は以下のように改良させる:
Sout(p)=LutR[Srec(p)]/NeutralVal*Srec(p)
但しSrec(p)はピクチャ部分内の位置pにある改良させる再構成済み信号であり、インループフィルタから生じる又はことによると逆マッピングから生じる信号に相当し、Sout(p)は改良済み信号である。ここでは信号Srec及びSoutが同じビット深度を使用すると考える。両方の信号に異なるビット深度(つまりSoutにBout、SrecにBrec)を使用する場合、ビット深度の差異に関係するスケーリング因子を適用することができる。例えばSoutのビット深度BoutがSrecのビット深度Brecよりも高い場合は以下のように公式を適応する:
Sout(p)=2
(Bout-Brec)*LutR[Srec(p)]/NeutralVal*Srec(p)
スケーリング因子はLutRの値に直接統合することができる。例えばSoutのビット深度BoutがSrecのビット深度Brecよりも低い場合は以下のように公式を適応する:
Sout(p)=LutR[Srec(p)]/NeutralVal*Srec(p)/2
(Brec-Bout)
スケーリング因子はLutRの値に直接統合することができる。
有利には、モード1はルマ成分に使用される。
・ モード2−成分間改良。モード2では改良が或る成分C0に対して行われ、別の成分C1に依存する。信号Srec_C0(p)は以下のように改良される:
Sout(p)=offset+LutR[Srec_C1(p)]/NeutralVal*(Srec_C0(p)-offset)
但しoffsetは例えば(MaxVal/2)に設定され、Srec_C0(p)は改良させる成分C0の再構成済み信号であり、pはピクチャ部分内のサンプル位置である。MaxValは信号Srec_C0の最大値であり、(2
B-1)として計算され、Bは信号のビット深度である。Srec_C1(p)は、成分C1の再構成済み信号である。Srec_C1(p)はインループフィルタから、又は逆マッピングから生じる信号であり得る。インループフィルタによってフィルタにかけた後、Srec_C1(p)は例えば低域フィルタを用いて更にフィルタにかけることもできる。ここでは信号Srec_C0、Srec_C1、及びSoutが同じビット深度を使用すると考える。有利には、モード2はクロマ成分に適用することができ、ルマ成分に依存する。Soutのビット深度BoutがSrec_C0及びSrec_C1のビット深度Brecよりも高い場合は以下のように公式を適応する:
Sout(p)=2
(Bout-Brec)*(offset+LutR[Srec_C1(p)]/NeutralVal*(Srec_C0(p)-offset))
Soutのビット深度BoutがSrec_C0及びSrec_C1のビット深度Brecよりも低い場合は以下のように公式を適応する:
Sout(p)=(offset+LutR[Srec_C1(p)]/NeutralVal*(Srec_C0(p)-offset))/2
(Bout-Brec)
最小信号値と最大信号値と(典型的には10ビット信号では0と1023と)の間の丸め及びクリッピングを最後に改良済みの値Sout(p)に適用する。
【0144】
上記の実施形態では改良を乗法演算子として適用する。改変形態では改良を加法演算子として適用する。この場合、モード1では信号Srec(p)を以下のように改良させる:
〇 Sout(p)=LutR[Srec(p)]/NeutralVal+Srec(p)
この場合、モード2では信号Srec_C0(p)を以下のように改良させる:
〇 Sout(p)=LutR[Srec_C1(p)]/NeutralVal+Srec_C0(p)
【0145】
クロマ成分Cb及びCrに関して、NeutralVal=64及びN=17の成分間改良テーブルの値の一例を以下に示す:
【0148】
図20に戻り、この方法はステップS160で終わる。
【0149】
図21は、ステップS130に関する更なる詳細の一例を説明する流れ図を示す。所与のピクチャ領域A、例えばスライス、タイル、若しくはCTU上で又は全ピクチャ上で改良データを決定することができる。改良データRは、有利にはN個の対(R_idx[k], R_val[k])、k=0からN-1によって定められる区分線形モデル(PWL)によってモデリングされ得る。N=6(k∈{0,1,2,3,5})であるPWLモデルの一例を
図22に示す。各対はPWLモデルのピボットポイントを定める。
【0150】
R_idx及びR_valの値を初期化する(ステップS1300)。典型的には、k=0からN-1についてR_idx[k]を初期化し、それにより連続したインデックス間に等距離間隔、つまり(R_idx[k+1]-R_idx[k])=Dがあり、D=Range/(N-1)であり、Rangeは改良させる信号の範囲(例えば10ビットで表される信号では1024)である。一例ではN=17又は33である。改良が信号を変えないように定められるNeutralValの値、例えば128でR_valの値を初期化する。改変形態では、マッピングが適用され、(map_idx[k], map_val[k])の対によって定められるPWLマッピングテーブルに基づく場合、k=0からN-1の(R_idx[k], R_val[k])を(map_idx[k], map_val[k])によって初期化する。
【0151】
図21の実施形態では、R_val[k]の値だけを決定する。R_idx[k]の値はその初期値に固定される。S1300で初期化したRを使用し、最初のレート歪みコストinitRDを計算する(ステップ1301)。最初のレート歪みコストinitRDは以下のように計算し:
initRD=L*Cost(R)+Σ
p in A dist(Sin(p), Sout(p)) (等式1)
但し
− RはS1300で初期化した改良データであり、
− Aは改良を行うピクチャ領域であり、
− Sin(p)は以下のように、つまり
マッピングが適用されない場合、Sin(p)は元のピクチャ領域内のピクセルpのサンプル値であり、
マッピングが適用され、改良がループの外側にある場合(
図18)、Sin(p)は元のピクチャ領域内のピクセルpのサンプル値であり、
マッピングが適用され、改良がループ内にある場合(
図19)、Sin(p)はマッピングされた元のピクチャ領域内のピクセルpのサンプル値である
ように定め、
− Sout(p)は改良済みピクチャ領域内のピクセルpのサンプル値であり、
− dist(x,y)は、サンプル値xとサンプル値yとの間の歪みであり、例えば歪みは二乗誤差(x-y)
2であり、他のあり得る歪み関数は絶対差|x-y|、又はSSIM等の主観重視のメトリクに基づく歪み(Z. Wang, A. C. Bovik, H. R. Sheikh and E. P. Simoncelli,“Image quality assessment: From error visibility to structural similarity,”IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, April 2004)であり、又はSSIMの改変形態を使用することもでき、
− Cost(R)は、改良データR及び改良済みピクチャ領域をコード化するためのコード化コストであり、
− Lはピクチャ領域Aに関連する値である。Lは有利には2
(QP/6)に線形依存し、QPはピクチャ領域A内で単一の量子化パラメータ値が使用される場合は量子化パラメータであり、又はピクチャ領域A内で様々な量子化パラメータ値が使用される場合、QPはピクチャ領域Aに適用される量子化パラメータを表す。例えばQPは領域Aのブロック内で使用されるQPの平均である。
R_valの値がNeutralValの値で初期化される場合、最初のレート歪みコストinitRDは、改良データのコード化コストなしにピクチャ領域のコード化コストを用いて計算することができる。
【0152】
ステップS1302で、パラメータbestRDをinitRDに初期化する。次にステップS1303で、改良データRを決定する。ステップS1304において、PWLモデルの連続したピボットポイントRのインデックスptに関するループを実行する。ステップS1305で、パラメータbestVal及びinitValをR_val[pt]に初期化する。ステップS1306で、R_val[pt]の様々な値、つまり(initVal-Val0)の値から(initVal+Val1)までの値に関するループを実行し、Val0及びVal1は既定のパラメータである。典型的な値はVal0=Val1=NeutralVal/4。ステップS1307で、現在のRと共に(現在のR_val[pt]と共に)等式1を使用してレート歪みコストcurRDを計算する。ステップS1308で、curRDとbestRDとを比較する。curRDがbestRDよりも低い場合、bestRDをcurRDに設定し、bestValueをR_val[pt]に設定する。さもなければこの方法はステップS1310に続く。ステップS1310で、R_val[pt]の値に関するループが終了したかどうかを確認する。ループが終了している場合、ステップS1311でR_val[pt]をbestValueに設定する。ステップS1312で、ptの値に関するループが終了したかどうかを確認する。ループが終了している場合、出力する改良データは現在のRである。
【0153】
ステップS1303はn回繰り返すことができ、nはその値が固定された整数、例えばn=3である。
図23はR_valの決定を示す。破線はR_valを更新した後のPWLを表す。
【0154】
図24は、
図21のプロセスの改変形態を示す。
図24の実施形態では、R_idx[k]の値だけを決定する。R_val[k]の値はその初期値に固定される。このプロセスは(例えば
図21の方法から生じる)最初のR_idx及びR_valのデータを入力として使用する。ステップS1401で、(等式1)を使用して最初のレート歪みコストinitRDを計算する。次にステップS1402で、パラメータbestRDをinitRDに初期化する。ステップS1403で、改良データRを決定する。ステップS1404において、PWLモデルの連続したピボットポイントRのインデックスptに関するループを実行する。ステップS1405で、パラメータbestIdx及びinitIdxをR_idx[pt]に初期化する。ステップS1406で、R_idx[pt]の(initIdx-idxVal0からinitIdx+idxVal1までの)様々な値に関するループを実行し、idxVal0及びidxVal1は規定値、例えばidxVal0=idxVal1=D/4であり、D=Range/(N-1)であり、Rangeは改良させる信号の範囲(例えば10ビットで表される信号では1024)である。ステップS1407で、現在のRと共に(現在のR_idx[pt]と共に)等式1を使用してレート歪みコストcurRDを計算する。ステップS1408で、curRDとbestRDとを比較する。curRDがbestRDよりも低い場合、bestRDをcurRDに設定し、bestIdxをR_idx[pt]に設定する。さもなければこの方法はステップS1310に続く。ステップS1410で、R_idx[pt]の値に関するループが終了したかどうかを確認する。ループが終了している場合、ステップS1411でR_idx[pt]をbestIdxに設定する。ステップS1412で、ptの値に関するループが終了したかどうかを確認する。ループが終了している場合、出力する改良データは現在のRである。ステップS1403はn回繰り返すことができ、nはその値が固定された整数、例えばn=3である。
【0155】
図25はR_idxの決定を示す。破線はR_idxを更新した後のPWLを表す。
【0156】
図26はR_idx及びR_valの両方の決定を示す。破線はR_val及びR_idxを更新した後のPWLを表す。
【0157】
図27は、特定の及び非限定的な実施形態による、復号済みピクチャを得るためにビットストリーム又は信号からピクチャを復号するように構成される受信機2000のアーキテクチャの一例を示す。受信機2000は、内蔵メモリ2030(例えばRAM、ROM、及び/又はEPROM)と共に、例えばCPU、GPU、及び/又はDSP(デジタル信号プロセッサの英語の頭字語)を含み得る1つ又は複数のプロセッサ2005を含む。受信機2000は、出力情報を表示するように及び/又はユーザがコマンド及び/又はデータ(例えば復号済みピクチャ)を入力することを可能にするようにそれぞれ適合される1つ又は複数の通信インタフェース2010(例えばキーボード、マウス、タッチパッド、ウェブカメラ)と、受信機2000の外部にあり得る電源2020とを含む。受信機2000は、1つ又は複数のネットワークインタフェース(不図示)も含み得る。復号器モジュール2040は、復号機能を実行するために装置内に含まれ得るモジュールを表す。加えて、復号器モジュール2040は受信機2000の別個の要素として実装することができ、又は当業者に知られているようにハードウェアとソフトウェアとの組み合わせとしてプロセッサ2005内に組み込まれてもよい。
【0158】
ビットストリーム又は信号はソースから得ることができる。異なる実施形態によれば、ソースはこれだけに限定されないが、
− ローカルメモリ、例えばビデオメモリ、RAM、フラッシュメモリ、ハードディスク、
− 記憶域インタフェース、例えば大容量記憶域、ROM、光ディスク、又は磁気支持とのインタフェース、
− 通信インタフェース、例えば有線インタフェース(例えばバスインタフェース、広域ネットワークインタフェース、ローカルエリアネットワークインタフェース)、又は無線インタフェース(IEEE 802.11インタフェース又はBluetoothインタフェース等)、及び
− 画像捕捉回路(例えばCCD(即ち電荷結合素子)又はCMOS(即ち相補型金属酸化膜半導体)等のセンサ)
であり得る。
【0159】
異なる実施形態によれば、復号済みピクチャは宛先、例えばディスプレイ装置に送信することができる。一例として、復号済みピクチャはリモートメモリ又はローカルメモリ、例えばビデオメモリ、又はRAM、ハードディスク内に記憶される。改変形態では、復号済みピクチャが記憶域インタフェース、例えば大容量記憶域、ROM、フラッシュメモリ、光ディスク、又は磁気支持とのインタフェースに送信され、及び/又は通信インタフェース、例えば二地点間リンク、通信バス、一地点対多地点間リンク、又はブロードキャストネットワークへのインタフェース上で伝送される。
【0160】
特定の及び非限定的な実施形態によれば、受信機2000がメモリ2030内に記憶されるコンピュータプログラムを更に含む。コンピュータプログラムは、受信機2000によって、具体的にはプロセッサ2005によって実行されるときに
図31に関して記載する復号方法を受信機が実行することを可能にする命令を含む。改変形態によれば、コンピュータプログラムが非一時的デジタルデータ支持上で、例えば全て当技術分野で知られているHDD、CD−ROM、DVD、読取専用及び/又はDVDドライブ、及び/又はDVDリード/ライトドライブ等の外部記憶媒体上で受信機2000の外部に記憶される。従って受信機2000はコンピュータプログラムを読み出すための機構を含む。更に受信機2000は、対応するユニバーサルシリアルバス(USB)ポート(不図示)経由で1つ又は複数のUSB型記憶装置(例えば「メモリスティック」)にアクセスすることができる。
【0161】
実施形態の1つ又は複数の非限定的な例によれば、受信機2000はこれだけに限定されないが、
− モバイル装置、
− 通信装置、
− ゲーム機、
− セットトップボックス、
− TVセット、
− タブレット(又はタブレットコンピュータ)、
− ラップトップ、
− ビデオプレーヤ、例えばBlu-rayプレーヤ、DVDプレーヤ、
− ディスプレイ、及び
− 復号チップ又は復号装置/機器
であり得る。
【0162】
図28は、
図31の復号方法を実行するように適合される、例えばHEVC型のビデオ復号器200の実施形態の一例のブロック図を示す。ビデオ復号器200は、受信機2000又はかかる受信機2000の一部の一例である。復号器200の実施形態の図示の例では、以下で説明するようにビットストリーム又は信号が復号器の要素によって復号される。ビデオ復号器200は、ビデオデータを符号化する一環としてビデオの復号を行う
図17に記載した符号化パスと逆の復号パスを概して実行する。
【0163】
具体的には、復号器の入力はビデオ符号器100によって生成され得るビデオビットストリーム又は信号を含む。変換係数、動きベクトル、及び他のコード化情報、例えば改良データを得るためにビットストリーム又は信号を最初にエントロピ復号する(230)。残差を復号するために変換係数を逆量子化し(240)逆変換する(250)。復号した残差を予測済みブロック(予測子としても知られている)と結合して(255)復号済み/再構成済みピクチャブロックを得る。予測済みブロックはイントラ予測(260)又は動き補償予測(即ちインタ予測)(275)から得ることができる(270)。上記のように、参照ブロックのサブ整数サンプルのための補間値を計算するために補間フィルタを使用し得る動き補償の間、AMVP及びマージモード技法を使用することができる。再構成済みピクチャにインループフィルタ(265)を適用する。インループフィルタは、デブロッキングフィルタ及びSAOフィルタを含み得る。フィルタ済みピクチャを参照ピクチャバッファ(280)に記憶する。ことによるとフィルタにかけられる再構成済みピクチャを改良させる(290)。改良は復号ループの外側にあり、後処理プロセスとして適用される。
【0164】
図29は、
図28のビデオ復号器200の改変形態201を示す。
図28のモジュールと同一の
図29のモジュールは同じ参照番号でラベル付けしており、更なる説明は行わない。フィルタにかけた再構成済みピクチャ、即ちインループフィルタの出力を逆マッピングする(285)。逆マッピング(285)は、符号器側で適用したマッピング(105)の逆のプロセスである。逆マッピングは、ビットストリーム又は信号から復号される逆マッピングテーブル、又は既定の逆マッピングテーブルを使用することができる。ビットストリーム又は信号から復号(230)した改良データを使用し、逆マッピング済みピクチャを改良させる(290)。
【0165】
改変形態では、ビットストリーム又は信号から復号される逆マッピングテーブルを使用して逆マッピングを適用する単一のモジュールに逆マッピング及び改良をマージし、改良データを考慮に入れるために逆マッピングテーブルは符号器内で修正される。改変形態では、処理されている所与の成分について、逆マッピング及び改良プロセスを実行するためにルックアップテーブルLutCombを適用し、このルックアップテーブルは、マッピングテーブルから導出されるルックアップテーブルLutInvMap及び改良テーブルLutRから導出されるルックアップテーブルの連結として構築される:
LutComb[x]=LutR[LutInvMap[x]]、x=0からMaxVal
この実施形態では改良プロセスが復号ループの外側にある。従って、改良プロセスは後処理としてのみ復号器内で適用される。
【0166】
図30は、
図28のビデオ復号器200の改変形態202を示す。
図28のモジュールと同一の
図30のモジュールは同じ参照番号でラベル付けしており、更なる説明は行わない。ビットストリーム又は信号から改良データを復号する(230)。復号した改良データを使用し、フィルタにかけた再構成済みピクチャを改良させる(290)。フィルタにかけた再構成済みピクチャではなく、改良させたピクチャを参照ピクチャバッファ(280)内に記憶する。モジュール290は様々な位置に挿入することができる。改良のモジュール290はインループフィルタの前に、又は少なくとも2つのインループフィルタの場合はインループフィルタの間に、例えばDBFの後且つSAOの前に挿入することができる。改良させたピクチャは、任意選択的に逆マッピングすることができる(285)。この実施形態では、改良プロセスが復号ループの中にある。
【0167】
図31は、特定の及び非限定的な実施形態による、ビットストリーム又は信号からピクチャを復号するための方法の流れ図を示す。この方法はステップS200から始まる。ステップS210で、復号器200等の受信機2000がビットストリーム又は信号にアクセスする。ステップS220で、受信機がビットストリーム又は信号からピクチャ部分を復号して復号済みピクチャ部分を得る。そのためにピクチャ部分のブロックを復号する。ブロックを復号することは、ブロックを表すビットストリーム又は信号の部分をエントロピ復号して変換係数のブロックを得ること、変換係数のブロックを逆量子化し逆変換して残差のブロックを得ること、及び残差のブロックに予測子を加えて復号済みブロックを得ることを必ずではないが通常は含む。次いで、復号済みピクチャ部分を
図28〜
図30にあるようにインループフィルタによってフィルタにかけ、
図29にあるように逆マッピングすることもできる。ステップS230で、ビットストリーム又は信号から改良データを復号する。このステップは符号化ステップS140の逆である。ステップS140に関して記載した全ての改変形態及び実施形態はステップS230に当てはまる。ステップS240で、復号済みピクチャを改良させる。このステップは符号器側の改良ステップS150と同一である。
【0168】
実施形態の別の例を
図32に示し、この実施形態は改良モードの機能を提供することを含むビデオデータを符号化するための方法である。
図32では、デジタルビデオ信号又はビットストリーム内に含まれるデータ等のビデオデータを3210で処理して、本明細書に記載のブロックごとの改良モードを使用して、及び改良モード以外のモード、例えば改良なしを使用してピクチャ部分等のビデオデータを符号化することに関連するコストを識別得る。次いで3220で、そのコストに基づいてビデオデータを符号化する。例えば、改良ありモードを用いて符号化すること及び改良なしモードを用いて符号化することの両方についてレート歪みコスト等のコストを得ることができる。改良モードを使用することが符号化の改善を示すレート歪みコストをもたらす場合、改良モードを使用して符号化を行うことができる。改良モードの複雑さを加えることを正当化しない限られた改善の改善がないことを示すレート歪みコストは、改良モードを使用しないこと又は異なるモードを使用することをもたらし得る。コストを得るために及びビデオデータを符号化するためにビデオデータを処理することは、例えば本明細書に記載の1つ又は複数の実施形態に関して上記で説明したように行うことができる。符号化済みビデオデータが3220から出力される。
【0169】
図33は、ビデオデータを復号するための方法の実施形態の一例を示す。符号化済みビデオデータ、例えばデジタルデータ信号又はビットストリームを3310で処理して、本明細書に記載の1つ又は複数の実施形態によるビデオデータの符号化中の改良モード、例えばブロックごとの改良モードの使用の指示を得る。次いで3320で、この指示に基づいて符号化済みピクチャ部分等の符号化済みビデオデータを復号する(例えば改良モードが符号化中に使用されていることに基づく本明細書に記載の復号)。コストを得るために及びビデオデータを符号化するためにビデオデータを処理することは、例えば本明細書に記載の1つ又は複数の実施形態に関して上記で説明したように行うことができる。復号済みビデオデータが3320から出力される。
【0170】
本開示の全体を通して、様々な実装形態が復号することを含む。本願で使用するとき、「復号する」は、例えば表示に適した最終出力を生じるために受信済みの符号化シーケンスに対して実行されるプロセスの全て又は一部を包含し得る。様々な実施形態において、かかるプロセスは復号器によって典型的に行われるプロセス、例えばエントロピ復号、逆量子化、逆変換、及び差分復号の1つ又は複数を含む。様々な実施形態において、かかるプロセスは本願に記載の様々な実装形態の復号器によって行われるプロセス、例えばタイル(パック)ピクチャからピクチャを抽出すること、使用するアップサンプルフィルタを決定してピクチャをアップサンプルすること、及びピクチャをその所期の向きにフリップバックすることを更に又は代わりに含む。
【0171】
更なる例として、或る実施形態では「復号」がエントロピ復号だけを指し、別の実施形態では「復号」が差分復号だけを指し、別の実施形態では「復号」がエントロピ復号と差分復号との組み合わせを指す。「復号プロセス」という語句が操作のサブセットを具体的に指すことを意図するのか、又はより広範な復号プロセスを概して指すことを意図するのかは具体的な説明の脈絡に基づいて明らかになり、当業者によって十分理解されると考える。
【0172】
更に、様々な実装形態は符号化することを含む。「復号」に関する上記の解説と同様に、本願で使用するとき「符号化する」は、例えば符号化済みビットストリーム又は信号を生じるために入力ビデオシーケンスに対して実行されるプロセスの全て又は一部を包含し得る。様々な実施形態において、かかるプロセスは符号器によって典型的に行われるプロセス、例えば分割、差分符号化、変換、量子化、及びエントロピ符号化の1つ又は複数を含む。様々な実施形態において、かかるプロセスは本願に記載の様々な実装形態の符号器によって行われるプロセスを更に又は代わりに含む。
【0173】
更なる例として、或る実施形態では「符号化」がエントロピ符号化だけを指し、別の実施形態では「符号化」が差分符号化だけを指し、別の実施形態では「符号化」が差分符号化とエントロピ符号化との組み合わせを指す。「符号化プロセス」という語句が操作のサブセットを具体的に指すことを意図するのか、又はより広範な符号化プロセスを概して指すことを意図するのかは具体的な説明の脈絡に基づいて明らかになり、当業者によって十分理解されると考える。
【0174】
本明細書で使用する構文要素は記述用語であることに留意されたい。そのため、それらは他の構文要素名の使用を排除しない。
【0175】
図面が流れ図として示されている場合、その図面は対応する機器のブロック図も提供することを理解すべきである。同様に図面がブロック図として示されている場合、その図面は対応する方法/プロセスの流れ図も提供することを理解すべきである。
【0176】
様々な実施形態はレート歪み最適化に言及する。具体的には符号化プロセスの間、多くの場合計算の複雑さの制約を所与としてレートと歪みとの間のバランス又はトレードオフが通常検討される。レート歪み最適化は通常、レート及び歪みの加重和であるレート歪み関数を最小化するものとして公式化される。レート歪み最適化問題を解く様々な手法がある。例えばそれらの手法は、コード化のコスト並びにコード化及び復号後の再構成済み信号の関係する歪みを完全に評価することを伴い、検討される全てのモード又はコード化パラメータ値を含む符号化の全ての選択肢を広く試験することに基づき得る。とりわけ再構成されるものではなく、予測又は予測残差信号に基づいておおよその歪みを計算することにより、より高速の手法を使用して符号化の複雑さを省くこともできる。符号化のあり得る選択肢の一部にだけおおよその歪みを使用し、符号化の他の選択肢には完全な歪みを使用すること等により、これらの2つの手法の混合を使用することもできる。他の手法は、符号化のあり得る選択肢のサブセットだけを評価する。より全般的に、多くの手法は最適化を行うための様々な技法の何れかを使用するが、最適化は必ずしもコード化のコスト及び関係する歪みの両方の完全な評価ではない。
【0177】
本明細書に記載した実装形態及び態様は、例えば方法若しくはプロセス、機器、ソフトウェアプログラム、データストリーム、又は信号によって実装することができる。単一形式の実装形態の脈絡でしか論じられていなくても(例えば方法としてしか論じられていなくても)、論じられた特徴の実装形態は他の形(例えば機器又はプログラム)でも実装することができる。機器は例えば適切なハードウェア、ソフトウェア、及びファームウェアによって実装することができる。方法は例えばプロセッサによって実装することができ、プロセッサは例えばコンピュータ、マイクロプロセッサ、集積回路、又はプログラム可能論理装置を含む処理装置全般を指す。プロセッサは、例えばコンピュータ、携帯電話、ポータブル/携帯情報端末(「PDA」)、及びエンドユーザ間の情報の通信を助ける他の装置等の通信装置も含む。
【0178】
「一実施形態」、又は「或る実施形態」、又は「一実装形態」、又は「或る実装形態」並びにそれらの他の異体に言及することは、実施形態に関連して記載される特定の特徴、構造、特性等が少なくとも1つの実施形態に含まれることを意味する。従って、本明細書の全体を通して様々な箇所に登場する「一実施形態では」、又は「或る実施形態では」、又は「一実装形態では」、又は「或る実装形態では」という語句並びに他の任意の異体の登場は必ずしも全て同じ実施形態を指すものではない。
【0179】
加えて、本明細書は様々な情報片を「得ること」に言及する場合がある。情報を得ることは、例えば情報を決定すること、情報を推定すること、情報を計算すること、情報を予測すること、又は情報をメモリから取り出すことの1つ又は複数を含み得る。
【0180】
更に本明細書は、様々な情報片に「アクセスすること」に言及する場合がある。情報にアクセスすることは、例えば情報を受信すること、情報を(例えばメモリから)取り出すこと、情報を記憶すること、情報を移動すること、情報を複製すること、情報を計算すること、情報を決定すること、情報を予測すること、又は情報を推定することの1つ又は複数を含み得る。
【0181】
加えて本明細書は、様々な情報片を「受信すること」に言及する場合がある。受信することは「アクセスすること」と同様に広義語であることを意図する。情報を受信することは、例えば情報にアクセスすること、又は情報を(例えばメモリから)取り出すことの1つ又は複数を含み得る。更に、「受信すること」は典型的には例えば情報を記憶する操作、情報を処理する操作、情報を伝送する操作、情報を移動する操作、情報を複製する操作、情報を消去する操作、情報を計算する操作、情報を決定する操作、情報を予測する操作、又は情報を推定する操作等の操作中に何らかの形で関与する。
【0182】
例えば「A/B」、「A及び/又はB」、並びに「A及びBの少なくとも1つ」の場合に「/」、「及び/又は」、並びに「〜の少なくとも1つ」の何れかを使用することは、最初に挙げられる(A)の選択肢だけを選択すること、又は2番目に挙げられる(B)の選択肢だけを選択すること、又は(A及びB)の両方の選択肢を選択することを包含することを意図する。更なる例として、「A、B、及び/又はC」並びに「A、B、及びCの少なくとも1つ」の場合、かかる表現法は最初に挙げられる(A)の選択肢だけを選択すること、又は2番目に挙げられる(B)の選択肢だけを選択すること、又は3番目に挙げられる(C)の選択肢だけを選択すること、又は最初に挙げられる選択肢及び2番目に挙げられる選択肢(A及びB)だけを選択すること、又は最初に挙げられる選択肢及び3番目に挙げられる選択肢(A及びC)だけを選択すること、又は2番目に挙げられる選択肢及び3番目に挙げられる選択肢(B及びC)だけを選択すること、又は3つ全ての選択肢(A及びB及びC)を選択することを包含することを意図する。当業者に明らかであるように、この表現法は挙げられているアイテムの数だけ拡張することができる。
【0183】
更に本明細書で使用するとき、「シグナリング」という用語は、とりわけ対応する復号器に何かを示すことを指す。例えば特定の実施形態では、符号器が複数のパラメータのうちの特定のものを改良させるためにシグナリングする。このようにして、一実施形態では符号器側及び復号器側の両方において同じパラメータが使用される。従って、例えば符号器は特定のパラメータを復号器に伝送することができ(明確なシグナリング)、それにより復号器は同じ特定のパラメータを使用することができる。逆に、復号器が他のパラメータと共にその特定のパラメータを既に有する場合、単にその特定のパラメータを復号器が知り、選択できるようにするためにシグナリングを伝送なしに使用することができる(暗黙のシグナリング)。任意の実際の機能を伝送することを回避することにより、様々な実施形態においてビットの節約が実現される。シグナリングは様々なやり方で実現できることを理解すべきである。例えば様々な実施形態において対応する復号器に情報をシグナリングするために、1つ又は複数の構文要素、フラグ等が使用される。上記の内容は「signal」という単語の動詞の形態に関するが、「signal」という単語は本明細書では名詞としても使用することができる。
【0184】
当業者に明白であるように、実装形態は、例えば記憶され又は伝送され得る情報を運ぶようにフォーマットされる様々な信号を生じることができる。情報は例えば方法を実行するための命令、又は記載した実装形態の1つによって生み出されるデータを含み得る。例えば信号は、記載した実施形態のビットストリーム又は信号を運ぶようにフォーマットされ得る。かかる信号は、例えば電磁波として(例えばスペクトルの無線周波数部分を用いて)、又はベースバンド信号としてフォーマットされ得る。フォーマットすることは、例えばデータストリームを符号化し、符号化データストリームで搬送波を変調することを含み得る。信号が運ぶ情報は、例えばアナログ情報又はデジタル情報とすることができる。信号は、知られているように様々な異なる有線リンク又は無線リンク上で伝送され得る。信号はプロセッサ可読媒体上に記憶され得る。
【0185】
様々な実施形態を記載してきた。実施形態は、様々な異なる特許請求の範囲のカテゴリ及び種類にわたり以下の特徴又はエンティティの何れかを単独で又は任意の組み合わせで含むことができる:
・ 隣接する再構成済みサンプルに依存しない改良を適用すること。
・ ビットストリーム内で伝送される1つ又は複数の改良パラメータを有するグローバル関数に基づいて改良を適用すること。
・ クロマ成分の成分間改良を含むモードを符号器及び/又は復号器内で提供すること。
・ ルマ成分の成分内改良を含むモードを符号器及び/又は復号器内で提供すること。
・ 復号器及び/又は符号器内でブロックごとの改良を活性化できるようにすること。
・ 特定の成分に対して幾つかの関数を使用し、改良関数をブロックごとに選択することによって改良を適用すること。
・ 復号器及び/又は符号器内で、ビットストリーム又は信号内にコード化された1組のあり得るパラメータの中からブロックに適用するための改良パラメータをブロックごとに選択できるようにすること。
・ 再構成済み信号に対してブロックごとに改良を適用すること。
・ 復号後の再構成済み信号を改善するためにインループフィルタ又はループ外フィルタとして改良ステップを含める。
・ 復号器及び/又は符号器内で、ビットストリーム又は信号内にコード化された改良テーブルに改良を基づかせる。
・ 冗長なニュートラル値を回避することによってテーブルのコード化コストの低減をもたらすこと。
・ 本明細書に記載の改良を復号器が行うことを可能にする構文要素をシグナリング内に挿入すること。
・ テーブルペア識別子等、改良テーブルに関係する識別子を構文要素内に含めること。
・ コード化コストを低減するために改良テーブルのサイズ制限を設けること。
・ 現在のブロックに関する改良情報が隣接ブロックから複製されるかどうかを示す1つ又は複数の構文要素を構文要素内に含めること。
・ それらの構文要素に基づき、復号器において適用する改良を選択すること。
・ 記載した構文要素の1つ若しくは複数又はその改変形態を含むビットストリーム又は信号。
・ 符号器が使用したやり方に対応するやり方で復号器が改良を行うことを可能にする構文要素をシグナリング内に挿入すること。
・ 記載した構文要素の1つ若しくは複数又はその改変形態を含むビットストリーム又は信号を作成し及び/又は伝送すること、及び/又は受信し及び/又は復号すること。
・ 記載した実施形態の何れかによる改良を行うTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・ 記載した実施形態の何れかによる改良を行い、結果として生じる画像を(例えばモニタ、画面、又は他の種類のディスプレイを使用して)表示するTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・ 符号化済み画像を含む信号を受信するために(例えばチューナを使用して)チャネルをチューニングし、記載した実施形態の何れかによる改良を行うTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・ 符号化済み画像を含む信号を(例えばアンテナを使用して)無線で受信し、記載した実施形態の何れかによる改良を行うTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・ コンピュータによって実行されるとき、記載した実施形態の何れかによる改良を実装するプログラムコードを記憶するコンピュータプログラム製品。
・ 命令を実行しているコンピュータに記載した実施形態の何れかによる改良を実装させる実行可能プログラム命令を含む、非一時的コンピュータ可読媒体。
【0186】
他の様々な一般化した、並びに特定化した実施形態も本開示の全体を通して支持され予期される。例えば実施形態の少なくとも1つの例は、(i)ブロックごとの再構成済み信号に改良モードを適用することに基づいてピクチャ部分を符号化するためのコストであって、改良モードは改良パラメータに基づく、符号化するためのコスト、及び(ii)改良モード以外のモードを使用してピクチャ部分を符号化するためのコストを得ること、並びにそのコストに基づいてピクチャ部分を符号化することを含む符号化の方法を含む。
【0187】
少なくとも1つの実施形態の別の例は、ブロックごとの再構成済み信号に改良モードを適用することに基づいてピクチャ部分を符号化するためのコストであって、改良モードは改良パラメータに基づく、符号化するためのコスト、及び改良モードを使用することなしにピクチャ部分を符号化するためのコストを得ること、並びにそのコストに基づいてピクチャ部分を符号化することを行うように構成される1つ又は複数のプロセッサを含む機器を含む。
【0188】
少なくとも1つの実施形態の別の例は、ピクチャ部分の符号化中にブロックごとの再構成済み信号に適用されている改良モードの指示を得ることであって、改良モードは改良パラメータに基づく、指示を得ること、及びその指示に基づいて符号化済みピクチャ部分を復号することを含む復号の方法を含む。
【0189】
少なくとも1つの実施形態の別の例は、符号化済みピクチャ部分の符号化中にブロックごとの再構成済み信号に適用されている改良モードの指示を得ることであって、改良モードは改良パラメータに基づく、指示を得ること、及びその指示に基づいて符号化済みピクチャ部分を復号することを行うように構成される1つ又は複数のプロセッサを含む機器を含む。
【0190】
少なくとも1つの実施形態の別の例は、符号化済みピクチャ部分を表すデータ、及び符号化済みピクチャ部分の符号化中に改良パラメータに基づいてブロックごとの再構成済み信号に適用されている改良モードの指示を与えるデータを含むようにフォーマットされた信号を含む。
【0191】
少なくとも1つの実施形態の別の例は、符号化済みピクチャ部分を表すデータ、及び符号化済みピクチャ部分の符号化中に改良パラメータに基づいてブロックごとの再構成済み信号に適用されている改良モードの指示を与えるデータを含むようにフォーマットされたビットストリームを含む。
【0192】
改良モードを含む本明細書に記載の少なくとも1つの実施形態では、改良モードが成分の改良を含み得る。
【0193】
改良モードを含む本明細書に記載の少なくとも1つの実施形態では、改良モードが成分間改良又は成分内改良の少なくとも1つを含み得る。
【0194】
成分間改良又は成分内改良を含む本明細書に記載の少なくとも1つの実施形態では、成分間改良が成分間クロマ改良を含むことができ、成分内改良が成分内ルマ改良を含むことができる。
【0195】
改良モードを含む本明細書に記載の少なくとも1つの実施形態では、改良モードが改良パラメータのブロックごとの選択を可能にすることを含み得る。
【0196】
改良パラメータを含む本明細書に記載の少なくとも1つの実施形態では、改良パラメータが改良テーブル内に含まれる1つ又は複数の改良パラメータを含み得る。
【0197】
改良モード及び改良パラメータを適用することに基づいてピクチャ部分を符号化することを含む本明細書に記載の少なくとも1つの実施形態では、改良モードを使用してピクチャ部分を符号化するときのコストの改善に基づき、複数の改良パラメータからブロックごとに改良パラメータを選択することができる。
【0198】
別の実施形態によれば、(i)ブロックごとの改良モードを使用してピクチャ部分を符号化するためのコストであって、改良モードは改良パラメータに基づく、符号化するためのコスト、及び(ii)改良モード以外のモードを使用してピクチャ部分を符号化するためのコストを得ること、並びにそのコストに基づいてピクチャ部分を符号化することを含むビデオデータを符号化するための方法が提示される。
【0199】
別の実施形態によれば、符号化済みピクチャ部分の符号化中の改良パラメータに基づくブロックごとの改良モードの使用の指示を得ること、及びその指示に基づいて符号化済みピクチャ部分を復号することを含むビデオデータを復号するための方法が提示される。
【0200】
別の実施形態によれば、符号化済みピクチャ部分の符号化中の改良パラメータに基づくブロックごとの改良モードの使用の指示を得ること、及びその指示に基づいて符号化済みピクチャ部分を復号することを行うように構成される1つ又は複数のプロセッサを含むビデオデータを復号するための機器が提示される。
【0201】
別の実施形態によれば、符号化済みピクチャ部分を表すデータ、及び符号化済みピクチャ部分の符号化中に改良パラメータに基づいてブロックごとの改良モードの使用の指示を与えるデータを含む信号形式が提示される。
【0202】
別の実施形態によれば、符号化済みビデオデータを含むようにフォーマットされるビットストリームが提示され、符号化済みビデオデータは(i)ブロックごとの改良モードを使用してピクチャ部分を符号化するためのコストであって、改良モードは改良パラメータに基づく、符号化するためのコスト、及び(ii)改良モード以外のモードを使用してピクチャ部分を符号化するためのコストを得ること、並びにそのコストに基づいてピクチャ部分を符号化することによって符号化される。
【0203】
別の実施形態によれば、本明細書に記載の改良モードが成分の改良を含み得る。
【0204】
別の実施形態によれば、本明細書に記載の改良モードが成分の改良を含むことができ、成分の改良は成分間(cross component)改良、及び成分間(intra-component)改良、及び成分内改良の少なくとも1つを含む。
【0205】
別の実施形態によれば、本明細書に記載の改良モードが成分間クロマ改良を含み得る。
【0206】
別の実施形態によれば、本明細書に記載の改良モードが成分内ルマ改良を含み得る。
【0207】
別の実施形態によれば、本明細書に記載の改良モードが、改良パラメータのブロックごとの選択を可能にすることを含み得る。
【0208】
別の実施形態によれば、本明細書に記載の改良モードが、クロマ改良テーブル内に含まれる1つ又は複数のクロマ改良パラメータを含む改良パラメータに基づき得る。
【0209】
別の実施形態によれば、本開示による方法、機器、又は信号は、改良パラメータに基づく改良モードを使用してビデオデータを符号化すること及び/又は復号することを含むことができ、符号化すること及び/又は復号することは、改良モードを使用してピクチャ部分を符号化及び/又は復号するときのコストの改善に基づいてピクチャ部分及び改良パラメータを符号化すること及び/又は復号することを含む。
【0210】
別の実施形態によれば、本開示による方法、機器、又は信号は、符号化及び/又は復号中に改良モードを使用することに基づいてビデオデータを符号化すること及び/又は復号すること、並びに改良モードを使用することに関連するコストを決定することを含むことができ、コストはレート歪みコストを含むことができ、コストを決定することは改良モードを使用してピクチャ部分を符号化するときのレート歪みコストを決定することを含み得る。
【0211】
概して、ビデオデータを符号化及び/又は復号するための装置の少なくとも1つの実施形態は本明細書に記載の機器を含むことができ、(i)信号を受信するように構成されるアンテナであって、信号は画像を表すデータを含む、アンテナ、(ii)画像を表すデータを含む周波数帯域に受信信号を制限するように構成される帯域制限器、又は(iii)画像を表示するように構成されるディスプレイのうちの少なくとも1つを含み得る。
【0212】
概して、ビデオデータを符号化及び/又は復号するための装置の少なくとも1つの実施形態は、テレビ、携帯電話、タブレット、セットトップボックス、及びゲートウェイ装置の少なくとも1つを含み得る。
【0213】
本明細書の実施形態の1つ又は複数は、本明細書に記載した方法又は機器に従ってビデオデータを符号化し又は復号するための命令を記憶しているコンピュータ可読記憶媒体又はコンピュータプログラム製品も提供する。本明細書の実施形態は、本明細書に記載した方法又は機器に従って生成されるビットストリームを記憶しているコンピュータ可読記憶媒体又はコンピュータプログラム製品も提供する。本明細書の実施形態は、本明細書に記載した方法又は機器に従って生成されるビットストリームを伝送し又は受信するための方法及び機器も提供する。