(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
符号化効率の改善は、符号化ビットプレーンのセットがデータストリームで予測的に通知される係数グループが2つのグループセットにグループ化され、かつ、グループセットに対して、それぞれのグループセットのすべての係数グループの符号化ビットプレーンのセットが空かどうか、すなわち、それぞれのグループセット内のすべての係数が有意でないかどうかを通知するデータストリームで費やされるような方法でビットプレーン符号化を実行することによって達成される。
別の態様によれば、符号化効率の改善は、グループセットの通知に対する代替の符号化オプションとして、第1の態様によるグループセットごとの有意でない通知をビットプレーン符号化に提供することにより達成され、それについて、それぞれのグループセット内のクレームグループの符号化ビットプレーンの符号化予測残差がないことが通知される。
前記下位部分は、前記画像(12)が細分される空間領域の対応する空間領域(32)に関する変換係数のサブバンドまたはグループである、請求項3に記載のデコーダ。
前記画像(12)が細分される空間領域の対応する空間領域(32)に関する変換係数の係数グループ行、サブバンド、またはグループの粒度で、前記1つまたは複数の切り捨てられた最下位ビットプレーンのセットを示す前記切り捨て情報(108)を前記データストリームから導出するように構成される、請求項5に記載のデコーダ。
前記変換係数は、画像(12)のサブバンドへのスペクトル分解(10)のスペクトル係数であり、1つの係数グループ(18)内の変換係数(16)が同じサブバンドに属するような方法で前記係数グループ(18)にグループ化される、請求項1から8のいずれか一項に記載のデコーダ。
前記エンコーダは、前記データストリームにおける通知により、下位部分ごとに少なくとも前記第1および第2のモードの中から前記有意符号化モードを選択して変更するように構成される、請求項14に記載のエンコーダ。
前記画像が細分される空間領域の対応する空間領域に関する変換係数の係数グループ行、サブバンド、またはグループの粒度で、前記1つまたは複数の切り捨てられた最下位ビットプレーンのセットを示す前記切り捨て情報を前記データストリームに挿入するように構成される、請求項17に記載のエンコーダ。
前記変換係数は、画像のサブバンドへのスペクトル分解のスペクトル係数であり、1つの係数グループ内の変換係数が同じサブバンドに属するような方法で前記係数グループにグループ化される、請求項13から22のいずれか一項に記載のエンコーダ。
前記画像が細分される空間領域の対応する空間領域に関する変換係数の係数グループ行、サブバンド、またはグループの粒度で、前記1つまたは複数の切り捨てられた最下位ビットプレーンのセットを示す前記切り捨て情報を前記データストリームから導出するように構成される、請求項31に記載のデコーダ。
【発明を実施するための形態】
【0008】
本出願の実施形態の以下の説明は、JPEG XS標準化プロセスの現在の状態、すなわちJPEG XSについて現在議論されているバージョンの簡単な提示から始まり、その結果、最終的に本出願の実施形態になるために、このバージョンをどのように変更できるかについて概説する。
以下、これらの実施形態は、別個に説明されるさらなる実施形態をもたらすために拡張されるが、前述の特定の詳細への個々の参照を含む。
【0009】
図1は、後述するように本出願の実施形態が適用され得るJPEG XSについて現在想定されている復号プロセスの一例を提供する。
後述する拡張された実施形態から明らかになるように、本出願は、この種の復号プロセスおよび対応する符号化プロセスに限定されない。
それにもかかわらず、
図1は、本出願の概念のより良い理解を得る際に当業者を支援する。
【0010】
図1によると、コードストリーム復号は、ブロック1の構文解析部分、複数のブロック2.1から2.4で構成されるエントロピー復号ステージ、ブロック3の逆量子化、ブロック4の逆ウェーブレット変換、およびブロック5の逆多重成分非相関にグループ化される。
ブロック6では、サンプル値がスケーリングされ、DCオフセットが追加され、それらが公称範囲にクランプされる。
【0011】
ブロック1では、デコーダはコードストリームの構文を解析し、サンプリンググリッドのレイアウトに関する情報、およびいわゆるスライスとプレシンクトの次元を取得する。
【0012】
コードストリームのエントロピー符号化されたデータセグメントのサブパケットは、有意な情報、符号情報、MSB位置情報(GCLI情報とも呼ばれる)に復号され、このすべての情報を使用して、ウェーブレット係数データになる。
この操作は、
図1のブロック2.1から2.4で実行される。
【0013】
通常、画像とビデオの圧縮は、エントロピー符号化を実行する前に変換を適用する。
例えば、参考文献[7]はブロックベースの予測を使用し、参考文献[4]、[3]、[5]、[6]はウェーブレット変換を提唱している。
図1の場合はウェーブレットが使用されているが、
図1は単なる例であり、ウェーブレット変換の使用に関しても同じことが当てはまる。
【0014】
このようなウェーブレット変換を
図2に示す。
画像をいくつかのサブバンドに分解する。
各サブバンドは、画像12の空間的にダウンサンプリングされたサブバンド固有のスペクトルバンドパスフィルタバージョンを表す。
図2に示すように、水平方向の分解の数は、垂直方向の分解の数と異なってもよい。
各分解ステップでは、前の分解のローパスサブバンドがさらに分解される。
例えば、L5サブバンドは画像のサブサンプリングバージョンを表し、他のサブバンドには詳細情報が含まれる。
【0015】
周波数変換後に、サブバンドの係数はエントロピー符号化される。
言い換えれば、サブバンドABmのg≧1係数は、A、B∈{L、H}、m∈Nで、係数グループに配置される。
次に、係数グループの最上位の非ゼロビットプレーンが通知され、その後に生データビットが続く。
符号化技術の詳細については、以下で説明する。
【0016】
図3は、最終的に構文要素になるGCLI符号化の原理を示し、その復号は、例えば
図1のブロック2.2に対応する。
したがって、GCLI符号化は最上位ビット位置の符号化に関するものであり、したがって、符号化ビットプレーンの指示に関係する。
これは次のように行われる。1よりも多く、周波数変換の同じサブバンドに属する係数を有するいくつかの係数は、グループに結合され、これは以降、係数グループと呼ばれる。
例えば、
図2を参照されたい。そこに描かれているウェーブレット変換10は、画像12の変換の一例である。
繰り返しになるが、ウェーブレット変換は、本出願の実施形態が適用可能な変換の一例にすぎない。
画像12のサンプルまたはピクセル14の値を直接符号化する代わりに、符号化は変換10の変換係数16で実行される。
図3は、係数グループが4つの係数で構成されていることを前提としている。
しかし、その数は単に説明のために選択されたものであり、異なるように選択してもよい。
図2は、例えば、そのような係数グループ18が、すべてが変換10の同じサブバンドに属する空間的に隣接する4つの変換係数16を含むことを示している。
図2は、1つの係数グループ18に含まれる係数16が互いに水平方向に隣接することを示しているが、これも単なる例であり、係数グループ18への係数16のグループ化は異なって行われてもよい。
図3は、左側の符号20の第1の係数グループと符号22の第2の係数グループの各係数のビット表現を示している。
各係数の絶対値のビットは、列に沿って係数ごとに広がる。
したがって、4つの列がそれぞれ符号20と符号22で示されている。
各ビットは特定のビットプレーンに属し、
図3の最下位ビットは最下位ビットプレーンに属し、最上位ビットは最上位ビットプレーンに属する。
説明のために、8つの利用可能なビットプレーンを
図3に示すが、数は異なってもよい。
変換係数のマグニチュードビット24に加えて、
図3は、各係数について、対応するマグニチュードビットの上の符号ビット26を示している。
GCLI符号化について、
図3を参照して詳細に説明する。
【0017】
既に概説したように、係数はサインマグニチュード表現で表される。
それぞれの係数グループの最大係数により、この係数グループのアクティブなビットプレーンの数が決まる。
ビットプレーン自体またはそれ以上のビットプレーン(より大きな数を表すビットプレーン)の少なくとも1つの係数ビット24がゼロでない場合には、ビットプレーンはアクティブと呼ばれる。
アクティブなビットプレーンの数は、いわゆるGCLI値、すなわち最大の符号化ラインインデックスによって与えられる。
例えば、係数グループ20では、GCLIは6であり、第2の係数グループ22では、GCLIは例として7である。
GCLI値が0の場合、アクティブなビットプレーンが存在しないため、完全な係数グループは0になる。
この状況は有意ではないGCLIとして知られており、有意なGCLIはその逆である。
圧縮を実現するために、アクティブなビットプレーンのみがビットストリームに配置される、すなわち、符号化される。
【0018】
損失のある符号化では、係数グループに対して送信されるビットプレーンの数がGCLI値よりも小さくなるように、ビットプレーンの一部を切り捨てる必要がある場合がある。
この切り捨ては、いわゆるGTLI、すなわち最大のトリミングされたラインインデックスによって指定される。
代替名は切り捨て位置である。ゼロのGTLIは、切り捨てなしに対応する。
1のGTLI値は、係数グループの送信されたビットプレーンの数がGCLI値より1少ないことを意味する。
言い換えれば、GTLIはビットストリームに含まれる最小のビットプレーン位置を定義する。
単純なデッドゾーン量子化方式の場合、送信されたビットプレーンは、切り捨てられたビットプレーンのない係数グループのビットプレーンに等しくなる。
より高度な量子化方式の場合、量子化ビンを変更することにより、計画された切り捨てられたビットの一部の情報を送信されたビットプレーンに「プッシュ」することができる。
詳細については[6]で見出すことができる。
【0019】
各係数について、残留ビットプレーンの数はGCLI値とGTLI値の差に等しいため、GCLIがGTLI値以下の係数グループがビットストリームに含まれていないことは明らかである。
言い換えれば、これらの係数グループのビットストリームでは(データ)ビット24は伝達されない。それらの係数は有意ではない。
【0020】
切り捨てと量子化の後に残っているアクティブなビットプレーンは、以下では残留ビットプレーン、あるいは切り捨てられたGCLIと呼ばれる。
さらに、GTLIは以下では切り捨てポイントとも呼ばれる。残留ビットプレーンがゼロの場合、GCLIは有意でない切り捨てGCLIとして知られている。
【0021】
これらの残留ビットプレーンは、生ビット(raw bits)としてデコーダに送信される。
図1のブロック2.3は、ビットストリームからこれらのビットを導出することを担っている。
しかし、正しい復号を有効にするには、デコーダはすべての係数グループ18のGCLI値を知る必要がある。
デコーダにも通知されるGTLI値と共に、デコーダはビットストリーム内にある生データビットプレーンの数を推測できる。
【0022】
GCLI値自体は、以前の係数グループのGCLI値との差を表す可変長コードによって通知される。
この以前の係数グループは、原則として、エンコーダが既に以前に復号した任意の係数グループである。
したがって、例えば、水平または垂直の隣接グループにすることができる。
予測からの出力は、2つの係数グループ間の残留ビットプレーンの数の差であり、デルタ残留ビットプレーンが得られる。
例えば、
図3では、符号20で示される左側の係数グループが係数グループ22の符号化の順序で先行し、そのGCLIが係数グループ22のGCLIの予測器として機能すると想定している。
詳細について以下で説明する。
GTLI値を下回るGCLI値は、いずれの場合でもその係数がビットストリームに含まれないため、対象ではないことに留意されたい。
その結果、デコーダが、GCLIがGTLIよりも大きいかどうか、またそうであればGCLIの値を推測できるように予測は実行される。
【0023】
以下で説明する方法は、異なるビットストリームパーツの送信順序に依存しないことに留意されたい。
例えば、最初にすべてのサブバンドのGCLI係数をビットストリームに配置し、次にすべてのサブバンドのデータビットを配置することができる。
あるいは、GCLIとデータビットがデータストリームにインターリーブされてもよい。
【0024】
図2に示されている周波数変換の係数は、いわゆるプレシンクト(precincts)30に構成されている。これを
図4に示す。
プレシンクトは、入力画像12の所定の空間領域32に寄与する異なるサブバンドの係数をグループ化する。
【0025】
デコーダが信号を回復できるようにするには、すべての係数グループ18のGCLI値を知っている必要がある。
[3]によれば、それらを効率的に通知するための様々な方法がある。
【0026】
RAWモードでは、GCLI値は予測なしで送信される。
【0027】
したがって、F
1を次に符号化する係数グループとする。
次に、GCLI値を、以下の値を表す固定長コードワードで符号化することができる:
max
f()(GCLI(F
1)−GTLI(F
1),0)
【0028】
水平予測では、符号化されたシンボルは、GCLI値と、同じラインおよび同じウェーブレットサブバンドに属し、GTLIを考慮して以前に符号化されたGCLIの値と、の差である。
この差分値は、以下では残差またはδ値と呼ばれる。
【0029】
F
1とF
2を、g>1係数で構成される2つの水平方向に隣接する係数グループとする。F
2を現在符号化される係数グループとする。次に、次のように計算された残差を送信することにより、GCLI(F
2)をデコーダに通知することができる:
【0030】
デコーダは、次式を計算することによりGCLI(F
2)を回復する。
【0031】
水平予測では、通常GTLI(F
1)=GTLI(F
2)であることに留意されたい。 さらに、[4]で説明されているように、δは可変長コードとして送信されることに留意されたい。
【0032】
2つのサブバンドライン間の垂直予測では、結果は、GCLI値と、以前に符号化されたラインの係数の同じサブセットのGCLIとの差になる。
【0033】
F
1とF
2を、g>1係数で構成される2つの垂直方向に隣接する係数グループとする。F
2を現在符号化される係数グループとする。
次に、GCLI(F
2)は、水平予測と同じ方法で符号化することができる。
【0034】
垂直予測はスライス内で制限され、スライスは、所定の連続した行(例えば64行など)のセットである。
この方法では、スライスの第1のプレシンクトを垂直方向に予測することはできない。
【0035】
垂直予測の代替方法は、上記の予測の代わりに、次の予測式が使用されることである。
δ=max(GCLI(F
2),GTLI(F
2))−max(GCLI(F
1),GTLI(F
1))
【0036】
垂直予測の別の代替方法は、いわゆる有界コードを使用することである。
ここで、
であり、
g
iは符号化するGCLIであり、
は基準として使用されるGCLIであり、
t
iはg
iに適用する切り捨てであり、
は
に適用された切り捨てである。
【0037】
このようなコードはδ≧0の特性を有するため、効率的な単進符号化が可能である。
【0038】
次式に同じ予測方法を適用することもできる。
【0039】
[1]では、GCLI符号化でエスケープコードを使用して、すべてが所定の切り捨てしきい値よりも小さい複数の係数で構成される係数グループのシーケンスを通知している。
これらの手段により、係数グループごとにコードワードを必要とせずに、複数のゼロ係数グループを1つのエスケープワードで表すことができるため、符号化効率を改善することができる。
【0040】
この方法には、有意フラグに関してオーバーヘッドを必要としないという利点があるが、エスケープコードを使用しない場合に必要なビットと比較して追加のビットを計算すると、多少複雑になる。
さらに、いくつかの符号化方法では、簡単な方法でエスケープコードを使用することができない。
【0041】
例えば、
図5は、係数グループ18の中で定義された符号化順序38に関してすぐに連続する可能性のある係数グループ18を示しているが、これは必須ではない。
上記のエスケープ符号化によれば、係数グループ18のデータストリームで送信されたGCLI値は、エスケープコードを仮定して、その係数と、一緒にグループセット40を形成するいくつかの後続の係数グループ18の係数とがすべて有意ではないことを通知できる。
どの係数グループ18がグループセット40に属しているかに関する質問は、デフォルトで知られているか、または通知され得る。
例えば、連続するGCLI係数グループ18のGCLI値がわずかに切り捨てられている場合、これらをコードストリームから破棄して、例えばこの方法で符号化効率を向上させることができる。
この空間ゼロラン法では、これは有意でないグループセット40の第1の係数のエスケープ値を符号化することにより行われる。
しかし、先ほど示したように、このような符号化エスケープ値を使用すると符号化の複雑さが増すため、極端に低い複雑さの場合には適していない。
【0042】
[1]で教示されているいわゆるRSF方法によれば、GCLI値の符号化の負担は、係数グループ18の有意でない切り捨てられたGCLI値は、グループセット40内のすべての基準GCLI値から、0に等しい残差に至るまで予測されることを、
図5のグループセット40などのグループセットに通知することによって軽減される。
この目的のために、係数グループ18はグループセット40にグループ化され、データストリームは各グループセット40について、GCLIの予測残差がグループセット40内ですべて0であるかどうかを示すRSFフラグを含み、その場合、当然、データストリームで送信する必要がある予測残差はない。
しかし、RSFは、対応する残差が0でない場合、有意でないGCLIの符号化をスキップしない。
【0043】
セット40のGCLIの予測残差はゼロではないかもしれないが、切り捨てにより、それぞれのグループセット40内のすべての係数グループ18のすべての係数は有意ではない。
【0044】
以下に説明する実施形態は、RSFの解釈を修正することにより、コードストリームから有意でない切り捨てられたGCLIを削除する機会を提供し、低複雑度で概説されたRSF方法を補完することを可能にする。
【0045】
これについては、以下でより詳しく説明する。
【0046】
[1]で説明されているRSF方式では、GCLI係数は各サブバンド内のグループに配置され、以降はSIGグループと呼ばれる。
例えば、
図5の要素40はそのようなSIGグループである。SIGグループのサイズは、8または1より大きいその他の数である。
すなわち、SIGグループ40は、2つ以上の係数グループ18を含んでもよい。
1つのSIGグループ40に含まれる係数グループ18は、概説したように、変換10の1つのサブバンドに属し得るが、これは必須ではない。
サブバンドが8などのSIGグループサイズの倍数でない場合には、最後の係数は不完全なグループとして扱われる可能性があることに留意されたい。
【0047】
例えば、プレシンクト30のコードストリームの開始時に、一連のフラグが通知される。
各フラグは、プレシンクトの各SIGグループ40に対応している。
フラグが設定されている場合には、そのグループ40に対応するすべてのGCLI残差が0であるため、コードストリームに存在しないことを意味する。
【0048】
前述のように、SIGグループのGCLIが完全に切り捨てられる(または単に0になる)が、一方で残差が0ではない状況がある。
これは、例えば、GCLIが有意なラインまたは行から垂直に予測される場合に発生する可能性がある。
ここで、例えば0以外の残差が単進符号化のためにより多くの予算を必要とする場合、実際には有利かもしれないが、RSFは残差を通知することを防ぐことに成功しない。
【0049】
したがって、RSFの代わりに本願の実施形態に従って係数有意フラグ(CSF)が使用され、それにより、RSFの定義をさらに拡張することを目指している。
新しいGCLI符号化方法を導入することにより、CSFはすべてのSIGグループ40にも1つのフラグを割り当てるが、SIGグループ40の係数グループ18のGCLIが切り捨て後にすべて有意でない場合は常に設定される、すなわち、これらの係数グループ18の符号化ビットプレーンのセットは空である。
したがって、RSFの場合と同じ量のフラグが必要である。
以下で説明するように、CSF符号化は、例えばプレシンクト30またはサブバンドごとに選択できるように、両方を代替符号化オプションに従って使用できるという意味で、RSF符号化と組み合わせることができる。
ここでは、データストリーム内の同じフラグは、データストリーム内の追加の信号化に応じてRSFまたはCSFとして解釈される。
【0051】
表1は、4つの典型的なSIGグループの例と、これらのSIGグループにRSFとCSFがどのように設定されるかを示す。
【0052】
表1は、CSFメソッドとRSFメソッドの例と比較を示している。
SIGグループ0の場合、切り捨てられたGCLI値はすべて0であるためCSFが選択されるが、RSFフラグは残差が0でないことを示していない。
SIGグループ1の場合、状況は逆である。
SIGグループ2の場合、GCLIと残差の両方が0であるため、CSFが1になり、RSFも1になる。
最後に、SIGグループ3では、どちらも選択されない、すなわち、RSFとCSFはゼロに設定される。
【0053】
以下では、CSFバリアントについてさらに説明する。
【0054】
例えば、CSFフラグを使用すると、SIGグループごとに予算を節約できるという影響がある。
【0055】
単進符号化のアルファベットは、通常、1ビットを残して0の残差値を通知する。
したがって、RSFによって保存される予算は、削除されたすべてのSIGグループで常に同じであり、グループのサイズとまったく同じである。
一方、この方法によって導入される予算オーバーヘッドは、画像全体で一定であり、必要なRSFの量に常に等しくなる。
【0056】
CSFに関しては、予算のオーバーヘッドはRSFの場合とまったく同じである。
しかし、対照的に、SIGグループごとのピーク予算節約は、RSFと同等以上である。実際、CSFによって除去された残差は0と等しいか異なる場合があるため、予算はグループのサイズ以上になる可能性がある。
【0057】
RSFは予測に対して透過的に使用できるが、CSFの場合は後処理(エンコーダで)または前処理(デコーダで)であるため、デコーダとエンコーダの予測モジュールはわずかに変更される。
【0058】
エンコーダで、SIGグループに有意でない切り捨てられたGCLIのみが含まれていることが判明した場合は、その符号化を完全にスキップできる。
しかし、残差によって節約されたビットの量を取得するには、予算の計算でさらに計算する必要がある。
デコーダでは、CSFで削除されたGCLIの逆予測もスキップして、代わりに0に置き換えることができる。
【0059】
以下では、概説したCSFを使用した画像符号化について詳しく説明する。
このため、次のようにいくつかの関数定義が使用される。
【0060】
αを符号化する係数グループとする。
GCLI(α):GCLI値係数グループaを返す
PREF(α):係数グループαのGCLI値の予測に使用される係数グループを返す
GTLI(α):係数グループαに適用するGTLI値を返す。
GTLI(α)は、グループαのプレシンクトおよびサブバンドに依存する。
PRED(g
α、t
α、g
b、t
b):基準としてGCLI g
bを使用して、GCLIg
αの予測に対応する残差を返す。GTLIはそれぞれt
αおよびt
bである。
PRED
−1(δ、t
α、g
b、t
b):基準としてGCLI g
b、残差δを使用して係数グループに対応する逆予測を返す。
GTLIはそれぞれt
αおよびt
bである。
SIZE(s):サブバンドsの1つのラインの係数グループの数。
SIGGRP(α):係数グループαが属するSIGグループのインデックスを返す。
CSF(g):CSFフラグがSIGグループgに関連付けられているかを返す。真はグループが有意でないことを意味する。
RSF(g):RSFフラグがSIGグループgに関連付けられているかを返す。真はグループが有意でないことを意味する。
SIGSIZE(s):SIGグループのサイズであり、サブバンドごとに異なってもよい。
【0061】
CSFを管理するための擬似コードを以下に示す。
【0062】
サブバンドのGCLI値の復号は、次のように行われる。
【0063】
CSFを使用する場合、デコーダは次のように記述できる。
サブバンドsの場合、係数グループa
iの値のセットGCLI(a
i)は次のように復号される:
for 0≦i<SIZE(s)
if CSF(SIGGRP(a
i))#STGフラグが設定されている場合は、GCLIがない
GCLI(ai)←0
else #そうでない場合は、GCLIを復号する
δ’=vlc_decode()#デルタ値を単進復号する
GCLI(a
i)←PRED
−1(δ’,GTLI(a
i),GCLI(PREF(a
i)),GTLI(PREF(a
i)))
end if
end for
【0064】
サブバンドのGCLI値の符号化は、次のように行われる。
【0065】
次のように、SIGグループのすべてのGCLIが有意でなくなるGTLIを定義する。
【0066】
すなわち、グループの最大GCLI値である。
したがって、サブバンドsの係数グループa
iの符号化は、次のように実行できる。
for 0≦i<SIZE(s)
if GTLI(a
i)≧GTLI
csf(SIGGRP(a
i)) #有意でない切り捨てられたGCLIの場合
CSF(SIGGRP(a
i))←True #フラグを更新するだけで、符号化しない
else #そうでない場合は、符号化する
encode(PRED(GCLI(a
i),GTLI(a
i),GCLI(PREF(a
i)),GTLI(PREF(a
i))))
CSF(SIGGRP(a
i))←False
end if
end for
【0067】
それと比較して、RSFを管理するための擬似コードを参考として以下に示す。
【0068】
最初に、サブバンドのGCLI値の復号が検査される。
【0069】
RSFを使用する場合、デコーダは次のように記述できる。
サブバンドsの場合、係数グループ(a
i)の値のセットGCLI(a
i)は次のように復号される:
for0≦i<SIZE(s)
if RSF(SIGGRP(a
i)) #STGフラグが設定されている場合は、GCLIがない δ’←0
else #そうでない場合は、GCLIを復号する δ’=vlc_decode()#デルタ値を単進復号する
end if
GCLI(a
i)←PRED
−1(δ’,GTLI(a
i),GCLI(PREF(a
i)),GTLI(PREF(a
i)))
end for
【0070】
RSFを使用する場合のサブバンドのGCLI値の符号化は次のとおりである。
【0071】
次のように、SIGグループのすべての残差が有意でなくなるGTLIを定義する。
【0072】
したがって、サブバンドsの係数グループa
jの符号化は、次のように実行できる。
for 0≦i<SIZE(s)
if GTLI(a
i)≧GTLI
rsf(SIGGRP(a
i)) #有意でない切り捨てられたGCLIの場合
RSF(SIGGRP(a
i))←True #フラグを更新するだけで、符号化しない
Else #そうでない場合は、符号化する
encode(PRED(GCLI(a
i),GTLI(a
i),GCLI(PREF(a
i)),GTLI(PREF(a
i))))
RSF(SIGGRP(a
i))←False
end if
end for
【0073】
係数フラグと残差有意フラグとの間の切り替えをサポートすることができる。
上記で説明したように、係数有意フラグは、予測残差がゼロでない場合でも、量子化後にゼロになる一連の係数グループ(いわゆるSIGグループ)の存在を示すことができる。
予測残差を表すコードワードをビットストリームに配置することは、sigグループを表す有意情報または有意フラグを対応して設定することで回避でき、したがって符号化効率が向上する。
【0074】
一方、残差有意フラグは、予測残差がすべてゼロの量子化されたSIGグループの存在を示す。
言い換えると、SIGグループのすべての量子化係数がゼロとは異なる可能性がある予測値と同じ値を有する場合では、SIGグループの対応する有意ビットが適切に設定されている場合に、ゼロ予測残差をビットストリームに配置する必要はない。
このため、すべてのプレシンクト(またはすべてのサブバンド)のビットストリームは、2つの有意フラグのどちらが選択されているかを示す。
これらの手段により、エンコーダはすべてのプレシンクトまたはすべてのサブバンドに最適な代替手段を選択し、以下で説明するように符号化ゲインを提供できる。
【0075】
図6.1〜
図6.32は、上記の符号化フレームワークを使用して、すなわち、RSF符号化、CSF符号化、または両方の符号化モードの切り替えを可能にするバリアントと組み合わせたGCLI符号化を使用して得られたPSNR結果を示している。
図6.1から
図6.6は、RGB 444 8ビットの符号化、すなわち、RSF/CSFの切り替え可能性のために様々なbpp(ピクセルあたりのビット)制約で最適化され、RSFのみ、CSFのみ、RSF/CSFスイッチングをそれぞれ比較しながら、4bppのビットレート制約で視覚的に最適化されたPSNR、RSFのみ、CSFのみ、RSF/CSFスイッチングをそれぞれ比較しながら、6bppのビットレート制約で最適化されたPSNR、RSFのみ、CSFのみ、RSF/CSFスイッチングをそれぞれ比較しながら、12bppのビットレート制約で最適化され、RSFのみ、CSFのみ、RSF/CSFスイッチングをそれぞれ比較しながら、4bppのビットレート制約で視覚的に最適化され、RSFのみ、CSFのみ、RSF/CSFスイッチングをそれぞれ比較しながら、12bppのビットレート制約で視覚的に最適化されたPSNRを示す。
同様のシミュレーション結果は−RGB 444 10ビット符号化の場合は
図6.7〜
図6.10に、YUV 422 10ビット符号化の場合は
図6.11〜
図6.14に示されている見出しに示されている。
複数生成最大PSNRと平均PSNRの結果は、
図6.15〜
図6.32に示されている。
すなわち、
図6.15〜
図6.20のRGB 444 8ビット、
図6.21〜
図6.26のRGB 444 10ビット、
図6.27〜
図6.32のYUV 422 10ビットである。
【0076】
以下では、CSFおよびRSFに関連していくつかの複雑な態様について説明する。
しかし、以前は、
図7に関してエンコーダアーキテクチャが提示されている。
エンコーダは、開始点として前述のウェーブレット変換10を使用する方法で符号50を使用して
図7に示されている。
ウェーブレット変換10は、
図7に示されていない変換器によるウェーブレット変換によって取得されていてもよい。
ウェーブレット変換10を符号化するために、エンコーダ50は、係数グループ18ごとに最大の符号化ラインインデックスを決定するGCLI抽出器52を含む。
エンコーダ50は、例えば、プレシンクトごとに動作し、制約されている特定のビットレートを満たすように動作する。
GCLI抽出器52は、決定されたGCLI値をGCLIバッファ54および実行/GTLIモジュール56に供給する。
モジュール56は最小のGTLIを計算し、有意なグループのすべての係数グループがゼロに切り捨てられる。
詳細については、以下で説明する。
モジュール56は、GCLI値および有意でない有意なグループにつながる最小のGTLIを、GTLI候補値ごとにビット予算を計算する後続の予算コンピュータ58に転送する。
この目的のために、モジュール58は、バッファ60内の前の変換係数ラインのGCLI値に符号化順序で次に作用する変換係数ラインにアクセスし、更新し続ける。
正確な予算は、まだ利用できないかもしれない前のプレシンクトのGTLIに依存するため、モジュール58は、GTLI候補ごとのビット予算の初期近似値のみを計算する。 より正確には、予算コンピュータ58は、現在のプレシンクトの変換係数のラインで動作する。
GCLIバッファ54に接続されたプレシンクト予算更新器62は、プレシンクト予算更新を提供する。
前の予算近似値と実際のビット予算との偏差を修正する。
この目的のために、モジュール62はプレシンクト上で動作し、モジュール64によって次に符号化し、以前のプレシンクトのGTLIが既に利用可能になるようにする。
プレシンクト予算更新およびコンピュータ58によって決定された予算値に基づいて、RAモジュール63はGTLI値を計算してプレシンクトに効果的に適用し、前述のビットレート制約を満たすために次に符号化する。
このGTLI値は、GCLIコーダ64への入力として提供され、さらに、GCLIバッファ54からGCLI値を受信する。
GCLIコーダ64は、レジスタ66を介して、前のラインGCLIバッファ60の形のGCLI値の前のラインおよび前のラインのGTLIにアクセスする。
GCLIコーダ64は、GCLI値をこの点に関する詳細が上記で設定されたもので符号化し、それをバッファ68に出力する。
変換10の係数もバッファ70にバッファされ、バッファ68の符号化GCLI値を介してデータストリームで通知された符号化ビットプレーンにあるそれらのビットは、係数エンコーダ72を介してデータストリームに挿入される。
上述のように、これはビットを生データとしてデータストリームに配置するという形で行うことができる。
パッカー74は、符号化されたGCLIデータと生データビットをデータストリームにパックする。
【0077】
強調表示されている
図7のブロック、すなわち符号56、符号58、および符号64は、2つの異なるタイプの有意フラグ、すなわちRSFとCSFの使用に関係している。
その内容が参照により本明細書に組み込まれる[1]でさらに説明するように、ウェーブレット変換10のウェーブレット係数は、エンコーダ72による後のデータ符号化のために係数バッファ70に格納される。
[1]でも説明したように、GCLI抽出器52はGCLI値を決定し、それをバッファ54に格納する。
【0078】
2つの異なるsigflag法を組み合わせるには、モジュール56などによって、有意グループごとに次の値を計算する必要がある。
【0079】
ここで、
・g
jはGCLI jである。
・t
jはGCLI g
jに適用する量子化/切り捨てである。
・
は
g
j
を予測するために使用される基準GCLI(すなわち、水平または垂直の近傍)である。
・
はGCLI
に適用する量子化/切り捨てである。
・PREDは、tと
を使用して
から値g
jを予測する予測関数である。
・s
sigは現在処理されている有意グループである。
【0080】
は[2]で使用される値と同じ値であるため、複雑さについてはこれ以上説明しない。
の計算は、コンパレータ(<=5LUT)およびサブバンドごとに4ビットの1つのレジスタによって可能である。
さらに、GCLI値を1つの有意グループだけ遅延させることにより、初期予算計算が簡素化される。
1つの垂直ウェーブレット分解レベル(3×8サブバンド)の場合、これには3×8×8×4=768ビットが必要である。
ザイリンクスの場合、これは2×48=96LUT、またはアルテラデバイスの2 MLABブロックに対応する。
【0081】
GCLIコーダには別のわずかな変更が必要である。
残差有意フラグ([1]など)のみを使用する場合、s
sig予測残差を符号化する前にバッファリングして、すべてがゼロかどうかを判断する必要がある。
これにより、予測残差を出力するか、有意フラグを使用してSIGグループに有意でないことを通知することができる。
を使用する場合、コーダは、符号化するすべてのGCLI g
iが選択した量子化/切り捨てパラメータt
iをすべて下回っているかどうかをさらに確認する必要がある。
しかし、これは簡単であり、追加のバッファリングは必要ない。
【0082】
係数有意フラグの予算節約の計算は、次のように行われる。
【0083】
係数有意フラグを使用して有意グループが有意でないと通知されるたびに、
図7の予算計算モジュールは、予測残差をビットストリームに配置しないことによって節約されたビット数を追跡する必要がある。
【0084】
したがって、両方の方法の全体的な予算は次のように計算できる。
・有意フラグなしで予算を計算する
・残差有意フラグの予算節約の計算
・係数有意フラグの予算節約の計算
【0085】
これは、以下で説明するように、両方の方法を使用することで複雑さが増すのは、追加の予算節約を計算することにあることを意味する。
【0086】
上記の第1のオプションによる垂直予測が適用されるとする。
【0087】
この予測方法では、次式が使用される。
(1)
現在のGTLIと基準GTLIのt
iおよびt
i−1の両方が等しい場合、式(1)は次のように単純化される。
(2)
予算の節約は
についてのみ発生することがわかっているため、式(1)から次式を得る。
δ
i=t
i−max(g
i−1,max(t
i−1,t
i))
したがって、予算の節約は、g
i−1と
、さらにパラメータt
i−1とt
iに一意に依存するため、簡単に計算できる。
【0088】
第2の垂直予測オプションが適用される場合には、次式が使用される。
現在のGTLIと基準GTLIのt
iおよびt
i−1の両方が等しい場合、式(1)は次のように単純化される。
(4)
予算の節約は
についてのみ発生することがわかっているため、式(3)から次式を得る。
したがって、予算の節約は、g
i−1と
、さらにパラメータt
i−1とt
iに一意に依存するため、簡単に計算できる。
【0089】
対応する復号アーキテクチャを
図8に示す。
図8のデコーダは、符号80を使用して一般的に示されている。
入力デマルチプレクサ82は、データストリームを受信し、そこから符号化ビットプレーン内の符号化係数ビット、すなわち符号84、GCLI残差86、およびRSFまたはCSF、すなわち符号88であってもよいフラグを導出する。
ビット84はデータバッファ90に格納され、GCLI残差値はGCLIバッファ92に格納され、フラグ88はバッファ94に格納される。
図8に示すように、バッファ92に格納されたGCLI残差値は、単進符号化または生データとして符号化され、それに応じて、生デコーダ96または単進デコーダ98がGCLI残差値を復号するために使用される。
サブバンドGCLIバッファ100は、オプションで、デコーダ96およびデコーダ98にそれぞれアクセス可能であってもよい。
GCLIパッカー102を介して、逆GCLI予測器104は、GCLI残差を受け取り、以前のGCLI106に基づいて、およびRSFフラグに基づいてGCLI値を再構築する。
RSFが適用され、現在のGCLIのRSFフラグが設定されている場合には、逆予測器104は、予測残差、すなわち、とにかくゼロであるGCLI残差について通知される。
次に、以前のGCLI 106に基づいて決定された予測器が現在のGCLIとして使用される。
逆予測器104は、決定されたGCLIを出力し、マルチプレクサは、現在のGCLIに適用されるCSFフラグに応じて、この予測出力またはゼロ置換を選択する。
CSFフラグが設定されている場合には、とにかく対応するSIGグループ内に符号化ビットプレーンはなく、GCLIがそれに応じて設定される、すなわち、現在のGTLIを考慮して、有意でない変換係数の符号化につながるゼロまたは何らかの値になる。
アンパッカーコントローラ110は、マルチプレクサ108の出力を受信し、その出力は次に、前のGCLIとして逆予測器104にもフィードバックされ、今度は現在のGCLIに応じて、データバッファ90から現在の係数グループの符号化ビットプレーンの係数ビットを取り出すアンパッカー112を制御する。
アンパッカー112の出力で、それぞれの変換係数が生じる。
【0090】
したがって、
図8はデコーダのブロック図を示し、特に[1]に加えて、両方の有意フラグタイプのサポートを可能にする拡張機能を示している。
完全を期すために、
図8は[1]と比較して追加のGCLIパッカー102を示していることに留意されたい。
【0091】
プレシンクト(またはサブバンド)が残差有意フラグで符号化されている場合、逆予測器は、GCLIパッカー102から予測残差を読み取るのではなく、単に予測残差をゼロとみなす。
係数有意フラグを使用する場合、逆予測器104はまったく同じ操作を実行することができる。
しかし、この予測の結果を使用する代わりに、値は単純にゼロ値に置き換えられる。
したがって、両方のフラグタイプを処理するために、
図8のデコーダは、有意フラグバッファ94の出力および使用される有意フラグのタイプによって制御される4ビットMUX2要素、すなわち符号108を単純に含む。
したがって、デコーダに関する限り、ロジックの増加は無視できる。
【0092】
本出願の特定の実施形態をJPEG XSの現在想定されているバージョンの拡張または修正として説明した後に、デコーダおよびエンコーダおよびデータストリームのさらなる実施形態を、上述の実施形態の一種の一般化として説明する。
図9は、エンコーダ100を示している。
図9のエンコーダは、変換係数16をデータストリーム102に符号化するためのものである。
上述のように、変換係数16は、画像の変換の変換係数であってもよい。
変換係数16は、画像のスペクトル分解の複数の下位部分のうちの1つの下位部分を形成し、エンコーダ100は、下位部分(sub-portion basis)ごとに符号化を実行するように構成されてもよい。
そのような下位部分は、ウェーブレット変換のサブバンドなどのサブバンド、またはプレシンクトに対応する領域32など、画像が細分化される空間領域の対応する空間領域に関連する変換係数のグループであってもよい。
変換係数16は、例えばDCTなどの異なる変換の係数であってもよいことは明らかなことである。
変換係数は係数グループ18にグループ化される。グループ18当たりの係数16の数は、上述のように、1より大きい任意の数であってもよく、
図9に示す4に限定されない。
係数16のグループ18へのグループ化は、1つのグループ18に属する係数16が同じサブバンドに属するように行われてもよい。
ウェーブレット変換の場合、1つのグループ18に属する係数16は、例えば、1つのサブバンドの空間的隣接であってもよく、変換係数16がDCT係数の場合、グループ18は、画像の空間的に隣接する領域から取得された異なるDCT変換ブロックに由来する係数16から構成されてもよく、1つのグループの係数は、これらのDCT変換ブロック内の1つの周波数成分または係数に対応する。
特に、DCT変換の場合、画像をブロック単位で同じサイズのDCT変換ブロックに変換することができ、その各係数位置は別々のサブバンドを表す。
例えば、これらのDCT変換ブロックのすべてのDC係数は、DCサブバンド、その右側の係数、別のサブバンドなどを表す。
次に、グループ18は、画像の隣接ブロックから得られたDCT変換ブロックの1つのサブバンドの係数を収集してもよい。
【0093】
次に、係数グループ16は、グループセット40にグループ化される。
これは、異なるサブバンドの係数を混合しない方法で行うこともできる。
さらに、1つのグループセット40内の係数グループ18の係数16は、すべて同じサブバンドから生じてもよい。
【0094】
図9のエンコーダ100は、有意符号化モードが使用されないグループセット40の第1のサブセット、すなわちGCLI残差が符号化されるグループセット40と、有意符号化モードが使用されるグループセットの第2のサブセット、すなわちGCLI残差が符号化されないグループセット40と、を識別する情報104をデータストリーム102に挿入する。
上記の説明では、情報104を形成するために、各グループセット40に対して1つのCSFフラグがデータストリーム102に挿入される。
グループセット40の第1のサブセットは、CSFが0であるか設定されていないグループセット40であり、第2のサブセットは、CSFが1であるグループセット40を含む。
現在のグループセット40の情報104を設定するために、エンコーダ100は、グループセット40内のすべての変換係数16が有意でない、すなわち0に量子化されているかどうかをチェックする106。
エンコーダ100は、1つまたは複数の切り捨てられた最下位ビットプレーンのセットを示す切り捨て情報108をデータストリーム102に挿入することができる。
上記のGTLI値は、情報108の一部を形成することができる。
GTLI108は、例えば前述の下位部分の粒度で、すなわち例えばプレシンクトごとに、あるいはサブバンドまたは係数グループ行の単位などの他のレベルで、データストリーム102で送信されてもよい。
側面として、係数グループ18は、図に例示的に示されている以外に、係数行41に対して斜めの方向に沿って互いに隣接する係数16を収集してもよいことに留意されたい。 情報118が予測残差を提供するGCLI値は、データストリーム102に符号化される最上位ビットプレーンを、GTLIに関連するインデックスとして示すことができ、GTLIは、次に、マグニチュードビット24が切り捨てられる最下位ビットプレーンの中の最上位ビットをインデックス付けすることができる。
現在のグループセット40内のすべてのグループ18のすべての係数が0である場合には、このグループセット40のCSFフラグは符号110で設定され、そうでない場合には、符号112に示すように設定されない。
設定されない場合には、エンコーダ100は、隣接する係数グループ18に基づいて符号114でこのセットを予測することにより、例えば、データストリーム102に予測残差を挿入する116ことにより、符号化ビットプレーンのセットをデータストリーム102で通知し、それによりデータストリーム102にGCLIデータ118を形成する。
例えば、符号化ビットプレーンのセットは、インデックス付けにより、すなわち、最大の符号化ラインにインデックス付けすることにより、データストリーム102で通知されてもよい。
GCLI 118がGTLIよりも大きい現在のグループセット40内の係数グループ18について、エンコーダ100は、それぞれの係数グループ18の係数16の対応する係数ビット、すなわちビット24をデータストリーム102に符号化する。
このビット挿入120は、より具体的に言えば、ビットを生ビットとして挿入することなどにより、1のコードレートで行われてもよい。
次にGCLIデータ値は、例えば、上述の単進コードなどの可変長コードとしてデータストリーム102に符号化されてもよい。
符号120で挿入された生ビットは、
図9の符号122に示されている。
既に上述したように、データストリーム102内では、生ビット122、GCLIデータ118、およびフラグ104は、インターリーブまたは非インターリーブされてもよい。
図示するように、CSF=1はグループセット40を表す非常に圧縮された方法である。
符号110または符号120のいずれかの後に、同じ方法で別のグループセット40で処理を進めることができる。
【0095】
図10は、
図9のエンコーダに対応するデコーダを示している。
図10のデコーダ200は、データストリーム102から変換係数16を再構成するように動作し、この目的のために、現在のグループセット40のCSFが設定されているかどうかをチェックし、その場合、デコーダ200は、グループセット40内のすべての変換係数16をゼロにする、すなわちゼロに設定するか、この変換係数16にノイズを合成する。
この目的のために、チェック206が、有意符号化モードが現在のグループセット40に使用されることを示している場合には、現在のグループセット40に対して何らかの有意でない処理210が実行される。
しかしながら、そうでない場合には、デコーダ200はグループセット40を通常通り処理する。
すなわち、デコーダ200は214で現在のグループセット40内の各係数グループ18のGCLIを予測し、データストリーム102から取得した予測残差を使用して予測を修正する216。
上述のように、可変長復号は、予測残差118を導出するために使用してもよい。
予測は、現在の係数グループまたは現在のグループ40に垂直に隣接する係数グループ18のGCLIを使用して行うことができる。
すなわち、この例では、現在のセット40内のすべてのグループ18について、予測基準、すなわち、垂直方向に隣接するグループ18は、現在のセット40の外部にある。
あるいは、予測214は、現在の係数グループまたは現在のグループ40に水平方向に隣接する係数グループ18のGCLIを使用して行われてもよい。
すなわち、現在の例では、左端を除く現在のセット40内のほとんどのグループ18について、例えば、予測基準、すなわち水平方向に隣接するグループ18は、現在のセット40内にある。
当然、データストリーム内の各グループ18の予測ソースを通知することは実行可能である。
非予測でさえ可能なモードかもしれない。
予測214の詳細は当然、予測114に転送することもできる。
モード切り替えは、代替として、係数行41またはグループ18の行、サブバンドまたはプレディクト(predincts)30など、グループ18またはセット40以外の粒度でエンコーダによって通知され選択されてもよい。
【0096】
GCLIがGTLIより大きい、すなわち、符号化ビットプレーンのセットが量子化しきい値を下回っていない各係数グループ18について、符号218でデコーダ200によってチェックされる場合、それぞれの係数グループ18内の係数16の対応する符号化ビットプレーンのビットは、データストリーム102から符号220で読み取られる。
これは、デコーダ200がビットストリーム102からのビットをビットプレーンに挿入するための所定のマッピングルールに従って、データストリーム102、すなわち122のビットをGCLIおよびGTLIによって示されるビットプレーン、すなわちそれらの間で直接読み取りまたは復号する。
【0097】
図9において、エンコーダ100は、オプションとして、データストリーム102内で、情報104がこの種の有意性指示に関係する、すなわち、例えばRSFではなくCSFに関係するという事実を通知できることがさらに示されている。
この指示は、250でエンコーダ100によってデータストリーム102にオプションで挿入されるものとして示されている。
【0098】
図11は、CSFの代わりにRSFを使用するように構成されたエンコーダ300を示している。
図11のエンコーダ300は、次のように動作する。
特に、以下の説明は、
図9のエンコーダ100の動作との違いに集中している。
【0099】
図11のエンコーダ300は、符号314でそのグループセット40のすべての係数グループ18のGCLI予測器を決定し、符号316ですべての予測が正確に適合するかどうか、すなわち、グループセット40内のすべての係数グループ18について予測残差はすべて0であるかどうかを決定することにより、現在のグループセット40で動作する。 そうである場合には、エンコーダ300は、データストリーム102の有意情報104内の符号318でRSF=1を設定することによりこれを通知する。
ここで、指示250は、
図9の指示250によって示されるように、CSF通知の代わりに、データストリーム102の情報フィールド104でRSF通知が伝えられることを示す。
しかし、すべてのGCLI予測残差が0でない場合には、このグループセット40のRSFフラグは符号220で0に設定され、現在のグループセット40の係数グループ18のGCLI値の予測残差は、符号322でデータストリーム102に、すなわちフィールド118内に挿入される。
RSFが設定されているかどうかに関係なく、切り捨てられていない符号化ビットプレーンが係数グループごとに存在するかどうかがチェックされ、存在する場合には、符号326でデータストリーム102に挿入される。
【0100】
さらなる実施形態によるエンコーダは、例えば、RSFまたはCSFのいずれのオプションを符号化効率のセンス(sense)に従って優先するかを決定するために、両方のモードに従って、すなわち、
図9または
図11に従って、そこから選択して動作することができることに留意されたい。
【0101】
図12は、指示250がCSFまたはRSF符号化の使用を示すかどうかに関係なく、指示250を含むデータストリーム102を扱うことができるデコーダ400を示す。
図10の符号が再利用されているが、情報104のフラグの意味が指示250に依存することを示すために、情報104は「CSF」ではなく「R/CSF」として示されている。
有意でない処理210は、現在のグループセット40に対応するフラグが設定され、CSFモードが指示250によって同時に指示されている場合にのみ、デコーダ400によって実行される。
そうでない場合には、
図10と比較した動作モードのさらなる違いは、チェック402が、R/CSFフラグが現在のグループセット40に対して設定され、指示250がRSFモードを示す場合には、予測修正216がデコーダ400によってスキップされるという事実である。そうでない場合には、予測修正216が実行される。
【0102】
図12に関して、
図12のデコーダ400が
図10のデコーダとほとんど異ならないことは注目に値することに留意されたい。
RSF符号化とCSF符号化の両方を処理する機能は、運用上のオーバーヘッドがほとんどない。
一方、デコーダ12に供給するためのデータストリーム102を生成するためのエンコーダをインストールしようとするすべての人には、指示250が使用されている場合、
図11のRSFオプションまたは
図9のCSFオプションから選択する機会が提供される。 この点で、CSFオプションには並列処理機能に関して利点がある可能性があるが、
図11のRSFオプションは、例えばFPGAなどの形で、シーケンシャル操作スタイルでエンコーダを実装する場合に有利であることに留意されたい。
特に、RSF設定はステップ322での予測の予測基準ベースに依存するが、CSF設定は、GTLI、すなわち量子化について知る必要がある場合を除き、他の変換係数とは無関係に行うことができる。
【0103】
図9から
図12に関して、データストリーム102は、有意モードが使用されるかどうかの情報またはフラグをエンコーダによって提供されてもよく、それに応じて、情報104およびオプションで使用される通知250は、データストリーム102に存在せず、代わりにすべてのグループセット40が通常モードで処理されてもよいことに留意されたい。
【0104】
<定義および略語>
これらは、ドキュメントに沿って使用されるいくつかの定義である。
GCLI:最大の符号化ラインインデックス
GCLI係数グループ:1つのGCLI値で表されるウェーブレット係数のグループ
エスケープGCLI:通常の符号化には使用されず、デコーダに特定の条件を通知するために使用することができるGCLI値
有意なGCLI:値がゼロより大きいGCLI
有意でないGCLI:値がゼロであるGCLI
GTLI:最大の切り捨てられたラインインデックス
切り捨てられたGCLI:max(GCLI−GTLI、0)の結果
有意でない切り捨てられたGCLI:値が係数グループのGTLI以下であるGCLI
GCLI残差:GCLI値に適用された予測の結果。これには、基準GCLIおよび対応するGTLI値が必要である。水平予測と垂直予測の2つのバリエーションがある。
プレシンクト:入力画像の特定の空間領域に寄与する種々のサブバンドの係数のグループ。
シナリオ:種々のウェーブレットサブバンドのGTLI値を導出するために使用できるプレシンクトベースで定義された量子化パラメータ。
RSF:非有意フラグ[1]としても知られる残差有意フラグ。
SIGグループ:SIGフラグが割り当てられているGCLI係数グループのグループ。有意グループとしても知られている。
CSF:係数有意フラグ
【0105】
[参考文献]
[1]EP17162866.2,Decoder for decoding image data from a data stream,encoder for encoding image data into a data stream,and data stream comprising image data and data on greatest coded line index values
[2]intoPIX,“intoPIX Codec Submission for JPEG−XS CfP,Design Description”,wg1m73019
[3]AMBROISE RENAUD;BUYSSCHAERT CHARLES;PELLEGRIN PASCAL;ROUVROY GAEL,“Method and Device for display stream compression”,EP2773122 A1
[4]AMBROISE RENAUD;BUYSSCHAERT CHARLES;PELLEGRIN PASCAL;ROUVROY GAEL,“Method and Device for Display Stream Compression”,US9332258 BB
[5]Jean−Baptiste Lorent,“TICO Lightweight Codec Used in IP Networked or in SDI Infrastructure”,SMPTE RDD 35:2016
[6]Toshiaki Kojima,“LLVC−Low Latency Video Codec for Network Transfer”,SMPTE RDD 34:2015
[7]J.Kim and C.M.Kyung,“A Lossless Embedded Compression Using Significant Bit Truncation for HD Video Coding”,IEEE Transactions on Circuits and Systems for Video Technology,2010
【0106】
図13は、データストリーム102の擬似コードの例を示している。
この擬似コードでは、指示250は「Rm」と呼ばれるパラメータ内で伝達される。
Rm=1はCSF符号化モードの使用を示し、符号506でテストした量子化しきい値Tを超えないようにするために、符号504で計算されたGCLI予測器の修正502がいずれの場合でも十分小さいような値になるように、符号500で予測残差Δmを総合的に設定することにより、ビット導出のスキップ(skipping)が促される。
データストリームからのGCLI残差読み取りのスキップは、符号508の有意フラグ情報に基づいて、予測フラグZに応じて予測残差、すなわちΔmの読み取りをレンダリングすることによって行われる。
Rmが0または1であるかどうかは、符号508での有意フラグに対する符号510での予測残差読み取り値のこの依存性に影響しない。
Rmが0である場合には、すなわちRSFモードがアクティブである場合には、予測残差Δmは符号512で0に設定される。
符号化ビットプレーンのビット導出は
図13には示されていないが、Mが0より大きい変換係数グループに対してのみ行われる。
【0107】
いくつかの態様について装置の文脈で説明したが、これらの態様は対応する方法の説明も表し、ブロックまたはデバイスが方法ステップまたは方法ステップの特徴に対応することは明らかである。
同様に、方法ステップの文脈で説明される態様は、対応するブロックまたはアイテムまたは対応する装置の機能の説明も表す。
方法ステップの一部またはすべては、例えばマイクロプロセッサ、プログラム可能なコンピュータ、または電子回路などのハードウェア装置によって(またはそれを使用して)実行されてもよい。
いくつかの実施形態では、最も重要な方法ステップのうちの1つまたは複数をそのような装置によって実行することができる。
【0108】
本発明の符号化データストリームは、デジタル記憶媒体に格納することができ、あるいは無線伝送媒体などの伝送媒体またはインターネットなどの有線伝送媒体で伝送することができる。
【0109】
特定の実装要件に応じて、本発明の実施形態は、ハードウェアまたはソフトウェアで実現することができる。
この実施態様は、例えば、電子的に読み取り可能な制御信号が格納されている、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROM、またはフラッシュメモリなどの、デジタル記憶媒体を使用して実行することができ、これらは、それぞれの方法が実行されるように、プログラム可能なコンピュータシステムと協力する(または協力することができる)。
したがって、デジタル記憶媒体はコンピュータで読み取り可能であってもよい。
【0110】
本発明によるいくつかの実施形態は、本明細書に記載の方法の1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読み取り可能な制御信号を有するデータキャリアを含む。
【0111】
一般に、本発明の実施形態は、プログラムコードを備えたコンピュータプログラム製品として実施することができ、プログラムコードは、コンピュータプログラム製品がコンピュータで実行されるときに方法の1つを実行するように動作する。
プログラムコードは、例えば、機械読み取り可能なキャリアに格納されてもよい。
【0112】
他の実施形態は、機械読み取り可能なキャリアに格納された、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを含む。
【0113】
言い換えれば、したがって、本発明の方法の実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書に記載の方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0114】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを含み、それが記録されたデータキャリア(またはデジタル記憶媒体、またはコンピュータ可読媒体)である。
データキャリア、デジタル記憶媒体、または記録された媒体は、通常、有形および/または非一時的である。
【0115】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。
データストリームまたは信号のシーケンスは、例えば、インターネットなどのデータ通信接続を介して転送されるように構成されてもよい。
【0116】
さらなる実施形態は、本明細書に記載の方法の1つを実行するように構成または適合された処理手段、例えばコンピュータ、またはプログラマブルロジックデバイスを含む。
【0117】
さらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムがインストールされたコンピュータを含む。
【0118】
本発明によるさらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを受信機に(例えば、電子的または光学的に)転送するように構成された装置またはシステムを含む。
受信機は、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどであってもよい。
装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバーを含んでもよい。
【0119】
いくつかの実施形態では、プログラマブルロジックデバイス(例えば、フィールドプログラマブルゲートアレイ)を使用して、本明細書に記載の方法の機能の一部またはすべてを実行してもよい。
いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書に記載の方法の1つを実行するためにマイクロプロセッサと協働してもよい。
一般に、本方法は、任意のハードウェア装置によって実行されることが好ましい。
【0120】
本明細書で説明する装置は、ハードウェア装置を使用して、またはコンピュータを使用して、またはハードウェア装置とコンピュータの組み合わせを使用して実現することができる。
【0121】
本明細書に記載の装置、または本明細書に記載の装置の任意の構成要素は、少なくとも部分的にハードウェアおよび/またはソフトウェアで実現されてもよい。
【0122】
本明細書で説明される方法は、ハードウェア装置を使用して、またはコンピュータを使用して、またはハードウェア装置とコンピュータの組み合わせを使用して実行されてもよい。
【0123】
本明細書で説明される方法、または本明細書で説明される装置の任意の構成要素は、ハードウェアおよび/またはソフトウェアによって少なくとも部分的に実行されてもよい。
【0124】
上述の実施形態は、本発明の原理の単なる例示にすぎない。
本明細書に記載の配置および詳細の修正および変更は、当業者には明らかであることを理解されたい。
したがって、本明細書の実施形態の説明および説明として提示される特定の詳細によってではなく、差し迫った特許請求の範囲によってのみ限定されることが意図されている。