【文献】
Gennady Feygin, Patrick Glenn Gulak, Paul Chow ,Architectual Advances in the VLSI Implementation of Arithmetic Coding for Binary Image Compression,PROCEEDINGS OF DATA COMPRESSION CONFERENCE, 1994 (DCC '94),米国,IEEE COMPUT. SOC.,1994年 3月29日,pp.254-263
(58)【調査した分野】(Int.Cl.,DB名)
前記繰り返し復号化の前にcをゼロにより初期化し、かつ前記繰り返し復号化において、cmaxがゼロより大きくcmaxがcmpsより大きい場合にcをcmpsにより増加させ、かつ
cmaxがゼロより大きくcmaxがcmpsより小さい場合にcをcmaxにより増加させるようにさらに構成されている、
ことを特徴とする請求項1ないし3のいずれかに記載の二値算術復号化器。
前記二値算術復号化器は、前記再正規化数を1+log2(Rmin)−sであるように決定し、かつ、Rを2*(Rmin−1)にセットするようにさらに構成されている、
ことを特徴とする請求項1ないし5のいずれかに記載の二値算術復号化器。
前記二値算術復号化器は、cmax= (R - 1 - V) >> sにより前記最大数cmaxを決定し、かつ、cmps = 1 + ((R - Rmin)) >> sにより前記最大数cmpsを決定するように構成されている、
ことを特徴とする請求項1に記載の二値算術復号化器。
前記二値算術符号化器は、前記二値シンボルシーケンスが、前記非負整数値に等しい前記多数のMPSからなり、cが最大値cmより小さい場合前記LPSに追従し、cが前記最大値cmに等しい場合LPSに追従しないように構成されている、
ことを特徴とする請求項15ないし18のいずれかに記載の二値算術符号化器。
前記二値算術符号化器は、前記再正規化数を1+log2(Rmin)−sであるように決定し、かつ、Rを2*(Rmin−1)であるようにセットするように構成されている、
ことを特徴とする請求項15ないし19のいずれかに記載の二値算術符号化器。
前記二値算術符号化器は、Lの合計およびMPSに対応する部分的な間隔幅RMPSを用いてLを更新する際に、2の前記再正規化数乗を乗算し、ビット位置の前記再正規化数により、L+RMPSの左シフトを実行するように構成されている、
ことを特徴とする請求項15ないし21のいずれかに記載の二値算術符号化器。
【発明を実施するための形態】
【0007】
以下の二値算術符号化スキームにおいて、従来の最新技術のテーブルベースの二値算術符号化および復号化スキームは、特定の低い計算量を有する非負整数を符号化し、復号化するための機能により拡張される。それは、非負整数値の単項二値化と結合して二値算術符号化および復号化エンジンの単一の再正規化サイクルの範囲内で、多数のMPS(Most Probable Symbol)を処理する技術を使用する。従来のビン(bin)を符号化し復号化する能力は、維持されており、以下の実施例において説明するように、新規なアルゴリズムを使用して非負整数の符号化および復号化を任意にインターリーブしうる。さらにまた、非負整数のために結果として生じる符号長は、指数ゴロム(Exponential-Golomb)符号またはゴロム(Golomb)−ライス(Rice)符号または両者の組合せの一つと類似するよう構成しうる。
【0008】
以下で概説される符号化スキームの原理および効果およびその実施例を理解するために、以下のタイプのテーブルベースの二値算術符号化器/復号化器の一対を想像されたい。与えられたビンの代表的なLPS(Least Probable Symbol)/LPB(Least Probable bit)確率p
LPSから対応する符号間隔幅R
LPS−すなわち、例えば、符号間隔の下限を確認している、現在の間隔幅Rおよび現在の間隔オフセットLにより定義される二値算術符号化エンジンの内部状態の間隔細分−へのマッピングは、テーブルルックアップを用いて実現される。テーブルベースの二値算術符号化エンジンのために、K代表間隔幅値{Q
0,...,Q
K-1}は、Rを示すために使用され、かつ、S代表確率値{P
0,...,P
S-1}は、LPSが関係し得る確率評価pを示すために使用されたことを想像されたい。従って、ビンの算術符号化および復号化は、現在の間隔幅Rを{0,...,K−1}の中の値を有する量子化インデックスqにマップして、確率がインデックスとしてqおよびp_stateを使用することでルックアップテーブルRtabから現在のビンと関連したLPSのための確率評価P
p#stateを乗じた対応する部分的な間隔幅値Qqの積のための乗算値にアクセスすることにより間隔細分を実行するサブステップを含みうる。
【0009】
二値算術符号化エンジンは、ビンを符号化する際に、次のステップを実行し得る:
【0010】
1. valLPS,p_stateおよびbinを受信。
2. Rの量子化:
q_index=Qtab[R>>q](または量子化の若干の他の形式;K量子化レベルが、利用しうる)
3. RLPSおよびRMPSの決定:
RLPS=Rtab[p_state][q_index](Rtabがp[p_state]・Q[q_index]のための事前の計算値を格納することに注意)
RMPS=R−RLPS(すなわち、符号化器は、間隔を2つの部分に分割する)
4. 新しい部分的な間隔の算出:
if(bin=1−valMPS)then{
L←L+RMPS(すなわち、Lから直ちに伸びている現在の間隔Rの下部
は、MPSと関連している)
R←RLPS}
else
R←RMPS
5. LおよびRの再正規化、ビットの書き込み
while(R<Rmin){
R←R<<1
L←L<<1
1ビットをビットストリームに書き込む}
【0011】
但し、
q_index Qtabから読み出された量子化値のインデックスを記述する、
p_state 現在の状態を記述する、
R
LPS LPSに対応する間隔幅を記述する、および、
R
MPS MPSに対応する間隔幅を記述する、および、
R
min Rのための最小限の許容値を記述する、
valMPS MPSに対応するビット値を記述する。
【0012】
従って、二値算術復号化エンジンは、ビンを復号化する際に次のステップを実行し得る:
【0013】
1. valLPS、p_stateおよびビンの要求を受信
2. Rの量子化:
q_index=Qtab[R>>q](または量子化の若干の他の形式)
3. RLPSおよびRMPSの決定:
RLPS=Rtab[p_state][q_index](Rtabがp[p_s
tate]・Q[q_index]のための事前の計算値を格納することに注意されたい
)
RMPS=R−RLPS
4. 部分的な間隔の位置によるビンの決定:
if(V≧RMPS)then{
bin←1−valMPS(ビンは、LPSとして復号化される)
V←V−RMPS
R←RLPS}
else{
bin←valMPS(ビンは、MPSとして復号化される)
R←RMPS}
5. Rを再正規化、1ビットを読み出して、Vを更新、
while(R<Rmin){
R←R<<1
bit←ビットストリームから、1ビットを読み込む
V←(V<<1)+bit}
【0014】
但し、
q_index Qtabから読み出された量子化値のインデックスを記述する
p_state 現在の状態を記述する、
R
LPS LPSに対応する間隔幅を記述する、
R
MPS MPSに対応する間隔幅を記述する、
R
min Rのための最小限の許容値を記述する、
valMPS MPSに対応するビットの値を記述する、および、
V 現在の部分的な間隔内から値を記述する。
【0015】
以下に、上記の二値算術符号化器/復号化器の一対に対する機能拡張は、それが非負整数値の符号化および復号化を可能にすることを説明する。これを達成するために、非負整数値の単項表現は、1つのLPSに続く非負整数値に等しい多くのMPSからなることで形成される。非負整数を符号化および復号化するために、そして、マルチMPS符号化および復号化を可能にするために、2のs乗は、符号化および復号化プロセスの間、それを導出する代わりに、非負整数値の分配による初期のRLPSとして選択される。符号化および復号化プロセスの間、再正規化サイクルが実施されるときはいつでも、このパラメータは、所定の規則に従って更新される。この所定の規則は、現在の整数値の符号化プロセスが始まって以来uth再正規化サイクルの後に、初めて実施され、それからそれが所定の最小値sminを達成するまで、各更なる再正規化で実施される1によるsの単純な減少でありうる。
【0016】
二値算術符号化エンジンは、非負整数値を符号化するために、次のステップを実行しうる:
【0017】
1. 符号化すべき非負整数値cおよび関連するパラメータsを受信し、RLPS(RLPSは、明確に使用されるのではなく、暗示的にのみ使用される)を導出するために用いる
2. 現在の整数値のための再正規化カウントをゼロに初期化する:
nrenorm←0
3. 再正規化cmpsの前のMPSの数の測定:
cmps←1+((R−Rmin)>>s)
4. 全てのMPSが符号化されるまで、繰り返す:
if(c≧cmps)then{
R←R−(cmps<<s)
R←R<<1
L←L<<1
1ビットをビットストリームに書き込む
if(nrenorm≧u&&s>smin)then{
s←s−1}
c←c−cmps
nrenorm=nrenorm+1
ステップ3を継続する。]
else
R←R−(c<<s)
c=0
5. 終了しているLPSおよびLおよびRの最終的な再正規化を符号化し、ビットを書き込む:
numRenorm=log2(Rmin)−s
L←(L+R−(1<<s))<<numRenorm
R←Rmin
“numRenorm”ビットをビットストリームに書き込む
【0018】
但し、
c 符号化すべき整数値を記述する
cmps 再正規化サイクルが必要とされるまで、符号化されうるmpsの数
を記述する
Rmin R(2のべき乗でなければならない)のための最小限の許容された
値を記述する
【0019】
ステップ4において、再正規化cmpsまでのmpsの最大数は、符号化すべき値cと比較される。cがcmpsより小さい場合、これは、すべてのmpsがその後再正規化サイクルを起動させずに符号化されうることを示す。さもなければ(cは、cmps以上である)、再正規化が必要とされる前に、cmpsmpsは正確に符号化されうる。この再正規化が適用された後、cはcmpsにより減じられ、そして、手続きは、ステップ3で継続する。全てのmpsがこの手続きにより符号化された後、1つのLPSの符号化に対応するステップ5が適用される。RLPSが任意の値を取りうる場合よりも、前記再正規化は、より複雑ではない。RLPSが2のべき乗(そして、指数は、RLPSからそれを計算する必要のないパラメータsとして利用しうる)であるので、再正規化サイクルnumBitsの数は、log2(RMIN)−sとして計算される。従って、Rは、R←(1<<s)<<(log2(RMIN)−s)によりそれを計算する代わりに、直ちにRMINにセットされうる。
【0020】
従って、二値算術復号化エンジンは、非負整数値を復号化する際に次のステップを実行しうる:
【0021】
1. 非負整数値cおよび前記パラメータsを復号化するための要求を受け取り、RLPS(RLPSは、明確に使用されるのではなく、暗示的にのみ使用される)を導出するために用いる
2. 現在の整数値cをゼロに初期化する:
c←0
3. 現在の整数値のために再正規化カウントをゼロに初期化する:
nrenorm←0
4. LPSが発生する前に、mps cmaxの数を測定する:
cmax=(R−1−V)>>s
5. 再正規化が発生する前に、mps cmpsの最大数を測定する:
cmps=1+((R−Rmin)>>s)
6. 全てのMPSが復号化されるまで、繰り返す:
if(cmax>0)then{
if(cmax>cmps)then{
R←R−(cmps<<s)
R←R<<1
bit←ビットストリームから1ビットを読み込む
V←(V<<1)+bit
c←c+cmps
if(nrenorm≧u&&s>smin)then{
s←s−1}
nrenorm=nrenorm+1
}else{
c←c+cmax
R←R−(cmax<<s)}
ステップ4を継続する。]
7. 終了しているLPSを復号化する:
numRenorm=log2(Rmin)−s
V←(V−R+(1<<s))<<numRenorm
bits←ビットストリームから“numRenorm”ビット(複数)を読み込む
V←V+bits
R←Rmin
【0022】
但し、
c 復号化すべき整数値を記述する
cmax LPSが発生するまでに、復号化しうるMPSの数を記述する
cmps 再正規化サイクルが必要とされるまでに、復号化しうるMPSの数を
記述する
Rmin R(2のべき乗であるべき)のための最小限の許容値を記述する
V 現在の部分的な間隔内から値を記述する。
【0023】
一般に、パラメータsのための良好な選択は、log2(R
min)−kであることが判明した。
【0024】
次に、実施例は、最終的な再正規化(終了しているLPSに続くもの)が修正される所が記述される。上述の実施例では、最終的な再正規化は、RをRmin(符号化器におけるステップ5および復号化器におけるステップ7を参照)にセットすることをもたらす。次に符号化または復号化されたビンの後、Rは少なくとも1(MPSまたはLPSのいずれが発生するのとは無関係に)により減少されるので、再正規化はいずれにしても必要とされる。この再正規化は、以下の発明のステップを使用して以前の再正規化と結合されうる。
【0025】
符号化器におけるステップ5は、以下と置き換えられる:
【0026】
5. 終了しているLPSおよびLおよびRの最終的な再正規化を符号化し、ビットを書き込む:
numRenorm=1+log2(Rmin)−s
L←(L+R−(1<<s))<<numRenorm
R←2*(Rmin−1)
“numRenorm”ビットをビットストリームに書き出す
【0027】
復号化器のステップ7は、以下と置き換えられる:
【0028】
7. 終了しているLPSを復号化する:
numRenorm=1+log2(R
min)−s
V←(V−R+(1<<s))<<numRenorm
bits←ビットストリームから“numRenorm”ビットを読み込む
V←V+bits
R←2*(R
min−1)
【0029】
この改良態様は、最終的なLPSの後、再正規化の数を1増やす、そしてその後、RはRmax(Rmaxは、Rがとりうる最大値である)を超過しないものとするため2を減じる。2によるRのこの減算は、(あたかも2に等しいRLPSを有するMPSが符号化されたかのように)僅かなビットレートのオーバーヘッドに対応する。1による再正規化サイクル数の人為的な増加は、余分な計算量を招かずに有利に到達し、保存される。すなわち、この改良態様のない場合と比較して、再正規化は分離して発生する、そして、再正規化のために必要なすべての計算ステップを必要とする。
【0030】
次に、実施例は、Rの値に依存する符号化または復号化手続を実行する前にパラメータuが修正されている所が記載されている。閾値R
thrは、定義されて、uが1により増加されるべきか否かを決定するために使用される。符号化器および復号化器において、ステップ1より前に、次のステップが、実行される:
【0031】
ステップ0: if(R<R
thr)then{
u←u+1}
【0032】
これは、Rが閾値Rthr以下である場合、1つの再正規化サイクルによりsを減少させるプロセスを遅延させることに対応する。従って、Rminの近くのRの値のために、sが非常に早く減少されることは、有利に回避される。非負整数値を符号化あるいは復号化し始めた時点で、RはRminに等しくかつRはRmaxに等しく、かつu=0の2つの極端な場合を想像されたい。RがRminに等しい場合には、第1のMPSの直後に、再正規化が誘発され、sが1により減じられる。これは、1が減じられたsを最初に使用した後に、全てのMPSの符号化をもたらす。RがRminの代わりに(偶然に)Rmaxに等しくない場合、多くのMPSは、第1の再正規化サイクルの前に符号化され、その際、sは初めて1減少した。本実施例の技術を用いて、sの最初の変更の前に、MPSの平均数は、増加する。
【0033】
次に、最大値c
mが非負整数のために定義される実施例が記載されている。cがc
mに等しい場合、最終的なLPSは、符号化されないかまたは復号化されない。これは、切頂した(trancated)単項表現に対応する。符号化器において、当初に符号化されるべき非負整数値がc
mに等しい場合、ステップ5は、スキップされることを必要とする。復号化器において、c(ステップ7が始まる時刻に)がc
mに等しい場合には、ステップ7はスキップされることを必要とされ、さらに、ステップ4は、以下と置き換えられる:
【0034】
4. LPSが発生する前に、mps c
maxの数を測定:
c
max=(R−1−V)>>s
if(c+c
max>c
m)then{
c
max←c
m−c}
【0035】
好ましい実施例において、前記実施例は、現在のHEVC(High Efficiency Video Coding)変換係数符号化部において使用されているように、ゴロム−ライス符号語および指数ゴロム符号語の連結を置換するために用いうる。この場合、絶対変換係数レベルが2より大きい場合、その値から3を引いた値は、ゴロム−ライス符号および指数ゴロム符号の連結を使用して、二値化され符号化される。本実施例において、この値から3を引いた値は、上記のスキームのいずれかを使用して符号化される。R
MINは、この例で256にセットされうる。HEVCにおける2以上の各絶対変換係数レベルのために導出された2つのパラメータは、ゴロム−ライス符号語がいかなる値で終了されるかについて決定するゴロム−ライスパラメータkおよび指数ゴロム符号語が追加されるカットオフ値wである。現在の実施例において、上記スキームは、3のみに等しいkを有する変換係数のために用いられ、そして、この場合、sは、5にセットされうる、そして、n
renormは、0にセットされうる。
【0036】
符号化変換係数レベル、すなわち量子化変換係数の量子化レベル、を符号化する際に、前記実施例を使用する、今述べた可能性を示すために、図面が参照される。しかしながら、これより前に、前記実施例は、符号なし整数値の他の種類にも変換可能な点に注意すべきである。
【0037】
前もって以下でなされる説明は、変換係数が例えば画像の変換ブロックなどの変換ブロックを形成するために二次元に配列されるとして符号化されるものと仮定する。しかしながら、今述べたように、本出願は、画像および/またはビデオ符号化に制限されない。従って、例えば、以下で述べる変換係数は、代りに、例えば音声符号化等で使用する一次元変換の変換係数でありうる。
【0038】
図1〜3は、変換ブロックの変換係数および上述の実施例のいずれかを用いてエントロピー符号化しているその方法の実施例を示す。
【0039】
図1は、変換係数12のブロック10を模範として示す。本実施例において、変換係数は、二次元に配列される。特に、他の二次元配置も可能であるにもかかわらず、同上は列および行に規則的に配列される模範として示される。変換係数12または変換ブロック10につながる変換は、DCTまたは、例えば、画像の(変換)ブロックまたは空間的に配置された値の他のブロックを異なる空間周波数の構成要素へ分解するいくつかの他の変換でもよい。
図1の本実施例において、変換係数12は、異なる空間方向x,y、例えば互いに垂直な方向、に沿って測定される周波数f
x(i),f
y(j)の周波数対(f
x(i),f
y(j))に対応するために列iおよび行jにおいて二次元に配列される。但し、f
x/y(i)<f
x/y(i+1)かつ(i,j)は、変換ブロック10におけるそれぞれの係数の位置である。
【0040】
しばしば、より低い周波数に対応する変換係数12は、より高い周波数に対応する変換係数に比べ、より高い変換係数レベルを有する。従って、しばしば、変換ブロック10の最高周波数成分付近の前記変換係数の多くは、ゼロに量子化されて、符号化される必要がない。従って、スキャン順序14は、変換係数レベルがこの順序に沿って単調減少する傾向が生じうるように、すなわち、係数kの係数レベルが係数k+1の係数レベルより大きいことが生起しうるように、一次元は二次元配列変換係数12(i,j)をある順序で係数の数列、すなわち(i,j)→kに配列する前記変換係数12の中で定義されうる。
【0041】
例えば、ジグザグまたはラスタスキャンが、変換係数12の中で定義されうる。スキャンによれば、ブロック10は、例えば、DC成分変換係数(左上側の係数)から最高周波数変換係数(右下側の係数)に、またはその逆に、対角線形にスキャンされうる。あるいは、ちょうど言及された最大構成要素変換係数間の変換係数の行方向あるいは列方向のスキャンが、使用可能である。
【0042】
さらに後述するように、変換ブロックを符号化する際に、スキャン順序14における最後の非零変換係数Lの位置が、ビットストリーム中へ最初に符号化されうる。その際、スキャン経路14に沿ってDC変換係数から最後の非零変換係数Lまで変換係数を単に符号化することは、その方向に、または、その反対方向において任意になしうる。
【0043】
変換係数12は、符号付きの、または符号なしの変換係数レベルを有する。例えば、変換係数12は、各々それぞれの変換係数レベルと関連している一組の可能な量子化値上へ、後の量子化を有する前述の変換により得ることができた。変換係数を量子化する、すなわち変換係数を変換係数レベルにマップするために用いる量子化機能は、線形でもよく、非線形でもよい。換言すれば、各変換係数12は、可能なレベルの間隔の範囲外に、変換係数レベルを有する。
図2は、例えば、変換係数レベルxがレベル[0、2
N-1]の範囲内で定義される例を示す。別の実施例によれば、間隔範囲の上限は、存在しえない。さらに、
図2は、同上が、符号が付されうるにもかかわらず、正変換係数レベルのみを示す。変換係数12の符号およびそれらの符号化に関し、これらの符号の符号化に関し異なる可能性が存在する点に留意すべきである、そして、これらの可能性の全ては、実施例の範囲内である。
図2に関し、これは、変換係数レベルの範囲間隔の下限が存在しえないことを意味する。
【0044】
いずれにせよ、変換係数12の変換係数レベルを符号化するために、異なる二値化スキームが、範囲間隔20の異なる部分または間隔16,18をカバーするために使用しうる。より正確に言えば、第1のレベル間隔16内の変換係数レベルは、第1のレベル間隔16の最大レベルに等しいものを除き、単に第1の二値化スキームに従う一つ以上の一連のビン上に二値化されうる。しかしながら、第2のレベル間隔18内に存在している変換係数レベルは、第1および第2の二値化スキームのビンセットの組合せ上にマップされる。
【0045】
図2に示すように、第2のレベル間隔18は、第1のレベル間隔16より上側に位置するが、第1のレベル間隔16の最大レベルで後者とオーバーラップする、そして、それは
図2の実施例の2である。第2のレベル間隔18の範囲内に存在している変換係数レベルのために、それぞれのレベルは、第1の二値化スキームに従う第1のレベル間隔の最大レベルに対応する第1のビンセットの組合せ上にマップされる、そして、第2のビンセットは、第2の二値化スキームに従う第2のレベル間隔18内の変換係数レベルの位置に依存する。
【0046】
換言すれば、第1のシンボライズスキーム16は、第1のレベル間隔16によりカバーされるレベルを一組の第1のビンシーケンス上にマップする。第1の二値化スキームのビンシーケンスの一組の中のビンシーケンスの長さが、単に2つの変換係数レベル、例えば0および1、をカバーしているだけの第1のレベル間隔16の場合には、1つの二値シンボルだけでさえあってもよい点に注意されたい。本出願の実施例によれば、第1の二値化スキームは、間隔16においてレベルを切頂した単項二値化である。
【0047】
第2の二値化スキームは、様々な長さの第2のビンシーケンスの一組の上に、第2のレベル間隔18の範囲内で、レベルをマップする。特に、第2の二値化スキームは、間隔18の範囲内のレベル、すなわちx、−第1の間隔の最大レベル、の範囲内でアルファベットとしてMPSおよびLPSを使用している二値の単項二値化、または、切頂された単項二値化上にレベルをマップしうる。
【0048】
後者の二値化のビン文字列は、それから上記の実施例のいずれかに従って符号化されうる。
【0049】
図3に示すように、変換係数は、概して特定の変換係数レベルの発生の特定の統計または確率を示す。
図3は、各可能な変換係数レベルxにそれぞれの変換係数レベルが問題の変換係数により現実に仮定されている確率を関連付けているグラフを示す。より正確に言えば、すなわち異なるコンテキストの2つの係数のために、
図3は、2つのこの種の関連または確率曲線を示す。すなわち、
図3は、変換係数が、例えば、隣接する変換係数の変換係数値により決定される等、それらのコンテキストに従って区別されるべきと仮定する。コンテキストに応じて、
図3は、確率値を各変換係数レベルと関連させる確率曲線が、問題の変換係数のコンテキストに依存しうることを示す。
【0050】
実施例によれば、第1の二値化スキーム16のビンシーケンスのビンは、コンテキスト適応法でエントロピー符号化される。すなわち、コンテキストは、ビンと関係している、そして、選択されたコンテキストと関連付けられたアルファベット確率分布が、それぞれのビンをエントロピー符号化するために使用される。第2のシンボライゼーションスキーム、すなわち、MPSまたはLPS、のビンシーケンスのビンは、前記実施例に従ってデータストリームに挿入される。
【0051】
この測定により、第1の二値化スキームのシンボルをエントロピー符号化するのに使用するコンテキストは、実際のアルファベット(ビン)統計への推定二値確率分布の良好な適応を可能にするため、適切に選択されうる。すなわち、このコンテキストを有するビンが符号化/復号化されるときはいつでも、エントロピー符号化スキームは、コンテキストのアルファベット確率分布の現在の評価を更新するよう構成でき、それにより、実際のビン統計に近づく。コンテキストが適切に選択される場合、近似はより高速であり、それは、十分に精密である、しかし、ある特定のコンテキストを有するビンの非常に低頻度の接続を避けるために、多すぎる異なるコンテキストを有さない。コンテキストは、
図1に示された例の近隣のテンプレート22における以前に符号化/復号化された変換係数(おそらく単に間隔16の中で含まれるものとしてのみ)に基づいて決定されうる。
【0052】
同様に、前記実施例において、前記第2の間隔の範囲内で可能な限り近づけて前記実際のアルファベット統計に近似するため、R
LPSすなわちs(および任意のuおよび/またはR
thr)は、それに応じてセットされうる。例えば、同上は、コンテキストより、すなわち、近隣の変換係数レベルの前記値より、可変あるいは決定される。決定は、以前に符号化/復号化された係数、例えばテンプレート22または近隣の変換係数位置を集めたいくつかの他のテンプレートにおけるもの等、に関し、第2の間隔18の範囲内で確率曲線の依存性の相関に密接に対応すべきである。
【0053】
すなわち、
図1〜3によれば、変換係数の前記符号化上で算術符号化のために前記実施例を適用する際に、符号化器は、以下のように構成されうる。
【0054】
1回以上のセパレートスキャンにおいて、−全ての係数の第1のビンための1つ、0を越える全ての係数の前記第2のビンのための1つ、および、例えば、1を越える全ての係数の第3のビンのための1つ−、スキャンパス14に沿って、xまたはk(より小さいものは何でも)の第1の二値化の前記ビン、但し、kは2でありうる、をコンテキスト適応二値化算術符号化する;そうする際に、コンテキストは、近隣、すなわち、係数レベルからまたは既に符号化された隣接する係数位置22の第1の二値化ビンから導出されうる;コンテキスト適応性は、同じコンテキストの既に符号化されたビンに基づき算術符号化において使用されたR
LPSのための確率評価の更新を含みうる:異なるコンテキストは、異なるサイズの伝送ブロックのためにおよび同じ伝送ブロックの異なるエリアのために使用されうる。そして
【0055】
セパレートスキャンにおいて、k以上の全ての係数のために、スキャンパス14に沿って、前記実施例に従って、x−kを二値算術符号化する。
【0056】
すなわち、
図1〜3によれば、変換係数の前記符号化上で算数符号化のために前記実施例を適用する際に、復号化器は、以下のように構成されうる。
【0057】
1回以上のセパレートスキャンにおいて、−全ての係数の第1のビンのための1つ、0を越える全ての係数の第2のビンのための1つ、および、例えば、1を越える全ての係数の第3のビンのための1つ−、スキャンパス14に沿って、xまたはk(より小さいものは何でも)の第1の二値化のビン、但しkは2でありうる、をコンテキスト適応二値算術復号化する;そうする際に、コンテキストは、近隣、すなわち、係数レベルからまたは既に符号化されたように隣接する係数位置22の第1の二値化ビンから導出されうる;コンテキスト適応性は、同じコンテキストの既に符号化されたビンに基づき算術符号化において使用されたR
LPSのための確率評価の更新を含みうる;異なるコンテキストは、異なるサイズの伝送ブロックのためにおよび同じ伝送ブロックの異なるエリアのために使用されうる。
【0058】
セパレートスキャンにおいて、−k以上の全ての係数のために、−スキャンパス14に沿って、上記実施例に従って、x−kを二値算術復号する。それにより、cを得るとともに、xをc+kとして再構成する。
【0059】
スキャン方向、即ち、DCから最大周波数までおよびその逆は、スキャンごとに変化しうる。
【0060】
また、第1の二値化は、代わりにスキップによりなしうる、そのとき、係数レベルは、cとして直接に使用され、かつ、上記実施例を使用して符号化/復号化されるであろう。
【0061】
当然ながら、上述の符号化非負整数値は、別々にまたは算術符号化スキームにおいて符号化されうる対応する符号フラグとともに上述の方法における非負値において、両者の符号化により一般的整数値の表現の符号化とともに達成するために、符号フラグにより拡張されうる。
【0062】
いくつかの態様が、装置との関連で記述されていたにもかかわらず、これらの態様も対応する方法の説明を表すことは明らかであり、そこでは、ブロックまたは装置は、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップとの関連で記載されている態様も、対応する装置の対応するブロックまたは項目または特徴の説明を表す。方法ステップの一部または全部は、例えばマイクロプロセッサ、プログラム可能なコンピュータまたは電子回路などのハードウエア装置(を用いること)により実行しうる。いくつかの実施形態では、最も重要な方法ステップの一つまたはそれ以上のいくつかは、この種の装置により実行しうる。
【0063】
特定の実施要件により、本発明の実施例は、ハードウエアにおいて、または、ソフトウエアにおいて実施しうる。実施は、その上に格納される電子的に読み込み可能な制御信号を有するディジタル記憶媒体、例えばフロッピー(登録商標)ディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリ、を使用して実行し得る、そして、それぞれの方法が実行されるように、それはプログラム可能なコンピュータシステムと協働する(または協働しうる)。従って、ディジタル記憶媒体は、計算機可読でもよい。
【0064】
本発明によるいくつかの実施例は、電子的に読み込み可能な制御信号を有するデータ記憶媒体からなる、そしてそれは、本願明細書において記載されている方法のうちの1つが実行しうるように、プログラム可能なコンピュータシステムと協働しうる。
【0065】
一般に、本発明の実施例は、プログラムコードを有するコンピュータプログラム製品として実施しうる、そして、コンピュータプログラム製品がコンピュータで動くときに、プログラムコードが方法のうちの1つを実行するために作動している。プログラムコードは、機械読み取り可能な担体に例えば格納しうる。
【0066】
他の実施例は、本願明細書において記載されていて、機械読み取り可能な担体に格納される方法のうちの1つを実行するためのコンピュータプログラムからなる。
【0067】
換言すれば、本発明の方法の実施例は、従って、コンピュータプログラムがコンピュータで動くとき、本願明細書において記載されている方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0068】
本発明の方法の更なる実施例は、従って、その上に記録された、本願明細書において記載されている方法のうちの1つを実行するためのコンピュータプログラムを含むデータ担体(またはディジタル記憶媒体またはコンピュータ可読媒体)である。データ担体、ディジタル記憶媒体または記録媒体は、一般的に有形および/または非遷移的である。
【0069】
本発明の方法の更なる実施例は、従って、本願明細書において記載されている方法のうちの1つを実行するためのコンピュータプログラムを表しているデータストリームまたは一連の信号である。データストリームまたは一連の信号は、データ通信接続、例えばインターネットを経て、転送されるように例えば構成しうる。
【0070】
更なる実施例は、本願明細書において記述された方法の1つを実行するように構成あるいは適合された処理手段、例えばコンピュータ、あるいはプログラム可能な論理装置を含む。
【0071】
更なる実施例は、本願明細書において記載されていた方法の1つを実行するためのコンピュータプログラムをその上にインストールしているコンピュータを含む。
【0072】
本発明の更なる実施例は、本願明細書において記載された方法の1つを実行するためのコンピュータプログラムをレシーバに転送する(例えば電子的あるいは光学的に)ように構成された装置あるいはシステムを備える。レシーバは、例えば、コンピュータ、モバイル装置、メモリ装置等でありうる。前記装置またはシステムは、例えば、コンピュータプログラムをレシーバに転送するファイルサーバを含みうる。
【0073】
いくつかの実施形態では、プログラム可能な論理装置(例えばフィールドプログラム可能なゲートアレイ)は、本願明細書において記載されている方法の機能のいくつかまたは全てを実行するために用いうる。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本願明細書において記載されている方法の1つを実行するために、マイクロプロセッサと協働しうる。一般的に、方法は、いかなるハードウエア装置によっても好ましくは実行される。
【0074】
上記した実施例は、本発明の原理のための、単なる実例である。改良および配置の変化および本願明細書において記載されている詳細は、他の当業者にとって明らかであるものと理解される。従って、最新の特許クレームの範囲のみにより制限され、そして、本願明細書および実施例の説明を通じて示される具体的な詳細だけにより制限されないことが、意図である。