JP2013051721A - 確率推定のための状態マシンを生成する方法、算術エンコーダ、算術デコーダ、及び、復号方法 - Google Patents
確率推定のための状態マシンを生成する方法、算術エンコーダ、算術デコーダ、及び、復号方法 Download PDFInfo
- Publication number
- JP2013051721A JP2013051721A JP2012235859A JP2012235859A JP2013051721A JP 2013051721 A JP2013051721 A JP 2013051721A JP 2012235859 A JP2012235859 A JP 2012235859A JP 2012235859 A JP2012235859 A JP 2012235859A JP 2013051721 A JP2013051721 A JP 2013051721A
- Authority
- JP
- Japan
- Prior art keywords
- state
- probability
- value
- current state
- lps
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 137
- 230000007704 transition Effects 0.000 claims abstract description 24
- 230000003044 adaptive effect Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 10
- 230000006978 adaptation Effects 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 199
- 230000008569 process Effects 0.000 description 80
- 238000010586 diagram Methods 0.000 description 31
- 239000011800 void material Substances 0.000 description 14
- 238000012360 testing method Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 10
- 238000007906 compression Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 230000003247 decreasing effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000011010 flushing procedure Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Error Detection And Correction (AREA)
Abstract
【解決手段】確率推定用の状態マシンを生成する方法(a)所与の状態の番号をiとし、かつ、適応レートが1より小さいとする場合に、LUTの状態の各状態iに対する確率を、LPSの最大確率に適応レートのi乗を乗算した値に等しくセットし、(b)MPS及びLPSを観察し、遷移れるべきLUTの状態に対して状態遷移を発生する。複数の状態に対しLPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、現在の状態の番号+log((現在の状態の確率*適応レート+(1−適応レート))/現在の状態の確率)/log(適応レート)の計算結果が丸められた値である。
【選択図】図16A
Description
現在の状態の番号+log((現在状の態の確率*適応レート+(1−適応レート))/現在の状態の確率)/log(適応レート)
の計算結果が丸められた値となる。
e≦αB+βS
ここで、eは、情報ビット(又は他のエレメント)のシーケンスで表わされたイベントの数であり、Bは、情報ビット(又は他のエレメント)のシーケンスにおける情報ビットの数であり、Sは、イベントシーケンスで表わされたセグメント(例えばマクロブロック)の数である。また、α及びβは、カウンタへの減少値を表しており、生成される情報ビットの数及び処理されるセグメントの数に対するイベントシーケンスのイベント数の制約を実質的に維持する。
[0128] 図16A及び16Bにおける状態マシンを構成するためのプロセスの一例をCコードで以下に示す。
C-code:
#define N b4
#define Pmax 0.5
#define Pmin 0.01875
#define regsize 9
#define ONE(1<<regsize)
double alpha;
double sum;
int i,j;
double q;
float prob64[N];
intnext_state_MPS_64[N];
intnext_state_LPS_64[N];
int switch_MPS_64[N];
int gLPS[N][4] ;
alpha=pow(Pmin/Pmax,1.0/(N-1));
sum=0.5;
for(i=0; i<N; i++){
prob64[i]=Pmax*pow(alpha,i);
next_state_MPS_64[i]=(i==N-1)?N-1:i+1;
q=prob64[i]*alpha+(1-alpha);
q=q/prob64[i];
q=-log(q)/log(alpha);
sum+=q;
k=(int)(sum);
sum-=k;
next_state_LPS_64[i]=(i-k<0)?O:i-k;
for(j=0; j<4; j++){
RTAB[i][j]=(int)(ONE/8*prob64[i]/log((j+5.0)/(j+4.0))+0.5);
if(j == 0 && RTAB[i][j] > ONE/4)
RTAB[i][j]=ONE/4;
}
}
(a)p(LPS) <-- p(LPS)*alpha、MPSが観察される場合
(b)p(LPS) <--p(LPS)*alpha+(1−alpha)、その他の場合
ここで、alphaは、適応レートを定める。alphaは、通常、0.9から1の範囲であるが、所望の適応に基づいて他の範囲内へ広がってもよく、又は他の範囲内にあってもよい。
Encoder:
void start_encode() {
encode_slice_header();
while (!byte_aligned)
send_bit(0);
R=0x1fe;
L=O;
BO=0;
FB=1;
}
void finish_encode() {
R=2;
renorm_encode();
bit_plus_follow((L >> 9) & 1);
send_bit((L >> 8) & 1);
send_bit(1); // stop_bit
while (!byte_aligned())
send_bit(0); // alignment_bit
}
voidbit_plus_follow(int b) {
if (FB == 1)
FB = 0;
else
send_bit(b);
while (BO > 0) {
BO--;
send_bit(!b);
}
}
void encode_renorm() {
while (!(R&0x100) {
if (L+R < 0x200)
bit_plus_follow(0);
else if (L >= 0x200) {
bit_plus_follow(1);
L -= 0x200;
}
else {
BO++;
L -= 0x100;
}
R <<= 1;
L <<= 1;
}
}
void encode_event(intctx, int b) {
rLPS = table[state[ctx]][(R>>6)-4];
R -= rLPS;
if (b == MPS[state[ctx]])
state[ctx] = next_state_MPS[state[ctx]];
else {
L += R;
R = rLPS;
if (state[ctx] == 0)
MPS[state[ctx]] = !MPS[state[ctx]];
state[ctx] = next_state_LPS[state[ctx]];
}
encode_renorm();
}
voidencode_equiprob_event(int b) {
L <<= 1;
if (b)
L+=R;
if (L+R < 0x400)
bit_plus_follow(0);
else if (L >= 0x400) {
bit_plus_follow(1);
L -= 0x400;
}
else {
BO++;
L -= 0x200;
}
}
void encode_end_of_slice_flag(intb) {
if (b == O) {
R-=2;
L+=2;
encode_renorm();
}
}
Decoder (bytebased):
void start_decode() {
decode_slice_header();
while (!byte_aligned())
get_bit();
R = 0xff80;
V = get_byte() << 8;
V |= get_byte();
B = 7;
}
void finish_decode() {
while (more_bytes_in_slice())
get_byte(); // stuffing byte
}
void decode_renorm() {
while (R<0x8000) {
R <<= 1;
V <<= 1;
B--;
if (B<0) {
B= 7;
V |= get_byte();
}
}
}
int decode_equiprob() {
V = (V<<1);
B--;
if (B<0) {
V |= get_byte();
B = 7;
}
if (V >= R) {
V -= R;
bit = 1;
}
else
bit = 0;
return bit;
}
int decode_event(intctx) {
rLPS =table[state[ctx]][(R>>13)-4]<<7;
R -= rLPS;
if (V < R) {
state[ctx] = next_state_MPS[state[ctx]];
bit = MPS[state[ctx]];
}
else {
bit = !MPS[state[ctx]];
V -= R;
R = rLPS;
if (state[ctx] == 0)
MPS[state[ctx]] = !MPS[state[ctx]];
state[ctx] = next_state_LPS[state[ctx]];
}
decode_renorm();
return bit;
}
intdecode_end_of_slice_flag() {
if (V < 0x100)
bit = 1;
else {
bit = 0;
R-=0x100;
V-=0x100;
decode_renorm();
}
return bit;
}
Alternative byte-basedend of slice decoding for use when the MPS/LPS convention is switched(MPS/LPSの規定が切り替えられるときに使用される、代替のバイトベースのスライス終了ラグの復号)
intdecode_end_of_slice_flag(){
R -= 0x100;
if (V >= R)
bit = 1;
else {
bit = 0
decode_renorm();
}
return bit;
}
Decoder (bit based):
void start_decode() {
decode_slice_header();
while (!byte_aligned())
get_bit();
R = 0x1fe;
V = 0;
for (i=0; i<9; i++)
V = (V<<1) | get_bit();
}
void finish_decode() {
while (!byte_aligned())
get_bit(); // alignement bit
while (more_bytes_in_slice())
get_byte(); // stuffing byte
}
int decode_renorm() {
while (R<0x100) {
R <<= 1;
V = (V<<1)|get_bit();
}
}
int decode_equiprob() {
V = (V<<1) | get_bit();
if (V >= R) {
V -=R;
bit = 1;
}
else
bit = 0;
return bit;
}
int decode_event(intctx) {
rLPS = table[state[ctx]][(R>>6)-4];
R -= rLPS;
if (V < R) {
state[ctx] = next_state_MPS[state[ctx]];
bit = MPS[state[ctx]];
}
else {
bit = !MPS[state[ctx]];
V -= R; R = rLPS;
if (state[ctx] == 0)
MPS[state[ctx]] = !MPS[state[ctx]];
state[ctx] = next_state_LPS[state[ctx]];
}
decode_renorm();
return bit;
}
intdecode_end_of_slice_flag() {
if (V < 2)
bit = 1;
else {
bit = 0;
R-=2;
V-=2;
decode_renorm();
}
return bit;
}
Alternative bit-basedend_of_slice flag decoding for use when the MPS/LPS convention is switched(MPS/LPSの規定が切り替えられるときに使用される、代替のビットベースのスライス終了フラグの復号)
intdecode_end_of_slice_flag(){
R -= 2;
if (V >= R)
bit = 1
else {
bit = 0;
decode_renorm();
}
return bit;
}
void start_encode() {
send_NAL_first_byte();
encode_slice_header();
while (!byte_aligned())
send_bit(0);
R = 0x1fe; // range
L = 0; // low
BO = 0; // bits outstanding
C = 0; // event counter
FB = 1; // first bit flag
}
void finish_encode() {
bit_plus_follow((L >> 9) & 1);
for (i=8; i>=1; i--)
send_bit((L >> i) & 1);
send_bit(1); // stop_bit
while (!byte_aligned())
send_bit(0); // alignment bit
RBSP_to_EBSP();
S = min_bytes(C,number_of_macroblocks_in_slice);
while (S > bytes_in_NAL_unit())
send_three_bytes(Ox000003); // write bytesdirectly into
NAL unit
}
voidbit_plus_follow(int b) {
if (FB == 1)
FB = 0;
else
send_bit(b);
while (BO > 0) {
BO--;
send_bit(!b);
}
}
void encode_renorm() {
while (!(R&0x100) {
if (L+R < 0x200)
bit_plus_follow(0);
else if (L >= 0x200) {
bit_plus_follow(1);
L -= 0x200;
}
else {
BO++;
L -= 0x100;
}
R <<= 1;
L <<= 1;
}
}
void encode_event(intctx, int b) {
rLPS = table[state[ctx]][(R>>6)-4];
R -= rLPS;
if (b == MPS[state[ctx]])
state[ctx] = next_state_MPS[state[ctx]];
else {
L += R;
R = rLPS;
if (state[ctx] == 0)
MPS[state[ctx]] = !MPS[state[ctx]];
state[ctx] = next_state_LPS[state[ctx]];
}
encode_renorm();
C++;
}
voidencode_equiprob_event(int b) {
L <<= 1;
if (b)
L += R;
if (L+R < 0x400)
bit_plus_follow(0);
else if (L >= 0x400) {
bit_plus_follow(1);
L -= 0x400;
}
else {
BO++;
L -= 0x200;
}
C++;
}
voidencode_end_of_slice_flag(int b) {
if (b == 0) {
R-=2;
L+=2;
encode_renorm();
}
}
Claims (25)
- 確率推定のための状態マシンを生成する方法であって、
ルックアップテーブル(LUT)の状態に確率を割り当てるステップであって、所与の状態の番号をiとし、かつ、適応レートが1より小さいとする場合に、前記状態の各状態iに対する確率を、LPSの最大確率に適応レートのi乗を乗算した値に等しくセットする処理を含むステップと、
MPS及びLPSを観察し、遷移れるべきLUTの状態に対して状態遷移を発生するステップであって、MPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、当該現在の状態が最も高い状態でない場合には、当該現在の状態より高い次の状態であり、当該現在の状態が最も高い状態である場合には当該現在の状態であり、更に、複数の状態に対しLPSが観察されたときに当該現在の状態から状態マシンが遷移する次の状態が、
現在の状態の番号+log((現在の状態の確率*適応レート+(1−適応レート))/現在の状態の確率)/log(適応レート)
の計算結果が丸められた値である、ステップと、
を含む方法。 - 前記結果の丸められた値は、LPSが観察されて次の状態を発生するときに導入される丸めが平均で実質的にゼロとなるようになっている、請求項1に記載の方法。
- 前記LUTは、各状態に関連付けられた複数の値を有し、該複数の値の各々は、予想されるインターバルレンジに前記状態に関連した確率を乗算した積に近似する、請求項1に記載の方法。
- 状態に関連付けられた値は、配列における列のインデックスをjとし、当該配列における列の数をMとし、定数をNとする場合に、N/(2*M*log((j+M+1)/(j+M)))と状態に関連付けられた確率との積を整数に丸めることによって得られる、請求項3に記載の方法。
- 前記複数の状態の少なくとも一つに対する前記複数の値の少なくとも一つは、所定値に切り取られる、請求項3に記載の方法。
- 前記所定値は、MPSの符号化中に再正規化を多くて1回繰り返せるようにする、請求項5に記載の方法。
- 前記LUTにおける状態の数は、63であり、
前記適応レートは、0.5/0.01875の1.0/63乗であり、
LPSの最高確率は、0.5であり、
前記配列における列の数は、4であり、
前記配列の第1列における値は、N/4に切り取られる、
請求項4に記載の方法。 - 前記定数Nは、512である、請求項7に記載の方法。
- イベントシーケンスの各イベントが個別の値を有する確率推定値を発生するための確率推定器と、
前記確率推定器に接続され、各イベント及び対応の確率推定値に応じて情報シーケンスのゼロ以上のビットを生成する符号化エンジンと、
を備え、
前記確率推定器は、前記各イベントに対応するコンテクスト情報に応じて、確率推定状態マシンを使用して前記確率推定値を発生し、
前記確率推定状態マシンは、
所与の状態の番号をiとし、適応レートが1より小さい場合に、各状態iに対する確率を、LPSの最大確率に適応レートのi乗を乗算した値に等しくセットして、ルックアップテーブル(LUT)の状態に確率を割り当て、
MPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、当該現在の状態が最も高い状態でない場合には当該現在の状態より高い次の状態となり、当該現在の状態が最も高い状態である場合には当該現在の状態となり、更に、複数の状態に対しLPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、
現在の状態の番号+log((現在の状態の確率*適応レート+(1−適応レート))/現在の状態の確率)/log(適応レート)
の計算結果が丸められた値となるように、MPS及びLPSを観察して、遷移されるべきLUTの状態に対して状態遷移を発生する
ことによって生成される、算術エンコーダ。 - 前記結果の丸められた値は、LPSが観察されて次の状態を発生するときに導入される丸めが平均で実質的にゼロとなるようになっている、請求項9に記載の算術エンコーダ。
- 前記LUTは、各算術エンコーダに関連付けられた複数の値を有し、該複数の値の各々は、予想されるインターバルレンジに、前記状態に関連した確率を乗算した積に近似する、請求項9に記載の算術エンコーダ。
- 状態に関連した値は、配列における列インデックスをjとし、当該配列における列の数をMとし、定数をNとした場合、N/(2*M*log((j+M+1)/(j+M)))と状態に関連付けられた確率との積を整数へと丸めることによって得られる、請求項11に記載の算術エンコーダ。
- 前記複数の状態の少なくとも一つに対する前記複数の値の少なくとも一つは、ある数に切り取られる、請求項11に記載の算術エンコーダ。
- 前記数は、MPSの符号化中に再正規化を多くて1回繰り返せるようにする、請求項13に記載の算術エンコーダ。
- 前記LUTにおける状態の数は、63であり、
前記適応レートは、0.5/0.01875の1.0/63乗であり、
LPSの最高確率は、0.5であり、
前記配列における列の数は、4であり、
前記配列の第1列における値は、N/4に切り取られる、
請求項12に記載の算術エンコーダ。 - 前記定数Nは、512である、請求項15に記載の算術エンコーダ。
- イベントシーケンスのイベントが個別の値を有する確率推定値を生成する確率推定器と、
前記確率推定器に接続され、対応する確率推定値及び情報シーケンスに応じてイベントシーケンスのイベントを生成するための復号エンジンと、を備え、
前記確率推定器は、前記イベントシーケンスの前記イベントに対応するコンテクスト情報に応じて、確率推定状態マシンを使用して前記確率推定値を生成し、
前記確率推定状態マシンは、
所与の状態の番号をiとし、適応レートが1より小さいとする場合に、各状態iに対する確率を、LPSの最大確率に適応レートのi乗を乗算した値に等しくセットして、ルックアップテーブル(LUT)の状態に確率を割り当て、
MPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、当該現在の状態が最も高い状態でない場合には当該現在の状態より高い次の状態となり、当該現在の状態が最も高い状態である場合には当該現在の状態となり、更に、複数の状態に対しLPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、
現在の状態の番号+log((現在の状態の確率*適応レート+(1−適応レート))/現在の状態の確率)/log(適応レート)
の計算結果が丸められた値となるように、MPS及びLPSを観察して、遷移されるべきLUTの状態に対する状態遷移を発生することによって生成される、算術デコーダ。 - 前記結果の丸められた値は、LPSが観察されて次の状態を発生するときに導入される丸めが平均で実質的にゼロとなるようになっている、請求項17に記載の算術デコーダ。
- 前記LUTは、各算術エンコーダに関連付けられた複数の値を有し、該複数の値の各々は、予想されるインターバルレンジに、前記状態に関連付けられた確率を乗算した積に近似する、請求項17に記載の算術デコーダ。
- 状態に関連した値は、配列における列インデックスをjとし、配列における列の数をMとし、定数をNとすれば、N/(2*M*log((j+M+1)/(j+M)))と状態に関連した確率との積を整数へと丸めることによって得られる、請求項19に記載の算術デコーダ。
- 前記複数の状態の少なくとも一つに対する前記複数の値の少なくとも一つは、ある数に切り取られる、請求項19に記載の算術デコーダ。
- 前記数は、MPSの符号化中に再正規化を多くて1回繰り返せるようにする、請求項21に記載の算術デコーダ。
- 前記LUTにおける状態の数は、63であり、
前記適応レートは、0.5/0.01875の1.0/63乗であり、
LPSの最高確率は、0.5であり、
前記配列における列の数は、4であり、
前記配列の第1列における値は、N/4に切り取られる、
請求項20に記載の算術デコーダ。 - 前記定数Nは、512である、請求項23に記載の算術デコーダ。
- イベントシーケンスのイベントが個別の値を有する確率推定値を生成するステップであって、前記確率推定値は、前記イベントシーケンスの各イベントに対応するコンテクスト情報に応じて、確率推定状態マシンを使用して生成される、ステップと、
対応する確率推定値及び情報シーケンスに応答してイベントシーケンスのイベントを生成するステップと、を含み、
前記確率推定状態マシンは、
所与の状態の番号をiとし、適応レートが1より小さいとする場合に、各状態iに対する確率を、LPSの最大確率に適応レートのi乗を乗算した値に等しくセットして、ルックアップテーブル(LUT)の状態に確率を割り当て、
MPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、当該現在の状態が最も高い状態でない場合には当該現在の状態より高い次の状態となり、当該現在の状態が最も高い状態である場合には当該現在の状態となり、更に、複数の状態に対しLPSが観察されたときに現在の状態から状態マシンが遷移する次の状態が、
現在の状態の番号+log((現在の状態の確率*適応レート+(1−適応レート))/現在の状態の確率)/log(適応レート)
の計算の結果が丸められた値になるように、MPS及びLPSを観察して遷移されるべきLUTの状態に対する状態遷移を発生することによって、生成される、復号方法。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US41224502P | 2002-09-20 | 2002-09-20 | |
US60/412,245 | 2002-09-20 | ||
US41599902P | 2002-10-04 | 2002-10-04 | |
US60/415,999 | 2002-10-04 | ||
US10/665,638 US6825782B2 (en) | 2002-09-20 | 2003-09-18 | Method and apparatus for arithmetic coding and termination |
US10/666,687 | 2003-09-18 | ||
US10/666,687 US6850175B1 (en) | 2003-09-18 | 2003-09-18 | Method and apparatus for arithmetic coding |
US10/665,638 | 2003-09-18 | ||
US10/666,798 US6906647B2 (en) | 2002-09-20 | 2003-09-18 | Method and apparatus for arithmetic coding, including probability estimation state table creation |
US10/666,798 | 2003-09-18 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011248692A Division JP5138805B2 (ja) | 2002-09-20 | 2011-11-14 | 算術符号化方法及び算術符号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013051721A true JP2013051721A (ja) | 2013-03-14 |
JP5390004B2 JP5390004B2 (ja) | 2014-01-15 |
Family
ID=32034482
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004568951A Expired - Lifetime JP4391425B2 (ja) | 2002-09-20 | 2003-09-19 | 算術符号化方法及び算術符号化装置 |
JP2009089108A Pending JP2009207156A (ja) | 2002-09-20 | 2009-04-01 | 算術符号化方法及び算術符号化装置 |
JP2011248692A Expired - Lifetime JP5138805B2 (ja) | 2002-09-20 | 2011-11-14 | 算術符号化方法及び算術符号化装置 |
JP2011248684A Expired - Lifetime JP5122677B2 (ja) | 2002-09-20 | 2011-11-14 | 算術符号化方法及び算術符号化装置 |
JP2012235859A Expired - Lifetime JP5390004B2 (ja) | 2002-09-20 | 2012-10-25 | 確率推定のための状態マシンを生成する方法、算術エンコーダ、算術デコーダ、及び、復号方法 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004568951A Expired - Lifetime JP4391425B2 (ja) | 2002-09-20 | 2003-09-19 | 算術符号化方法及び算術符号化装置 |
JP2009089108A Pending JP2009207156A (ja) | 2002-09-20 | 2009-04-01 | 算術符号化方法及び算術符号化装置 |
JP2011248692A Expired - Lifetime JP5138805B2 (ja) | 2002-09-20 | 2011-11-14 | 算術符号化方法及び算術符号化装置 |
JP2011248684A Expired - Lifetime JP5122677B2 (ja) | 2002-09-20 | 2011-11-14 | 算術符号化方法及び算術符号化装置 |
Country Status (8)
Country | Link |
---|---|
EP (5) | EP3079261B1 (ja) |
JP (5) | JP4391425B2 (ja) |
CN (5) | CN105356887B (ja) |
AU (1) | AU2003299010A1 (ja) |
DK (3) | DK3468045T3 (ja) |
ES (3) | ES2586409T3 (ja) |
PT (3) | PT3468045T (ja) |
WO (1) | WO2004028165A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8170359B2 (en) | 2006-11-28 | 2012-05-01 | Panasonic Corporation | Encoding device and encoding method |
US7839312B2 (en) | 2006-11-30 | 2010-11-23 | Panasonic Corporation | Coder |
JP2009177447A (ja) * | 2008-01-24 | 2009-08-06 | Panasonic Corp | 動画像送受信システム |
EP2315358A1 (en) | 2009-10-09 | 2011-04-27 | Thomson Licensing | Method and device for arithmetic encoding or arithmetic decoding |
JP5961189B2 (ja) * | 2011-01-14 | 2016-08-02 | 株式会社Nttドコモ | 算術符号化及び終了のための方法及び装置 |
WO2012134421A1 (en) * | 2011-03-31 | 2012-10-04 | Thomson Licensing | Techniques for context-adaptive binary data arithmetic coding (cabac) decoding |
US20130279597A1 (en) * | 2012-04-24 | 2013-10-24 | Magnum Semiconductor, Inc. | Apparatuses and methods for bitstream bitstuffing |
EP2915258A4 (en) * | 2012-10-31 | 2016-06-22 | CORRECTION OF COMBINED BLOCK-SYMBOL ERRORS | |
US20150312571A1 (en) * | 2012-11-29 | 2015-10-29 | Lg Electronics Inc. | Method and device for encoding/ decoding image supporting plurality of layers |
GB2513110A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
JP6426212B2 (ja) | 2014-06-29 | 2018-11-21 | エルジー エレクトロニクス インコーポレイティド | 制限されたキャリー演算による算術コーディングを遂行するための方法及び装置 |
WO2016003131A1 (ko) | 2014-06-29 | 2016-01-07 | 엘지전자(주) | 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치 |
CN105472371B (zh) * | 2016-01-13 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 视频码流处理方法和装置 |
EP3602798A1 (en) * | 2017-03-23 | 2020-02-05 | INTEL Corporation | Flexible information block size support for polar code |
CN115623212A (zh) * | 2018-05-10 | 2023-01-17 | 夏普株式会社 | 对比特流进行子划分区间的方法和电子装置 |
CN109672923B (zh) * | 2018-12-17 | 2021-07-02 | 龙迅半导体(合肥)股份有限公司 | 一种数据处理方法和装置 |
GB2585042A (en) * | 2019-06-25 | 2020-12-30 | Sony Corp | Image data encoding and decoding |
CN117579081B (zh) * | 2023-11-23 | 2024-06-21 | 哈尔滨工程大学 | 一种二进制数据无损压缩方法、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05298063A (ja) * | 1992-04-22 | 1993-11-12 | Mitsubishi Electric Corp | 符号化装置 |
JPH05341955A (ja) * | 1992-06-12 | 1993-12-24 | Fujitsu Ltd | データ圧縮および復元方式 |
JPH09130810A (ja) * | 1995-08-31 | 1997-05-16 | Mitsubishi Electric Corp | 符号化・復号化装置及び符号化・復号化方法 |
JPH09148941A (ja) * | 1995-11-24 | 1997-06-06 | Matsushita Graphic Commun Syst Inc | 算術符号化・復号化装置 |
JPH11274938A (ja) * | 1998-03-25 | 1999-10-08 | Mitsubishi Electric Corp | 適応確率推定方法及び適応符号化方法並びに適応復号方法 |
JP2000134479A (ja) * | 1998-10-26 | 2000-05-12 | Nec Corp | 画像信号処理装置 |
JP2002094386A (ja) * | 2000-09-12 | 2002-03-29 | Mitsubishi Electric Corp | 符号化装置、復号装置、符号化方法および復号方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2100202T3 (es) * | 1991-08-28 | 1997-06-16 | Alcatel Bell Nv | Disposicion codificadora. |
KR100261254B1 (ko) * | 1997-04-02 | 2000-07-01 | 윤종용 | 비트율 조절이 가능한 오디오 데이터 부호화/복호화방법 및 장치 |
KR100335611B1 (ko) * | 1997-11-20 | 2002-10-09 | 삼성전자 주식회사 | 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치 |
GB2333412B (en) * | 1998-01-20 | 2002-05-15 | Daewoo Electronics Co Ltd | Context-based arithmetic encoding/decoding apparatus |
CN1174634C (zh) * | 1998-01-26 | 2004-11-03 | 株式会社大宇电子 | 基于上下文的算术编码/解码方法及装置 |
JP4570250B2 (ja) * | 1998-05-27 | 2010-10-27 | マイクロソフト コーポレーション | 信号の量子化変換係数をエントロピーエンコードするシステムと方法 |
US6289129B1 (en) * | 1998-06-19 | 2001-09-11 | Motorola, Inc. | Video rate buffer for use with push dataflow |
US6195026B1 (en) * | 1998-09-14 | 2001-02-27 | Intel Corporation | MMX optimized data packing methodology for zero run length and variable length entropy encoding |
KR100326157B1 (ko) * | 1998-12-31 | 2002-07-03 | 윤종용 | 통신시스템에서반복디코더에대한양자화방법 |
FI106758B (fi) * | 1999-04-16 | 2001-03-30 | Nokia Networks Oy | Segmentointimekanismi lohkoenkooderia varten |
KR100612003B1 (ko) * | 2000-02-26 | 2006-08-11 | 삼성전자주식회사 | 통신망에서 비트 스트림 송수신 장치 및 그 방법 |
-
2003
- 2003-09-19 PT PT182091819T patent/PT3468045T/pt unknown
- 2003-09-19 EP EP16156283.0A patent/EP3079261B1/en not_active Expired - Lifetime
- 2003-09-19 DK DK18209181.9T patent/DK3468045T3/da active
- 2003-09-19 AU AU2003299010A patent/AU2003299010A1/en not_active Abandoned
- 2003-09-19 WO PCT/US2003/029690 patent/WO2004028165A2/en active Application Filing
- 2003-09-19 ES ES03756844.1T patent/ES2586409T3/es not_active Expired - Lifetime
- 2003-09-19 CN CN201510726145.4A patent/CN105356887B/zh not_active Expired - Lifetime
- 2003-09-19 CN CN038195208A patent/CN1675842B/zh not_active Expired - Lifetime
- 2003-09-19 CN CN201310053178.8A patent/CN103152054B/zh not_active Expired - Lifetime
- 2003-09-19 ES ES16156283T patent/ES2721055T3/es not_active Expired - Lifetime
- 2003-09-19 DK DK16156283.0T patent/DK3079261T3/en active
- 2003-09-19 PT PT16156283T patent/PT3079261T/pt unknown
- 2003-09-19 ES ES18209181T patent/ES2915662T3/es not_active Expired - Lifetime
- 2003-09-19 EP EP18209148.8A patent/EP3468043A1/en not_active Ceased
- 2003-09-19 JP JP2004568951A patent/JP4391425B2/ja not_active Expired - Lifetime
- 2003-09-19 DK DK03756844.1T patent/DK1540962T3/en active
- 2003-09-19 EP EP18209181.9A patent/EP3468045B1/en not_active Expired - Lifetime
- 2003-09-19 CN CN201510725612.1A patent/CN105306067B/zh not_active Expired - Lifetime
- 2003-09-19 PT PT37568441T patent/PT1540962T/pt unknown
- 2003-09-19 EP EP18209165.2A patent/EP3468044A1/en not_active Ceased
- 2003-09-19 CN CN201510726072.9A patent/CN105406873B/zh not_active Expired - Lifetime
- 2003-09-19 EP EP03756844.1A patent/EP1540962B1/en not_active Expired - Lifetime
-
2009
- 2009-04-01 JP JP2009089108A patent/JP2009207156A/ja active Pending
-
2011
- 2011-11-14 JP JP2011248692A patent/JP5138805B2/ja not_active Expired - Lifetime
- 2011-11-14 JP JP2011248684A patent/JP5122677B2/ja not_active Expired - Lifetime
-
2012
- 2012-10-25 JP JP2012235859A patent/JP5390004B2/ja not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05298063A (ja) * | 1992-04-22 | 1993-11-12 | Mitsubishi Electric Corp | 符号化装置 |
JPH05341955A (ja) * | 1992-06-12 | 1993-12-24 | Fujitsu Ltd | データ圧縮および復元方式 |
JPH09130810A (ja) * | 1995-08-31 | 1997-05-16 | Mitsubishi Electric Corp | 符号化・復号化装置及び符号化・復号化方法 |
JPH09148941A (ja) * | 1995-11-24 | 1997-06-06 | Matsushita Graphic Commun Syst Inc | 算術符号化・復号化装置 |
JPH11274938A (ja) * | 1998-03-25 | 1999-10-08 | Mitsubishi Electric Corp | 適応確率推定方法及び適応符号化方法並びに適応復号方法 |
JP2000134479A (ja) * | 1998-10-26 | 2000-05-12 | Nec Corp | 画像信号処理装置 |
JP2002094386A (ja) * | 2000-09-12 | 2002-03-29 | Mitsubishi Electric Corp | 符号化装置、復号装置、符号化方法および復号方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5390004B2 (ja) | 確率推定のための状態マシンを生成する方法、算術エンコーダ、算術デコーダ、及び、復号方法 | |
US7183951B2 (en) | Method and apparatus for arithmetic coding and termination | |
US6906647B2 (en) | Method and apparatus for arithmetic coding, including probability estimation state table creation | |
KR20100075560A (ko) | 최적화된 cabac 디코더 | |
JP4179640B2 (ja) | 情報信号の算術符号化及び復号 | |
US6850175B1 (en) | Method and apparatus for arithmetic coding | |
EP1504408B1 (en) | System and method for arithmetic encoding | |
JP3708744B2 (ja) | 適応確率推定方法、適応符号化方法、適応復号方法、適応確率推定装置、適応符号化装置及び適応復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130925 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131009 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5390004 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |