JP4220534B2 - 符号化システムおよび符号化方法 - Google Patents

符号化システムおよび符号化方法 Download PDF

Info

Publication number
JP4220534B2
JP4220534B2 JP2006138758A JP2006138758A JP4220534B2 JP 4220534 B2 JP4220534 B2 JP 4220534B2 JP 2006138758 A JP2006138758 A JP 2006138758A JP 2006138758 A JP2006138758 A JP 2006138758A JP 4220534 B2 JP4220534 B2 JP 4220534B2
Authority
JP
Japan
Prior art keywords
code range
code
bits
processing unit
values
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.)
Expired - Fee Related
Application number
JP2006138758A
Other languages
English (en)
Other versions
JP2007312075A (ja
Inventor
龍洋 吉村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axell Corp
Original Assignee
Axell Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Axell Corp filed Critical Axell Corp
Priority to JP2006138758A priority Critical patent/JP4220534B2/ja
Publication of JP2007312075A publication Critical patent/JP2007312075A/ja
Application granted granted Critical
Publication of JP4220534B2 publication Critical patent/JP4220534B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、符号範囲を処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する技術に関する。
エントロピー符号化の一つとして算術符号化がある。算術符号化は、シンボル列をひとつの符号語にする符号化であり、シンボルの出現確率に基づいた線分(符号範囲)を、シンボルに応じた区間に分割する処理を繰り返すことで、最終的にその区間に含まれる一つの実数を出力する処理である。特許文献1には、この算術符号化において、処理速度の高速化を図る技術が開示されている。具体的には、シンボルの出現頻度の最大値を2の累乗に維持することで、除算処理をシフト処理のみで実行する。
特開平10−32496号公報
ところで、算術符号化の符号範囲に類似するレンジコーダによる符号化を行う場合、サイクル毎に入力されるシンボルに従って、符号範囲を徐々に狭め、最終的に複数のシンボルで構成するシンボル列に対応するその符号範囲を特定する値の一部のビットを符号として出力する。このとき、符号の出力の条件として、所定の上位ビットが次回以降の処理対象に関して、どちらも不変であることを前提としているが、この上位ビットの値を特定するためには、符号範囲を特定する値(符号範囲特定値)の全てのビットに基づいて演算処理を行わなければならない。そのため、その判定(出力判定)に多くの時間を要し、符号化処理全体の高速化を図る上でボトルネックとなる。
本発明は、かかる事情に鑑みてなされたものであり、その目的は、符号の出力にかかる処理を高速化することにより、符号化処理全体の高速化を図ることである。
また、本発明の別の目的は、符号化処理全体の高速化を図りながらも、本来の符号化処理が論理的に維持され、正しい符号化データが得られるのを保証することである。
かかる課題を解決するために、第1の発明は、複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムを提供する。この符号化システムは、符号範囲記憶部と、符号範囲処理部と、予測処理部と、実測処理部と、制御部とを有する。符号範囲記憶部は、複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する。符号範囲処理部は、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う。予測処理部は、符号範囲処理部と、今回の処理対象に関して、符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。実測処理部は、今回の処理対象における符号範囲処理部が算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、予測処理による判定が正しいか否かを判定する実測処理を行う。制御部は、少なくとも今回の処理対象における予測処理の終了後に、符号範囲処理部に対して、次回の処理対象としての算出処理の開始を指示するとともに、予測処理と実測処理の判定結果に応じて算出処理を制御する。
ここで、第1の発明において、制御部は、予測処理において、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、実測処理において、予測処理による判定が正しいと判定した場合、符号範囲処理部が算出した複数の符号範囲特定値の一部を出力することが好ましい。一方、予測処理において、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、実測処理において、予測処理による判定が誤りと判定した場合、符号範囲処理部に対して、次回の処理対象としての算出処理を中止し、今回の処理対象における符号範囲処理部が算出した複数の符号範囲特定値に基づいて、次回の処理対象としての算出処理の開始を指示することが好ましい。さらに、制御部は、今回の処理対象における、少なくとも予測処理部の予測処理の終了後に、実測処理部に対して、実測処理の開始を指示することが好ましい。
また、第1の発明において、予測処理部は、今回の処理対象に関して、符号範囲処理部が算出した複数の符号範囲特定値の中間ビットの加減算処理において、桁上がりまたは桁下がりが発生するか否かを判定することで、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行うことが好ましい。さらに、予測処理部は、予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれると判定した場合、複数の符号範囲特定値を出力すべきビット数だけシフトするシフト処理を行い、予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれないと判定した場合、シフト処理を行わないことが好ましい。
さらに、第1の発明において、予測処理部は、予測判定部と、レジスタと、シフタとを有することが好ましい。予測判定部は、近似された複数の符号範囲特定値の中間ビット同士との演算処理において、桁上がりまたは桁下がりが起きるか否かを判定することで、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する。レジスタは、予測判定部による判定結果を格納する。シフタは、レジスタに格納された判定結果に応じて次回の処理対象で用いられる複数の符号範囲特定値のそれぞれを出力すべき符号のビット数分だけシフトする。なお、符号範囲は、複数の符号範囲特定値である上限値、下限値または幅のうちの所定の二つの組み合わせによって特定されることが好ましい。
さらに、第1の発明において、符号化システムは、今回の処理対象における符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さいか否かを判定する符号範囲判定処理を行う符号範囲補正部をさらに有することが好ましい。このとき、符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さい場合、符号範囲処理部は、符号範囲処理部が算出した複数の符号範囲特定値を更新する符号範囲更新処理を行う。そして、制御部は、符号範囲処理部に対して、次回の処理対象に関する算出処理を中止し、今回の処理対象に関する符号範囲補正部が更新した複数の符号範囲特定値に基づいて、次回の処理対象に関する算出処理の開始を指示する。
さらに、第1の発明において、符号化システムは、今回の処理対象で用いられたシンボルの出現頻度を特定可能な複数のカウント値のそれぞれが、所定の値であるか否かを判定するカウント値判定処理を行うカウント値補正部をさらに有することが好ましい。このとき、シンボルの出現頻度を特定可能な複数のカウント値の合計が、所定の値である場合、カウント値補正部は、シンボルの出現頻度を特定可能な複数のカウント値のそれぞれを更新するカウント値更新処理を行う。そして、制御部は、符号範囲処理部に対して、次回の処理対象に関する算出処理を中止し、今回の処理対象に関するカウント値補正部が更新した複数のカウント値のそれぞれに基づく算出処理の開始を指示する。
第2の発明は、複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムを提供する。この号化システムは、複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する符号範囲記憶部と、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う符号範囲処理部と、今回の処理対象に関して、符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う予測処理部と、少なくとも今回の処理対象における予測処理の終了後に、符号範囲処理部に対して、次回の処理対象としての算出処理の開始を指示する制御部とを有する。
第3の発明は、複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法を提供する。この符号化方法は、第1から第3までのステップで構成される。第1のステップと、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する。第2のステップは、今回の処理対象に関して、第1のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する。第3のステップは、今回の処理対象に関して第1のステップで算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、第2のステップによる判定が正しいか否かを判定する。このとき、少なくとも今回の処理対象に関する第2のステップの終了後に、次回の処理対象に関する第1のステップを開始するとともに、第2のステップと第3のステップとの判定結果に応じて第1のステップを制御する。
第4の発明は、複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法を提供する。この符号化方法は、第1のステップと第2のステップとで構成される。第1のステップは、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する。第2のステップは、今回の処理対象に関して、第1のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する。このとき、少なくとも今回の処理対象に関する第2のステップの終了後に、次回の処理対象に関する第1のステップを開始する。
第1から第4の発明によれば、符号化システムは、今回の処理対象に関して、算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで、この複数の符号範囲特定値を近似している。近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。次回の処理対象に関する処理は、今回の処理対象に関する少なくとも予測処理の終了後に開始される。そのため、符号の出力にかかる処理が高速化し、符号化処理全体の高速化を図ることができる。
特に、第1または第3の発明によれば、上記効果に加えて、この予測処理による判定が正しかったかを判定する実測処理を行う。そして、予測処理と実測処理の判定結果に応じて算出処理を制御する。そのため、符号化処理全体の高速化を図りながらも、本来の符号化処理が論理的に維持され、正しい符号化データが得られるのを保証することができる。
まず、具体的なシステム構成の説明に先立ち、本実施形態にかかる符号化アルゴリズムについて説明する。符号範囲を用いた符号化は、符号範囲特定値によって設定される符号範囲を、処理対象となるシンボル(具体的にはシンボルの種類)に応じた区間に分割する処理が繰り返し実行される。そして、この繰り返し処理によって得られた演算結果を符号化することによって、シンボル列の符号化が行われるものである。符号範囲特定値は、一次元の線分で表現される符号範囲の絶対的な位置を特定するための情報であり、一例として、符号範囲の下限値LOWと幅RNGとを用いる。符号範囲を用いた符号化の基本的な処理フローをまとめると以下のようになる。
[処理フロー]
(1) 処理対象となるシンボルを出現頻度表の更新前に取得する。
(2) (1)で取得したシンボルに基づいて、下限値LOWおよび幅RNGを更新する。
(3) (1)で取得したシンボルに基づいて、出現頻度表を更新する。
(4) 所定の出力条件を満たす場合、下限値のLOWの上位ビットを出力する。
(5) (1)に戻り、終了条件を満たすまで繰り返す。
なお、出現頻度表とは、処理対象のシンボル列に含まれるそれぞれのシンボルの出現頻度を特定可能な複数のカウント値を指す。各シンボルの出現頻度が予め判明していれば、(3)の処理は、この予め判明したカウント値(出現頻度)に基づいて、新たな符号範囲特定値を算出することなる。
図1の符号化における符号範囲の遷移図を参照しながら、符号範囲を用いた符号化の具体的なケースについて説明する。本ケースは、出現頻度表に4つのシンボル"a","b","c","d"のカウント値が予め設定されており、カウント値の更新(上記の(3)の処理)は行われないものとする。入力の一例として"b","a"・・・の順にシンボル列のシンボルを入力する。また、符号範囲特定値のビット数は16(=n)ビットとし、このうち、出力すべき符号は下限値の上位ビットは2(=m)ビットとする。
図1(a)は、初期状態における符号範囲の状態を示している。符号範囲記憶部1に記憶されている幅RNGおよび下限値LOWは、符号化処理前に予め設定されている初期値である。なお、図中の符号範囲は、シンボル毎に線分で分割されているが、これは説明を簡略化するために表記したものであり、実装上、それぞれのシンボルを示す区間を特定する値(境界値)は記憶されていない。図1(b)は、シンボル"b"が入力され、これに伴って更新された符号範囲特定値が特定する符号範囲の状態を示している。同図(a)の符号範囲のうち、シンボル"b"に相当する符号範囲が抽出され、さらに、この符号範囲をカウント値に応じた所定の比率で按分した上で、符号範囲を構成するシンボル毎の各区間に割り当てる。
図1(c)は、シンボル"a"が入力され、これに伴って更新された符号範囲特定値が特定する符号範囲の状態を示している。同図(a)の符号範囲のうち、シンボル"a"に相当する符号範囲が抽出され、さらに、この符号範囲をカウント値に応じた所定の比率で按分した上で、符号範囲を構成するシンボル毎の各区間に割り当てる。このとき、符号範囲はk×2n−m〜(k+1)×2n−m(k=0〜3)の範囲内(図中の点線間)に含まれるか否かを出力条件とする。変数kは、出力すべき符号(出力符号)のビット数(mビット)で定義され、例えば、mが3の場合、k=0〜7となり、mが4の場合、k=0〜15となる。一方、符号範囲を用いた符号化は、その符号範囲を徐々に狭める処理であるため、下限値LOWは、以降の符号範囲の算出処理において、上位2ビットで規定される範囲(符号範囲の最大値を4分割した区間)を超えないことが確定する。したがって、下限値LOWの上位2ビットも確定することなり、この場合における出力符号は、符号"01"となる。なお、同図(b)の場合ではこのような条件を満たさないので、出力符号は生成されない。
図1(d)は、下限値LOWの上位2ビットを出力するにあたり、幅RNGおよび下限値LOWを更新した符号範囲の状態を示している。具体的には、出力符号のビット数だけ左ビットシフト(MSB(最上位ビット)方向へのビットシフト)を行う。本ケース場合、出力符号のビット数mは、2ビットであるので幅RNGおよび下限値LOWをそれぞれ2ビット左シフトする。なお、左ビットシフトによって生じた下位2ビットの空白には"0"が格納される。シンボル"a"以降にも、処理対象となるシンボルが続く場合、この同図(d)の状態の符号範囲を用いて、新たなシンボルにかかる算出処理を行う。
図2は、符号化における出力条件の説明図である。図2(a)は、具体的には、図1(c)の状態における符号範囲を拡大したもの(k=1)である。符号範囲が1×2n−m〜2×2n−mの範囲(出力符号のビット数mで規定される区間)内に含まれるか否かを判定するためには、nビットで示される下限値LOWの上位mビットと、nビットで示される上限値UPの上位mビットとが等しいことが必要である。一方、下限値LOW,幅RNGが既に算出されている場合、上限値UPは下式で表される。

LOW+RNG=UP
つまり、下限値LOWおよび幅RNGのうち、それぞれの上位mビットを除いた下位(n−m)ビットにおける加算処理の結果が、桁上がりを発生させなければ、符号範囲の下限値LOWの上位mビットと上限値の上位mビットとが等しく、これによって規定される符号範囲が1×2n−m〜2×2n−mの範囲内に含まれると判定できる。
この判定では、下限値LOW,幅RNGのうち、それぞれ上位mビットを除いた下位(n−m)ビットにおける加算処理を行う必要がある。具体的には、それぞれの値の下位(n−m)ビットにおける加算処理を行い、桁上がりが発生するか否かを判定する。したがって、下限値LOW,幅RNGを示すnビットが大きく、出力符号を示すmビットが小さい場合、多くのビットに基づいた加算処理が必要となり、当然、演算処理に多くの時間を要する。しかしながら、新たなシンボルにかかる処理を行うためには、下限値LOW,幅RNGの確定が不可欠であるが、出力符号が存在するか否か(桁上がりが発生するか否か)によって、この下限値LOW,幅RNGが更新(左ビットシフト)される可能性がある。つまり、この加算処理の終了による出力判定が確定するまで、新たなシンボルにかかる算出処理を行うことができず、符号化処理の高速化を図る上でボトルネックとなり得る。
そこで、この下位(n−m)ビットよりも少ないビット数を用いて、出力符号が存在するか否かの予測を行う。図2(b)は、図2(a)の符号範囲の状態を近似したものである。具体的には、出力符号に相当する上位ビットを除き、そのうちさらに上位xビット(nビットから見て、中間xビット)より下位のビットをさらに切り捨てることによって近似した値を用いて、加算処理を行う。具体的には、幅RNG,下限値LOWのうち中間xビットの加算処理によって、桁上がりが発生しないか否かを判定する。
桁上がりが発生する場合、符号範囲の上限値UPが、(k+1)×2n−mを超え、これ以降で入力されるシンボル次第では、符号範囲の下限値LOWが(k+1)×2n−m〜(k+2)×2n−mの範囲に含まれる可能性があると判断できる。したがって、下限値LOWの上位mビットが確定しなかったと判定できる。また、桁上がりが発生しない場合、上限値UPが、(k+1)×2n−mを超えず、これ以降で入力されるシンボルによっても、符号範囲の下限値LOWが(k+1)×2n−m〜(k+2)×2n−mの範囲に含まれることはないと判断できる。したがって、下限値LOWの上位mビットが確定したと判定できる。
なお、この予測処理は、出力すべき符号があるか否かを、複数の符号範囲特定値(下限値LOW,幅RNG)の近似のもとで、予め判定するだけである。したがって、仮に、予測処理のみによって出力符号を生成した場合、復号化可能な符号化データを生成する保証はなく、その確率は中間ビットのビット数に依存する。具体的には、予測処理に用いる中間xビットで予測された出力符号が、近似を行わずに複数の符号範囲特定値(下限値LOW,幅RNG)に基づいて出力される(実測処理によって出力される)符号と異なる確率は約1/2x+1となる。そのため、本実施形態では、中間xビットを用いた予測処理だけではなく少なくとも(n−m)ビットを用いた実測処理とを併用することにより、正しい符号化データを得る保証をする。
図3は、上述した符号範囲を用いた符号化を実装した符号化システムの構成図である。この符号化システムは、符号範囲記憶部1と、符号範囲処理部2と、予測処理部3と、実測処理部4と、符号範囲補正部5と、カウント値補正部6と、制御部7とから構成されている。
符号範囲記憶部1は、シンボル列に含まれるそれぞれのシンボルの出現頻度を特定可能な複数のカウント値で格納する。この符号範囲記憶部1の記憶内容は、例えば、出現頻度表としての構成を有しており、これによってカウント値が格納される。シンボルの出現頻度は、出現頻度CNT,累積出現頻度SUMといった2種類のカウント値によって管理されている。出現頻度CNTは、あるシンボルの出現回数の配列である。初期値は1であり、例えばシンボル"a"が2回読み込まれた(入力された)場合、シンボル"a"の出現頻度CNTが1(初期値)から3へとカウントアップされる。累積出現頻度SUMは、出現頻度表におけるシンボルが下位から上位に至る所定の順序において、そのシンボルより下位の出現頻度CNTの累積値の配列である。
なお、出現頻度表として、シンボル毎の出現頻度CNTおよび累積出現頻度SUMが管理されているが、双方を管理する必要は必ずしもなく、少なくともいずれか一方のみを管理する。なぜなら、累積出現頻度SUMについては、出現頻度CNTに基づく加算処理によって一義的に特定でき、出現頻度CNTについても、累積出現頻度SUMに基づく減算処理によって一義的に特定できるからである。符号範囲記憶部1に格納している出現頻度表から全てのシンボルの出現頻度CNTが算出できれば、符号範囲記憶部1は全てのシンボルの出現頻度CNTを管理する必要はない。
また、符号範囲記憶部1は、それぞれnビット(例えば、n=32)で構成される複数の符号範囲特定値を格納する。符号範囲特定値は、上述した下限値LOWおよび幅RNG以外に、符号範囲の上限を示す上限値UPも存在し、これらの内の少なくとも2つを管理すれば、符号範囲を一義的に特定される。つまり、管理すべき複数の符号範囲特定値は、本実施形態のような組み合わせだけでなく、下限値LOWと上限値UPとの組み合わせ、上限値UPと幅RNGとの組み合わせ、あるいは、下限値LOWと上限値UPと幅RNGとの組み合わせでも足りる。
符号範囲処理部2は、今回の処理対象である一のシンボルSymが入力された場合、符号範囲(複数の符号範囲特定値)を更新する(算出処理)。具体的には、まず、符号範囲処理部2は、符号範囲記憶部1の出現頻度表を更新する前に、符号範囲記憶部1に格納しているカウント値CNT,SUMを読み出す。そして、シンボルSymのシンボルに対応したカウント値CNT,SUMに対して、演算処理が行われ、新たな複数の符号範囲特定値として下限値LOWおよび幅RNGが算出される。この新たな複数の符号判定特定値は、次回の処理(次回に入力されるシンボルにかかる処理)単位に用いられる。
また、符号範囲処理部2は、シンボル列よりシンボルSymが処理対象として入力される毎に、この入力されたシンボルに対応したカウント値(CNT,SUM)を更新する。例えば、出現頻度表が下位からシンボル"a","b","c"の順に並べられており、シンボル"a"が処理対象として入力された場合、"a"に対応する出現頻度CNTも1加算した値に更新され、累積出現頻度もそれぞれ1づつ加算した値に更新される。なお、本実施形態では、シンボルSymが符号範囲処理部2に入力される毎に、符号範囲記憶部1のカウント値CNT,SUMを更新するが、上述したように、各シンボルの出現頻度が予め判明していれば、符号範囲処理部2によるカウント値の更新は行わなくてもよい。その場合、符号範囲処理部2は、常に、この予め判明したカウント値(出現頻度)に基づいて、新たな複数の符号範囲特定値を算出する。
予測処理部3は、予測判定部3aと、レジスタ3bと、シフタ3cとから構成される。予測判定部3aは、今回の処理対象に関して、符号範囲処理部2が算出した複数の符号範囲特定値(幅RNG,下限値LOW)の中間xビット以下のビットを切り捨てることで、この複数の符号範囲特定値を近似する。そして、この近似された複数の符号範囲特定値が特定する符号範囲が、出力符号のビット数(mビット)によって規定される区間内に、含まれるか否かを判定する(予測処理)。具体的には、符号範囲処理部2が算出した複数の符号範囲特定値の中間xビットの加減算処理において、桁上がりまたは桁下がりが発生するか否かを判定することで、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。本実施形態の場合、上述したとおり、符号範囲処理部2が算出した複数の符号範囲特定値(幅RNG,下限値LOW)のnビットうち中間xビットの加算処理によって、桁上がりが発生しないか否かを判定する。
レジスタ3bには、予測処理部3の判定結果が格納される。具体的には、近似された符号範囲が所定の区間内に含まれる場合、"1"が格納され、近似された符号範囲が所定の区間内に含まない場合"0"が格納される。シフタ3cは、レジスタ3bに格納された判定結果に応じて、次回の処理対象で用いられる符号範囲特定値(幅RNG,下限値LOW)を更新する(シフト処理)。具体的には、近似された符号範囲が所定の区間内に含まれる場合(レジスタ3bが1の場合)、幅RNG,下限値LOWをそれぞれ出力符号のビット数(mビット)だけ左シフトさせた符号範囲特定値(幅RNG',下限値LOW')を算出する。なお、左シフトを行うことで生じた符号範囲特定値の下位mビットには"0"が格納される。
実測処理部4は、今回の処理対象における符号範囲処理部2が算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、予測処理部3による判定が正しいか否かを判定する(実測処理)。具体的には、判定は、上述したように、符号範囲処理部2が算出した複数の符号範囲特定値(幅RNG,下限値LOW)のうち、出力符号となる上位mビットを除いた(n−m)ビットの加算処理によって、桁上がりが発生しないか否かを判定する。
符号範囲補正部5は、符号範囲判定部5aと、符号範囲更新部5bとから構成される。符号範囲判定部5aは、今回の処理対象に関して符号範囲処理部2が算出した符号範囲特定値(幅RNG)が、所定の値より小さいか否かを判定する(符号範囲判定処理)。符号範囲更新部5bは、符号範囲判定部5aによる判定の結果、予測処理部3が更新した符号範囲特定値が、所定の値より小さい場合、符号範囲判定部5aからの指示により、予測処理部3が更新した符号範囲特定値をさらに更新する(符号範囲更新処理)。具体的には、幅RNG,下限値LOWをそれぞれ所定数ビットだけ左シフトさせた符号範囲特定値(幅RNG'',下限値LOW'')を算出する。なお、この判定処理および更新処理は、シンボルが入力される毎によって符号範囲が極端に狭くなり、符号範囲処理部2の算出処理における誤差の発生を抑制するための処理である。
カウント値補正部6は、カウント値判定部6aと、カウント値更新部6bとから構成される。カウント値判定部6aは、今回の処理対象となるシンボルの出現頻度を特定可能な複数のカウント値CNTの合計が、所定の値であるか否かを判定する(カウント値判定処理)。カウント値更新部6bは、カウント値判定部6aによる判定の結果、今回の処理対象に関するシンボルの出現頻度を特定可能な複数のカウント値の合計が所定の値である場合、カウント値判定部6aからの指示により、予測処理部3が更新したカウント値うち該当するカウント値CNT,SUMをさらに更新する(カウント値更新処理)。具体的には、具体的には、カウント値CNTを1ビットだけ右シフトさせた(半減させた)カウント値CNT',SUM'を算出する。なお、この判定処理および更新処理は、入力されるシンボルに対応するシンボルのカウント値の比率によって、符号範囲を決定する符号範囲処理部2の算出処理を軽減するための処理である。
なお、本実施形態では、シンボルSymが入力される毎に、この入力されたシンボルSymに対応したカウント値(CNT,SUM)を更新するが、本発明は、これに限定されない。具体的には、シンボル列の符号化に先立って、このシンボル列のシンボルのカウント値(出現頻度)を予め生成し、このカウント値に基づいて、算出処理を繰り返してもよい。その場合、符号範囲処理部2によるカウント値の更新も行われず、カウント値補正部6によるカウント値の更新も必要なくなる。
制御部7は、少なくとも今回の処理対象における予測処理部3による予測処理の終了後に、符号範囲処理部2に対して、次回の処理対象に関する算出処理の開始を指示する。また、今回の処理対象に関する予測処理部3による予測処理の判定結果と、実測処理部4による判定結果との比較に応じて、同時並行的に行っていた符号範囲処理部2による次回の算出処理を制御する。具体的には、予測処理部3(予測判定部3a)において、近似された複数の符号範囲特定値が特定する符号範囲が、出力符号のビット数によって規定される区間内に含まれるか否かを判定する。そして、実測処理部4において、予測処理部3の判定が正しいと判定した場合、符号範囲処理部2が算出した符号範囲特定値の一部(下限値LOWの上位mビット)を出力させる。一方、実測処理部4において、予測処理部3の判定が誤りと判定した場合、符号範囲処理部2に対して、次回の処理対象に関する算出処理の中止し、今回の処理対象に関する符号範囲処理部2が算出した複数の符号範囲特定値に基づいて、次回の処理対象に関する算出処理の開始を再び指示する。
さらに、制御部7は、今回の処理対象に関する符号範囲補正部5(符号範囲判定部5a)およびカウント値補正部6(カウント値判定部6a)による判定結果に応じて、並行に行っていた符号範囲処理部2による次回の算出処理を制御する。具体的には、2つの判定部(符号範囲判定部5a,カウント値判定部6a)のうちいずれか1つが、判定条件を満たす場合、符号範囲処理部2に対して、次回の処理対象に関する算出処理の中止を指示する。
符号範囲判定部5aの条件を満たす場合、今回の処理対象に関する符号範囲処理部2が算出した複数の符号範囲特定値(幅RNG,下限値LOW)を、符号範囲更新部5bによってさらに更新した複数の符号範囲特定値(幅RNG'',下限値LOW'')に基づく次回の処理対象に関する算出処理の開始を指示する。また、カウント値判定部6aの条件を満たす場合、今回の処理対象に関して符号範囲処理部2が算出した複数のカウント値CNT,SUMを、カウント値更新部6bによってさらに更新した複数のカウント値CNT',SUM'に基づく次回の処理対象に関する算出処理の開始を指示する。なお、2つの判定部5a,6aの条件を両方とも満たす場合、対応する各更新部5b,6bが更新した複数の符号範囲特定値(幅RNG'',下限値LOW'')および複数のカウント値CNT',SUM'に基づいて、次回の処理対象に関する算出処理の開始が制御部7から指示される。また、2つの補正部5,6は、別個の値を対象に判定処理を行っているため、それぞれ並行して符号範囲にかかる処理(符号範囲判定処理,符号範囲更新処理)およびカウント値にかかる処理(カウント値判定処理,カウント値更新処理)が可能である。
また、制御部7は、シンボル列の符号化を終了するか否かの終了条件も判定する。この終了条件は、符号化処理における繰り返し処理を防ぎ、例えば、復号化システムにも共通して適用できる(判定できる)ものあれば、どのような条件であってもよい。本実施形態において、終了条件は例として以下がある。
(例1)
符号化処理前に予め符号化終了を示すシンボル(例えば、シンボル"EOF")を設定しておき、このシンボル処理対象として入力された場合(Sym="EOF")
(例2)
符号化処理前に予めループ回数の閾値(LAST)を設定しておき、ループ変数iが閾値に達した場合(i=LAST)
図4は、符号処理の説明図である。次に、図1の構成図に基づいて、連続する4つのシンボルに対応した符号列の復号処理について説明する。一例として、処理対象のシンボル列は、"b","a","c","d","e"・・・としている。5つのユニット2〜6が行う連続する5つのシンボル(シンボル列)に対する、それぞれの処理の処理順序を示すタイムチャートである。符号範囲処理部2は、算出処理を行う。予測処理部3は、2つの処理(予測処理,シフト処理)を行う。実測処理部4は、実測処理を行う。符号範囲補正部5は、2つの処理(符号範囲判定処理と、これにかかる符号範囲更新処理)を行う。カウント値補正部6は、2つの処理(カウント値判定処理と、これにかかるカウント値更新処理)を行う。ここで、算出処理(網掛け部)の左の文字は、入力されるシンボルを示す。
なお、同図に記載したサイクルは、各処理の順序を説明する上で定義したものである。したがって、このサイクルに厳密にしたがった処理は要求されない。例えば、本実施形態において、算出処理と、予測処理と、これに係るシフト処理とが同一サイクル内で行われているが、これに限らず、例えば、シフト処理が、このサイクルの次のサイクル内において、算出処理の開始に先立ってが行われるようにしてもよい。また、判定処理とそれに係る更新処理は、同一サイクル内で行われているが、これに限らず、例えば、更新処理が、このサイクルの次のサイクル内において、算出処理の開始に先立って行われるようにしてもよい。
まず、1番目のサイクル(c=1)では、符号範囲処理部2にシンボル"b"が入力され、これに対応する算出処理が行われる。そして、この算出処理が終了すると、算出された幅RNGおよび下限値LOWに基づいて、予測処理部3(予測判定部3a)による予測処理(図中、グレー部)が行われる。そして、この予測処理によって、所定の範囲内に符号範囲が含まれなかった場合、レジスタ3bに"0"が格納され、シフト処理は行われない。制御部7は、予測処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部2に指示する。
つぎに、2番目のサイクル(c=2)では、符号範囲処理部2にシンボル"a"が入力され、これに対応する算出処理が行われる。そして、この算出処理が終了すると、算出された幅RNGおよび下限値LOWに基づいて、予測処理部3(予測判定部3a)による予測処理が行われる。そして、この予測処理によって所定の範囲内に符号範囲が含まれる場合(図中の"○")、レジスタ3bに"1"が格納され、シフタ3cによるシフト処理が行われる。制御部7は、シフト処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部2に指示する。
このとき、実装する回路の構成上、シンボル"b"を対象とした処理で、実測処理部4,符号範囲補正部5,カウント値補正部6は、符号範囲処理部2が算出した幅RNG,下限値LOWに基づいた各種処理を行う。しかしながら、予測処理による判定が否である以上、出力符号は存在しないので、その判定結果は以降の処理に反映されずに破棄される。
3番目のサイクル(c=3)では、符号範囲処理部2にシンボル"c"が入力されるので、前回の(シンボル"a"に関する)処理対象で左2ビットシフトされた幅RNG',下限値LOW'に基づいて、算出処理が行われる。そして、この算出処理が終了すると、算出された幅RNGおよび下限値LOWに基づいて、予測処理が行われる。そして、この予測処理によって所定の範囲内に符号範囲が含まれる場合(図中の"○")、レジスタ3bに"1"が格納され、シフタ3cによるシフト処理(無地部)が行われる。制御部7は、シフト処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部2に指示する。
一方、これと並行して、シンボル"a"を対象とした処理で、符号範囲処理部2が算出した幅RNG,下限値LOWに基づいて、実測処理(左下がり斜線部)と符号範囲判定処理(右下がり斜線部)とが行われ、符号範囲処理部2が更新したカウント値CNTに基づいて、カウント値判定処理(右下がり斜線部)が行われる。その結果、いずれの判定も正しい場合(図中の"○")、制御部7によって、符号範囲記憶部1に格納された下限値LOWの上位2ビットが出力され、シフタ3cによって左2ビットシフトされた幅RNG',下限値LOW'が符号範囲記憶部1に格納される。
4番目のサイクル(c=4)では、符号範囲処理部2にシンボル"d"が入力されるので、前回の(シンボル"c"に関する)処理対象で左2ビットシフトした幅RNG',下限値LOW'に基づいて、算出処理が行われる。
一方、これと並行して、シンボル"c"を対象とした処理で、符号範囲処理部2が算出した幅RNG,下限値LOWに基づいて、実測処理と符号範囲判定処理とが行われ、符号範囲処理部2が更新したカウント値CNTに基づいて、カウント値判定処理が行われる。実測処理によって予測処理の予測結果が誤っている場合(図中の"×")、制御部7によって、符号範囲処理部2が算出した幅RNG,下限値LOWが符号範囲記憶部1に格納され、現在行っている算出処理を中止した上で、次回のサイクルで、シンボル"c"を対象とした処理で、この幅RNG,下限値LOWに基づく算出処理が指示される。
5番目のサイクル(c=5)では、先程、符号範囲処理部2にシンボル"d"が入力され、これに対応する算出処理が行われる。この算出処理は、前のサイクルで制御部7が指示したように、シンボル"c"を対象とした処理で、符号範囲処理部2が算出した幅RNG,下限値LOWに基づいて行われる。そして、この算出処理が終了すると、算出された幅RNGおよび下限値LOWに基づいて、予測処理が行われる。そして、この予測処理によって、所定の範囲内に符号範囲が含まる場合(図中の"○")、レジスタ3bに"1"が格納され、シフト処理が行われる。制御部7は、予測処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部2に指示する。
6番目のサイクル(c=6)では、符号範囲処理部2にシンボル"e"が入力されるので、前回の(シンボル"d"に関する)処理対象で左2ビットシフトされた幅RNG',下限値LOW'に基づいて、算出処理が行われる。
一方、これと並行して、シンボル"d"を対象とした処理で、符号範囲処理部2が算出した幅RNG,下限値LOWに基づいて、実測処理と符号範囲判定処理とが行われ、符号範囲処理部2が更新したカウント値CNTに基づいて、カウント値判定処理が行われる。いずれかの判定処理(符号範囲判定処理,カウント値判定処理)において、幅RNGまたはカウント値CNTが所定の条件を満たす(図中の"×")場合、該当する判定処理に対応する更新処理(符号範囲更新処理,カウント値更新処理)が行われ、更新された幅RNG'',下限値LOW''またはカウント値CNT',SUM'が符号範囲記憶部1に格納される。そして、制御部7によって、現在行っている算出処理を中止させ、次回のサイクルでは、シンボル"e"を対象とした処理で、この幅RNG'',下限値LOW''またはカウント値CNT',SUM'に基づく算出処理が指示される。
本実施形態によれば、符号化システムは予測処理部3を有し、この予測処理部3は、今回の処理対象に関して、符号範囲処理部2が算出したnビットの複数の符号範囲特定値のうち、上位mビットと、中間xビット以下のビットとを切り捨てることで近似している。そして、近似された複数の符号範囲特定値の中間xビットが特定する符号範囲が、出力符号のmビットによって規定される区間内に含まれるか否かを判定する予測処理を行う。次回の処理対象に関する処理は、今回の処理対象に関して少なくとも予測処理の終了後に開始される。特に、従来の符号の出力にかかる処理と比べて、加算処理を施すべきビット数が近似(切り捨て)により削減されるので、出力符号が存在するか、否かを一早く把握できる。これにより、次回の処理対象(次回に入力するシンボル)のために用意する符号範囲特定値(幅RNG,下限値LOW)を準備・開始できるので、符号化処理全体の高速化を図ることができる。
また、本実施形態によれば、予測処理部3とは別に、この予測処理による判定が正しいか否かを判定する実測処理を行う実測処理部4を設けている。そして、予測処理と実測処理の判定結果に応じて算出処理を制御する。また、予測処理によって更新された符号範囲特定値(幅RNG',下限値LOW')によって、次回の処理対象に関する算出処理が行われていても、今回の算出処理で算出された符号範囲特定値(幅RNG,下限値LOW)が存在する。特に、予測処理による予測が誤っていた場合、この符号範囲特定値に基づいて、再度、算出処理を行うことができる。そのため、符号化処理全体の高速化を図りながらも、本来の符号化処理が論理的に維持され、正しい符号化データが得られるのを保証することができる。
また、本実施形態では、制御部7は、今回の処理対象に関して、少なくとも予測処理部3の予測処理の終了後に、実測処理部4に対して、実測処理の開始を指示していたが、これに限定されず、予測処理および実測処理の開始の指示を算出処理の終了後に行ってもよい。つまり、予測処理部3と実測処理部4は個別に設けられているので、同一対象の符号範囲特定値に基づいて、予測処理と実測処理とが同時並行的に実行可能である。
なお、本実施形態では、処理対象が"a"や"b"といったテキスト(文字)データであったが、例えば、"0"〜"255"といった数値が処理対象であってもよい。したがって、画像データおよび音声データといったデータ形式に限らず符号化が可能である。なお、この場合、符号範囲記憶部1には入力され得るシンボルの数に応じた出現頻度表(カウント値)の確保が必要である。
符号化における符号範囲の遷移図 符号化における符号出力の説明図 符号化システムの構成図 符号処理の説明図
符号の説明
1 符号範囲記憶部
2 符号範囲処理部
3 予測処理部
3a 予測判定部
3b レジスタ
3c シフタ
4 実測処理部
5 符号範囲補正部
5a 符号範囲判定部
5b 符号範囲更新部
6 カウント値補正部
6a カウント値判定部
6b カウント値更新部
7 制御部

Claims (12)

  1. 複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムにおいて、
    前記複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する符号範囲記憶部と、
    今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う符号範囲処理部と、
    今回の処理対象に関して、前記符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う予測処理部と、
    今回の処理対象における前記符号範囲処理部が算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、前記予測処理による判定が正しいか否かを判定する実測処理を行う実測処理部と、
    少なくとも今回の処理対象における前記予測処理の終了後に、前記符号範囲処理部に対して、次回の処理対象としての前記算出処理の開始を指示するとともに、前記予測処理と前記実測処理の判定結果に応じて前記算出処理を制御する制御部と
    を有することを特徴とする符号化システム。
  2. 前記制御部は、
    前記予測処理において、前記近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、前記実測処理において、前記予測処理による判定が正しいと判定した場合、前記符号範囲処理部が算出した複数の符号範囲特定値の一部を出力し、
    前記予測処理において、前記近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、前記実測処理において、前記予測処理による判定が誤りと判定した場合、前記符号範囲処理部に対して、次回の処理対象としての前記算出処理を中止し、今回の処理対象における前記符号範囲処理部が算出した複数の符号範囲特定値に基づいて、次回の処理対象としての前記算出処理の開始を指示することを特徴とする請求項1に記載された符号化システム。
  3. 前記制御部は、
    今回の処理対象における、少なくとも前記予測処理部の前記予測処理の終了後に、前記実測処理部に対して、前記実測処理の開始を指示することを特徴とする請求項1または2に記載された符号化システム。
  4. 前記予測処理部は、
    今回の処理対象に関して、前記符号範囲処理部が算出した複数の符号範囲特定値の中間ビットの加減算処理において、桁上がりまたは桁下がりが発生するか否かを判定することで、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行うことを特徴とする請求項1から3に記載された符号化システム。
  5. 前記予測処理部は、
    前記予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれると判定した場合、複数の符号範囲特定値を前記出力すべきビット数だけシフトするシフト処理を行い、
    前記予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれないと判定した場合、前記シフト処理を行わないことを特徴とする請求項1から4に記載された符号化システム。
  6. 前記予測処理部は、
    前記近似された複数の符号範囲特定値の中間ビット同士との演算処理において、桁上がりまたは桁下がりが起きるか否かを判定することで、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測判定部と、
    前記予測判定部による当該判定結果を格納するレジスタと、
    前記レジスタに格納された当該判定結果に応じて次回の処理対象で用いられる複数の符号範囲特定値のそれぞれを出力すべき符号のビット数分だけシフトするシフタと
    を有することを特徴とする請求項1から5のいずれかに記載された符号化システム。
  7. 前記符号範囲は、前記複数の符号範囲特定値である上限値、下限値または幅のうちの所定の二つの組み合わせによって特定されることを特徴とする請求項1から7のいずれかに記載された符号化システム。
  8. 前記符号化システムは、
    今回の処理対象における前記符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さいか否かを判定する符号範囲判定処理を行う符号範囲補正部をさらに有し、
    前記符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さい場合、前記符号範囲処理部は、前記符号範囲処理部が算出した複数の符号範囲特定値を更新する符号範囲更新処理を行い、
    前記制御部は、前記符号範囲処理部に対して、次回の処理対象に関する前記算出処理を中止し、今回の処理対象に関する前記符号範囲補正部が更新した複数の符号範囲特定値に基づいて、次回の処理対象に関する前記算出処理の開始を指示することを特徴とする請求項1から5のいずれかに記載された符号化システム。
  9. 前記符号化システムは、
    今回の処理対象で用いられた前記シンボルの出現頻度を特定可能な複数のカウント値のそれぞれが、所定の値であるか否かを判定するカウント値判定処理を行うカウント値補正部をさらに有し、
    前記シンボルの出現頻度を特定可能な複数のカウント値の合計が、所定の値である場合、前記カウント値補正部は、前記シンボルの出現頻度を特定可能な複数のカウント値のそれぞれを更新するカウント値更新処理を行い、
    前記制御部は、前記符号範囲処理部に対して、次回の処理対象に関する前記算出処理を中止し、今回の処理対象に関する前記カウント値補正部が更新した複数のカウント値のそれぞれに基づく前記算出処理の開始を指示することを特徴とする請求項1から6のいずれかに記載された符号化システム。
  10. 複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムにおいて、
    前記複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する符号範囲記憶部と、
    今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う符号範囲処理部と、
    今回の処理対象に関して、前記符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う予測処理部と、
    少なくとも今回の処理対象における前記予測処理の終了後に、前記符号範囲処理部に対して、次回の処理対象としての前記算出処理の開始を指示する制御部と
    を有することを特徴とする符号化システム。
  11. 複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法において、
    今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する第1のステップと、
    今回の処理対象に関して、前記第1のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する第2のステップと、
    今回の処理対象に関して前記第1のステップで算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、前記第2のステップによる判定が正しいか否かを判定する第3のステップとを有し、
    少なくとも今回の処理対象に関する前記第2のステップの終了後に、次回の処理対象に関する前記第1のステップを開始するとともに、前記第2のステップと前記第3のステップとの判定結果に応じて前記第1のステップを制御することを特徴とする符号化方法。
  12. 複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法において、
    今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する第1のステップと、
    今回の処理対象に関して、前記第1のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する第2のステップと、
    少なくとも今回の処理対象に関する前記第2のステップの終了後に、次回の処理対象に関する前記第1のステップを開始することを特徴とする符号化方法。
JP2006138758A 2006-05-18 2006-05-18 符号化システムおよび符号化方法 Expired - Fee Related JP4220534B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006138758A JP4220534B2 (ja) 2006-05-18 2006-05-18 符号化システムおよび符号化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006138758A JP4220534B2 (ja) 2006-05-18 2006-05-18 符号化システムおよび符号化方法

Publications (2)

Publication Number Publication Date
JP2007312075A JP2007312075A (ja) 2007-11-29
JP4220534B2 true JP4220534B2 (ja) 2009-02-04

Family

ID=38844519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006138758A Expired - Fee Related JP4220534B2 (ja) 2006-05-18 2006-05-18 符号化システムおよび符号化方法

Country Status (1)

Country Link
JP (1) JP4220534B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4524501B2 (ja) * 2007-12-27 2010-08-18 株式会社アクセル 符号化システム、符号化方法、符号化プログラム、復号化システム、復号化方法および復号化プログラム
JP5703204B2 (ja) * 2011-12-15 2015-04-15 株式会社東芝 復号化装置および符号化方法
KR101898664B1 (ko) * 2014-06-29 2018-09-13 엘지전자 주식회사 제한된 캐리 연산에 의한 산술 코딩을 수행하기 위한 방법 및 장치

Also Published As

Publication number Publication date
JP2007312075A (ja) 2007-11-29

Similar Documents

Publication Publication Date Title
US10461778B2 (en) Interleaving and puncturing apparatus and method thereof
KR101092106B1 (ko) 데이터 압축
JP2009100222A (ja) 低密度パリティ検査符号の復号装置およびその方法
JP4220534B2 (ja) 符号化システムおよび符号化方法
US20090316792A1 (en) Decoding method, program for decoding method, recording medium with recorded program for decoding method, and decoding device
US8878705B1 (en) Variable bit-length reiterative lossless compression system and method
JP6875661B2 (ja) 誤り検出用冗長ビットの生成方法および装置
JP4524501B2 (ja) 符号化システム、符号化方法、符号化プログラム、復号化システム、復号化方法および復号化プログラム
JP3536921B2 (ja) 相関行列学習方法、装置及びプログラム
JPH06121172A (ja) 画像符号化装置
JP6303636B2 (ja) 画像処理装置及び画像処理方法
JP5200854B2 (ja) 符号化装置、復号装置、及び画像処理システム
JP2005217871A (ja) 算術復号化装置および算術復号化プログラム
US11115050B1 (en) Hardware friendly data decompression
JP2591332B2 (ja) 誤り訂正復号装置
CN111614363B (zh) 维特比算法的改进方法和接收装置
JPH10215187A (ja) 誤り検出符号化復号装置および方法
JP3272173B2 (ja) 誤り訂正符号/復号化装置
CN116582137A (zh) 删余卷积码的母码和删余模式的识别方法及装置
JP3729129B2 (ja) 符号化方法、符号化装置及び記録方法
KR102355585B1 (ko) 플래시 메모리 산술 인코딩과 디코딩을 위한 방법과 장치
JP4110558B2 (ja) 符号化装置、復号装置、符号化方法および復号方法
JP2001352250A (ja) 復号化装置、相関行列学習装置、復号化方法および相関行列学習方法
JP2004362684A (ja) 変調装置および変調方法
KR20040006658A (ko) 비터비 알고리즘의 가산-비교-선택 장치 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081104

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: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4220534

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

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

LAPS Cancellation because of no payment of annual fees