(57)【要約】【課題】符号範囲を用いた符号化処理の高速化を図る。【解決手段】符号化システムは予測処理部３を有し、この予測処理部３は、今回の処理対象に関して、符号範囲処理部２が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで近似している。近似された複数の符号範囲特定値が特定する符号範囲が、出力符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。次回の処理対象に関する処理は、今回の処理対象に関する予測処理の終了後に開始する。【選択図】図２
2007312075.tif 000002
【特許請求の範囲】
【請求項１】
複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムにおいて、
前記複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する符号範囲記憶部と、
今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う符号範囲処理部と、
今回の処理対象に関して、前記符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う予測処理部と、
今回の処理対象における前記符号範囲処理部が算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、前記予測処理による判定が正しいか否かを判定する実測処理を行う実測処理部と、
少なくとも今回の処理対象における前記予測処理の終了後に、前記符号範囲処理部に対して、次回の処理対象としての前記算出処理の開始を指示するとともに、前記予測処理と前記実測処理の判定結果に応じて前記算出処理を制御する制御部と
を有することを特徴とする符号化システム。
【請求項２】
前記制御部は、
前記予測処理において、前記近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、前記実測処理において、前記予測処理による判定が正しいと判定した場合、前記符号範囲処理部が算出した複数の符号範囲特定値の一部を出力し、
前記予測処理において、前記近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、前記実測処理において、前記予測処理による判定が誤りと判定した場合、前記符号範囲処理部に対して、次回の処理対象としての前記算出処理を中止し、今回の処理対象における前記符号範囲処理部が算出した複数の符号範囲特定値に基づいて、次回の処理対象としての前記算出処理の開始を指示することを特徴とする請求項１に記載された符号化システム。
【請求項３】
前記制御部は、
今回の処理対象における、少なくとも前記予測処理部の前記予測処理の終了後に、前記実測処理部に対して、前記実測処理の開始を指示することを特徴とする請求項１または２に記載された符号化システム。
【請求項４】
前記予測処理部は、
今回の処理対象に関して、前記符号範囲処理部が算出した複数の符号範囲特定値の中間ビットの加減算処理において、桁上がりまたは桁下がりが発生するか否かを判定することで、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行うことを特徴とする請求項１から３に記載された符号化システム。
【請求項５】
前記予測処理部は、
前記予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれると判定した場合、複数の符号範囲特定値を前記出力すべきビット数だけシフトするシフト処理を行い、
前記予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれないと判定した場合、前記シフト処理を行わないことを特徴とする請求項１から４に記載された符号化システム。
【請求項６】
前記予測処理部は、
前記近似された複数の符号範囲特定値の中間ビット同士との演算処理において、桁上がりまたは桁下がりが起きるか否かを判定することで、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測判定部と、
前記予測判定部による当該判定結果を格納するレジスタと、
前記レジスタに格納された当該判定結果に応じて次回の処理対象で用いられる複数の符号範囲特定値のそれぞれを出力すべき符号のビット数分だけシフトするシフタと
を有することを特徴とする請求項１から５のいずれかに記載された符号化システム。
【請求項７】
前記符号範囲は、前記複数の符号範囲特定値である上限値、下限値または幅のうちの所定の二つの組み合わせによって特定されることを特徴とする請求項１から７のいずれかに記載された符号化システム。
【請求項８】
前記符号化システムは、
今回の処理対象における前記符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さいか否かを判定する符号範囲判定処理を行う符号範囲補正部をさらに有し、
前記符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さい場合、前記符号範囲処理部は、前記符号範囲処理部が算出した複数の符号範囲特定値を更新する符号範囲更新処理を行い、
前記制御部は、前記符号範囲処理部に対して、次回の処理対象に関する前記算出処理を中止し、今回の処理対象に関する前記符号範囲補正部が更新した複数の符号範囲特定値に基づいて、次回の処理対象に関する前記算出処理の開始を指示することを特徴とする請求項１から５のいずれかに記載された符号化システム。
【請求項９】
前記符号化システムは、
今回の処理対象で用いられた前記シンボルの出現頻度を特定可能な複数のカウント値のそれぞれが、所定の値であるか否かを判定するカウント値判定処理を行うカウント値補正部をさらに有し、
前記シンボルの出現頻度を特定可能な複数のカウント値の合計が、所定の値である場合、前記カウント値補正部は、前記シンボルの出現頻度を特定可能な複数のカウント値のそれぞれを更新するカウント値更新処理を行い、
前記制御部は、前記符号範囲処理部に対して、次回の処理対象に関する前記算出処理を中止し、今回の処理対象に関する前記カウント値補正部が更新した複数のカウント値のそれぞれに基づく前記算出処理の開始を指示することを特徴とする請求項１から６のいずれかに記載された符号化システム。
【請求項１０】
複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムにおいて、
前記複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する符号範囲記憶部と、
今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う符号範囲処理部と、
今回の処理対象に関して、前記符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う予測処理部と、
少なくとも今回の処理対象における前記予測処理の終了後に、前記符号範囲処理部に対して、次回の処理対象としての前記算出処理の開始を指示する制御部と
を有することを特徴とする符号化システム。
【請求項１１】
複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法において、
今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する第１のステップと、
今回の処理対象に関して、前記第１のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する第２のステップと、
今回の処理対象に関して前記第１のステップで算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、前記第２のステップによる判定が正しいか否かを判定する第３のステップとを有し、
少なくとも今回の処理対象に関する前記第２のステップの終了後に、次回の処理対象に関する前記第１のステップを開始するとともに、前記第２のステップと前記第３のステップとの判定結果に応じて前記第１のステップを制御することを特徴とする符号化方法。
【請求項１２】
複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法において、
今回の処理対象となる一のシンボルが読み込まれた場合、当該読み込まれたシンボルに対応するカウント値と、前記複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する第１のステップと、
今回の処理対象に関して、前記第１のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで当該複数の符号範囲特定値を近似し、当該近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する第２のステップと、
少なくとも今回の処理対象に関する前記第２のステップの終了後に、次回の処理対象に関する前記第１のステップを開始することを特徴とする符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号範囲を処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する技術に関する。
【背景技術】
【０００２】
エントロピー符号化の一つとして算術符号化がある。算術符号化は、シンボル列をひとつの符号語にする符号化であり、シンボルの出現確率に基づいた線分（符号範囲）を、シンボルに応じた区間に分割する処理を繰り返すことで、最終的にその区間に含まれる一つの実数を出力する処理である。特許文献１には、この算術符号化において、処理速度の高速化を図る技術が開示されている。具体的には、シンボルの出現頻度の最大値を２の累乗に維持することで、除算処理をシフト処理のみで実行する。
【０００３】
【特許文献１】特開平１０−３２４９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、算術符号化の符号範囲に類似するレンジコーダによる符号化を行う場合、サイクル毎に入力されるシンボルに従って、符号範囲を徐々に狭め、最終的に複数のシンボルで構成するシンボル列に対応するその符号範囲を特定する値の一部のビットを符号として出力する。このとき、符号の出力の条件として、所定の上位ビットが次回以降の処理対象に関して、どちらも不変であることを前提としているが、この上位ビットの値を特定するためには、符号範囲を特定する値（符号範囲特定値）の全てのビットに基づいて演算処理を行わなければならない。そのため、その判定（出力判定）に多くの時間を要し、符号化処理全体の高速化を図る上でボトルネックとなる。
【０００５】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、符号の出力にかかる処理を高速化することにより、符号化処理全体の高速化を図ることである。
【０００６】
また、本発明の別の目的は、符号化処理全体の高速化を図りながらも、本来の符号化処理が論理的に維持され、正しい符号化データが得られるのを保証することである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するために、第１の発明は、複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムを提供する。この符号化システムは、符号範囲記憶部と、符号範囲処理部と、予測処理部と、実測処理部と、制御部とを有する。符号範囲記憶部は、複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する。符号範囲処理部は、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う。予測処理部は、符号範囲処理部と、今回の処理対象に関して、符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。実測処理部は、今回の処理対象における符号範囲処理部が算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、予測処理による判定が正しいか否かを判定する実測処理を行う。制御部は、少なくとも今回の処理対象における予測処理の終了後に、符号範囲処理部に対して、次回の処理対象としての算出処理の開始を指示するとともに、予測処理と実測処理の判定結果に応じて算出処理を制御する。
【０００８】
ここで、第１の発明において、制御部は、予測処理において、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、実測処理において、予測処理による判定が正しいと判定した場合、符号範囲処理部が算出した複数の符号範囲特定値の一部を出力することが好ましい。一方、予測処理において、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれると判定し、かつ、実測処理において、予測処理による判定が誤りと判定した場合、符号範囲処理部に対して、次回の処理対象としての算出処理を中止し、今回の処理対象における符号範囲処理部が算出した複数の符号範囲特定値に基づいて、次回の処理対象としての算出処理の開始を指示することが好ましい。さらに、制御部は、今回の処理対象における、少なくとも予測処理部の予測処理の終了後に、実測処理部に対して、実測処理の開始を指示することが好ましい。
【０００９】
また、第１の発明において、予測処理部は、今回の処理対象に関して、符号範囲処理部が算出した複数の符号範囲特定値の中間ビットの加減算処理において、桁上がりまたは桁下がりが発生するか否かを判定することで、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行うことが好ましい。さらに、予測処理部は、予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれると判定した場合、複数の符号範囲特定値を出力すべきビット数だけシフトするシフト処理を行い、予測処理によって、出力すべき符号のビット数によって規定される区間内に含まれないと判定した場合、シフト処理を行わないことが好ましい。
【００１０】
さらに、第１の発明において、予測処理部は、予測判定部と、レジスタと、シフタとを有することが好ましい。予測判定部は、近似された複数の符号範囲特定値の中間ビット同士との演算処理において、桁上がりまたは桁下がりが起きるか否かを判定することで、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する。レジスタは、予測判定部による判定結果を格納する。シフタは、レジスタに格納された判定結果に応じて次回の処理対象で用いられる複数の符号範囲特定値のそれぞれを出力すべき符号のビット数分だけシフトする。なお、符号範囲は、複数の符号範囲特定値である上限値、下限値または幅のうちの所定の二つの組み合わせによって特定されることが好ましい。
【００１１】
さらに、第１の発明において、符号化システムは、今回の処理対象における符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さいか否かを判定する符号範囲判定処理を行う符号範囲補正部をさらに有することが好ましい。このとき、符号範囲処理部が算出した複数の符号範囲特定値が、所定の値より小さい場合、符号範囲処理部は、符号範囲処理部が算出した複数の符号範囲特定値を更新する符号範囲更新処理を行う。そして、制御部は、符号範囲処理部に対して、次回の処理対象に関する算出処理を中止し、今回の処理対象に関する符号範囲補正部が更新した複数の符号範囲特定値に基づいて、次回の処理対象に関する算出処理の開始を指示する。
【００１２】
さらに、第１の発明において、符号化システムは、今回の処理対象で用いられたシンボルの出現頻度を特定可能な複数のカウント値のそれぞれが、所定の値であるか否かを判定するカウント値判定処理を行うカウント値補正部をさらに有することが好ましい。このとき、シンボルの出現頻度を特定可能な複数のカウント値の合計が、所定の値である場合、カウント値補正部は、シンボルの出現頻度を特定可能な複数のカウント値のそれぞれを更新するカウント値更新処理を行う。そして、制御部は、符号範囲処理部に対して、次回の処理対象に関する算出処理を中止し、今回の処理対象に関するカウント値補正部が更新した複数のカウント値のそれぞれに基づく算出処理の開始を指示する。
【００１３】
第２の発明は、複数の符号範囲特定値によって特定される符号範囲を、処理対象となるシンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化システムを提供する。この号化システムは、複数の符号範囲特定値と、シンボルの出現頻度を特定可能な複数のカウント値とを格納する符号範囲記憶部と、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する算出処理を行う符号範囲処理部と、今回の処理対象に関して、符号範囲処理部が算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う予測処理部と、少なくとも今回の処理対象における予測処理の終了後に、符号範囲処理部に対して、次回の処理対象としての算出処理の開始を指示する制御部とを有する。
【００１４】
第３の発明は、複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法を提供する。この符号化方法は、第１から第３までのステップで構成される。第１のステップと、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する。第２のステップは、今回の処理対象に関して、第１のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する。第３のステップは、今回の処理対象に関して第１のステップで算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、第２のステップによる判定が正しいか否かを判定する。このとき、少なくとも今回の処理対象に関する第２のステップの終了後に、次回の処理対象に関する第１のステップを開始するとともに、第２のステップと第３のステップとの判定結果に応じて第１のステップを制御する。
【００１５】
第４の発明は、複数の符号範囲特定値によって特定される符号範囲を、シンボルに応じた区間に分割する処理を繰り返すことによって、複数のシンボルで構成されたシンボル列を符号化する符号化方法を提供する。この符号化方法は、第１のステップと第２のステップとで構成される。第１のステップは、今回の処理対象となる一のシンボルが読み込まれた場合、読み込まれたシンボルに対応するカウント値と、複数の符号範囲特定値とに基づいて、次回の処理対象で用いられる複数の符号範囲特定値を算出する。第２のステップは、今回の処理対象に関して、第１のステップで算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで複数の符号範囲特定値を近似し、近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する。このとき、少なくとも今回の処理対象に関する第２のステップの終了後に、次回の処理対象に関する第１のステップを開始する。
【発明の効果】
【００１６】
第１から第４の発明によれば、符号化システムは、今回の処理対象に関して、算出した複数の符号範囲特定値の中間ビット以下のビットを切り捨てることで、この複数の符号範囲特定値を近似している。近似された複数の符号範囲特定値が特定する符号範囲が、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。次回の処理対象に関する処理は、今回の処理対象に関する少なくとも予測処理の終了後に開始される。そのため、符号の出力にかかる処理が高速化し、符号化処理全体の高速化を図ることができる。
【００１７】
特に、第１または第３の発明によれば、上記効果に加えて、この予測処理による判定が正しかったかを判定する実測処理を行う。そして、予測処理と実測処理の判定結果に応じて算出処理を制御する。そのため、符号化処理全体の高速化を図りながらも、本来の符号化処理が論理的に維持され、正しい符号化データが得られるのを保証することができる。
【発明を実施するための最良の形態】
【００１８】
まず、具体的なシステム構成の説明に先立ち、本実施形態にかかる符号化アルゴリズムについて説明する。符号範囲を用いた符号化は、符号範囲特定値によって設定される符号範囲を、処理対象となるシンボル（具体的にはシンボルの種類）に応じた区間に分割する処理が繰り返し実行される。そして、この繰り返し処理によって得られた演算結果を符号化することによって、シンボル列の符号化が行われるものである。符号範囲特定値は、一次元の線分で表現される符号範囲の絶対的な位置を特定するための情報であり、一例として、符号範囲の下限値ＬＯＷと幅ＲＮＧとを用いる。符号範囲を用いた符号化の基本的な処理フローをまとめると以下のようになる。
【００１９】
［処理フロー］
（１）  処理対象となるシンボルを出現頻度表の更新前に取得する。
（２）  （１）で取得したシンボルに基づいて、下限値ＬＯＷおよび幅ＲＮＧを更新する。
（３）  （１）で取得したシンボルに基づいて、出現頻度表を更新する。
（４）  所定の出力条件を満たす場合、下限値のＬＯＷの上位ビットを出力する。
（５）  （１）に戻り、終了条件を満たすまで繰り返す。
【００２０】
なお、出現頻度表とは、処理対象のシンボル列に含まれるそれぞれのシンボルの出現頻度を特定可能な複数のカウント値を指す。各シンボルの出現頻度が予め判明していれば、（３）の処理は、この予め判明したカウント値（出現頻度）に基づいて、新たな符号範囲特定値を算出することなる。
【００２１】
図１の符号化における符号範囲の遷移図を参照しながら、符号範囲を用いた符号化の具体的なケースについて説明する。本ケースは、出現頻度表に４つのシンボル"ａ"，"ｂ"，"ｃ"，"ｄ"のカウント値が予め設定されており、カウント値の更新（上記の（３）の処理）は行われないものとする。入力の一例として"ｂ"，"ａ"・・・の順にシンボル列のシンボルを入力する。また、符号範囲特定値のビット数は１６（＝ｎ）ビットとし、このうち、出力すべき符号は下限値の上位ビットは２（＝ｍ）ビットとする。
【００２２】
図１（ａ）は、初期状態における符号範囲の状態を示している。符号範囲記憶部１に記憶されている幅ＲＮＧおよび下限値ＬＯＷは、符号化処理前に予め設定されている初期値である。なお、図中の符号範囲は、シンボル毎に線分で分割されているが、これは説明を簡略化するために表記したものであり、実装上、それぞれのシンボルを示す区間を特定する値（境界値）は記憶されていない。図１（ｂ）は、シンボル"ｂ"が入力され、これに伴って更新された符号範囲特定値が特定する符号範囲の状態を示している。同図（ａ）の符号範囲のうち、シンボル"ｂ"に相当する符号範囲が抽出され、さらに、この符号範囲をカウント値に応じた所定の比率で按分した上で、符号範囲を構成するシンボル毎の各区間に割り当てる。
【００２３】
図１（ｃ）は、シンボル"ａ"が入力され、これに伴って更新された符号範囲特定値が特定する符号範囲の状態を示している。同図（ａ）の符号範囲のうち、シンボル"ａ"に相当する符号範囲が抽出され、さらに、この符号範囲をカウント値に応じた所定の比率で按分した上で、符号範囲を構成するシンボル毎の各区間に割り当てる。このとき、符号範囲はｋ×２ｎ−ｍ〜（ｋ＋１）×２ｎ−ｍ（ｋ＝０〜３）の範囲内（図中の点線間）に含まれるか否かを出力条件とする。変数ｋは、出力すべき符号（出力符号）のビット数（ｍビット）で定義され、例えば、ｍが３の場合、ｋ＝０〜７となり、ｍが４の場合、ｋ＝０〜１５となる。一方、符号範囲を用いた符号化は、その符号範囲を徐々に狭める処理であるため、下限値ＬＯＷは、以降の符号範囲の算出処理において、上位２ビットで規定される範囲（符号範囲の最大値を４分割した区間）を超えないことが確定する。したがって、下限値ＬＯＷの上位２ビットも確定することなり、この場合における出力符号は、符号"０１"となる。なお、同図（ｂ）の場合ではこのような条件を満たさないので、出力符号は生成されない。
【００２４】
図１（ｄ）は、下限値ＬＯＷの上位２ビットを出力するにあたり、幅ＲＮＧおよび下限値ＬＯＷを更新した符号範囲の状態を示している。具体的には、出力符号のビット数だけ左ビットシフト（ＭＳＢ（最上位ビット）方向へのビットシフト）を行う。本ケース場合、出力符号のビット数ｍは、２ビットであるので幅ＲＮＧおよび下限値ＬＯＷをそれぞれ２ビット左シフトする。なお、左ビットシフトによって生じた下位２ビットの空白には"０"が格納される。シンボル"ａ"以降にも、処理対象となるシンボルが続く場合、この同図（ｄ）の状態の符号範囲を用いて、新たなシンボルにかかる算出処理を行う。
【００２５】
図２は、符号化における出力条件の説明図である。図２（ａ）は、具体的には、図１（ｃ）の状態における符号範囲を拡大したもの（ｋ＝１）である。符号範囲が１×２ｎ−ｍ〜２×２ｎ−ｍの範囲（出力符号のビット数ｍで規定される区間）内に含まれるか否かを判定するためには、ｎビットで示される下限値ＬＯＷの上位ｍビットと、ｎビットで示される上限値ＵＰの上位ｍビットとが等しいことが必要である。一方、下限値ＬＯＷ，幅ＲＮＧが既に算出されている場合、上限値ＵＰは下式で表される。
ＬＯＷ＋ＲＮＧ＝ＵＰ
【００２６】
つまり、下限値ＬＯＷおよび幅ＲＮＧのうち、それぞれの上位ｍビットを除いた下位（ｎ−ｍ）ビットにおける加算処理の結果が、桁上がりを発生させなければ、符号範囲の下限値ＬＯＷの上位ｍビットと上限値の上位ｍビットとが等しく、これによって規定される符号範囲が１×２ｎ−ｍ〜２×２ｎ−ｍの範囲内に含まれると判定できる。
【００２７】
この判定では、下限値ＬＯＷ，幅ＲＮＧのうち、それぞれ上位ｍビットを除いた下位（ｎ−ｍ）ビットにおける加算処理を行う必要がある。具体的には、それぞれの値の下位（ｎ−ｍ）ビットにおける加算処理を行い、桁上がりが発生するか否かを判定する。したがって、下限値ＬＯＷ，幅ＲＮＧを示すｎビットが大きく、出力符号を示すｍビットが小さい場合、多くのビットに基づいた加算処理が必要となり、当然、演算処理に多くの時間を要する。しかしながら、新たなシンボルにかかる処理を行うためには、下限値ＬＯＷ，幅ＲＮＧの確定が不可欠であるが、出力符号が存在するか否か（桁上がりが発生するか否か）によって、この下限値ＬＯＷ，幅ＲＮＧが更新（左ビットシフト）される可能性がある。つまり、この加算処理の終了による出力判定が確定するまで、新たなシンボルにかかる算出処理を行うことができず、符号化処理の高速化を図る上でボトルネックとなり得る。
【００２８】
そこで、この下位（ｎ−ｍ）ビットよりも少ないビット数を用いて、出力符号が存在するか否かの予測を行う。図２（ｂ）は、図２（ａ）の符号範囲の状態を近似したものである。具体的には、出力符号に相当する上位ビットを除き、そのうちさらに上位ｘビット（ｎビットから見て、中間ｘビット）より下位のビットをさらに切り捨てることによって近似した値を用いて、加算処理を行う。具体的には、幅ＲＮＧ，下限値ＬＯＷのうち中間ｘビットの加算処理によって、桁上がりが発生しないか否かを判定する。
【００２９】
桁上がりが発生する場合、符号範囲の上限値ＵＰが、（ｋ＋１）×２ｎ−ｍを超え、これ以降で入力されるシンボル次第では、符号範囲の下限値ＬＯＷが（ｋ＋１）×２ｎ−ｍ〜（ｋ＋２）×２ｎ−ｍの範囲に含まれる可能性があると判断できる。したがって、下限値ＬＯＷの上位ｍビットが確定しなかったと判定できる。また、桁上がりが発生しない場合、上限値ＵＰが、（ｋ＋１）×２ｎ−ｍを超えず、これ以降で入力されるシンボルによっても、符号範囲の下限値ＬＯＷが（ｋ＋１）×２ｎ−ｍ〜（ｋ＋２）×２ｎ−ｍの範囲に含まれることはないと判断できる。したがって、下限値ＬＯＷの上位ｍビットが確定したと判定できる。
【００３０】
なお、この予測処理は、出力すべき符号があるか否かを、複数の符号範囲特定値（下限値ＬＯＷ，幅ＲＮＧ）の近似のもとで、予め判定するだけである。したがって、仮に、予測処理のみによって出力符号を生成した場合、復号化可能な符号化データを生成する保証はなく、その確率は中間ビットのビット数に依存する。具体的には、予測処理に用いる中間ｘビットで予測された出力符号が、近似を行わずに複数の符号範囲特定値（下限値ＬＯＷ，幅ＲＮＧ）に基づいて出力される（実測処理によって出力される）符号と異なる確率は約１／２ｘ＋１となる。そのため、本実施形態では、中間ｘビットを用いた予測処理だけではなく少なくとも（ｎ−ｍ）ビットを用いた実測処理とを併用することにより、正しい符号化データを得る保証をする。
【００３１】
図３は、上述した符号範囲を用いた符号化を実装した符号化システムの構成図である。この符号化システムは、符号範囲記憶部１と、符号範囲処理部２と、予測処理部３と、実測処理部４と、符号範囲補正部５と、カウント値補正部６と、制御部７とから構成されている。
【００３２】
符号範囲記憶部１は、シンボル列に含まれるそれぞれのシンボルの出現頻度を特定可能な複数のカウント値で格納する。この符号範囲記憶部１の記憶内容は、例えば、出現頻度表としての構成を有しており、これによってカウント値が格納される。シンボルの出現頻度は、出現頻度ＣＮＴ，累積出現頻度ＳＵＭといった２種類のカウント値によって管理されている。出現頻度ＣＮＴは、あるシンボルの出現回数の配列である。初期値は１であり、例えばシンボル"ａ"が２回読み込まれた（入力された）場合、シンボル"ａ"の出現頻度ＣＮＴが１（初期値）から３へとカウントアップされる。累積出現頻度ＳＵＭは、出現頻度表におけるシンボルが下位から上位に至る所定の順序において、そのシンボルより下位の出現頻度ＣＮＴの累積値の配列である。
【００３３】
なお、出現頻度表として、シンボル毎の出現頻度ＣＮＴおよび累積出現頻度ＳＵＭが管理されているが、双方を管理する必要は必ずしもなく、少なくともいずれか一方のみを管理する。なぜなら、累積出現頻度ＳＵＭについては、出現頻度ＣＮＴに基づく加算処理によって一義的に特定でき、出現頻度ＣＮＴについても、累積出現頻度ＳＵＭに基づく減算処理によって一義的に特定できるからである。符号範囲記憶部１に格納している出現頻度表から全てのシンボルの出現頻度ＣＮＴが算出できれば、符号範囲記憶部１は全てのシンボルの出現頻度ＣＮＴを管理する必要はない。
【００３４】
また、符号範囲記憶部１は、それぞれｎビット（例えば、ｎ＝３２）で構成される複数の符号範囲特定値を格納する。符号範囲特定値は、上述した下限値ＬＯＷおよび幅ＲＮＧ以外に、符号範囲の上限を示す上限値ＵＰも存在し、これらの内の少なくとも２つを管理すれば、符号範囲を一義的に特定される。つまり、管理すべき複数の符号範囲特定値は、本実施形態のような組み合わせだけでなく、下限値ＬＯＷと上限値ＵＰとの組み合わせ、上限値ＵＰと幅ＲＮＧとの組み合わせ、あるいは、下限値ＬＯＷと上限値ＵＰと幅ＲＮＧとの組み合わせでも足りる。
【００３５】
符号範囲処理部２は、今回の処理対象である一のシンボルＳｙｍが入力された場合、符号範囲（複数の符号範囲特定値）を更新する（算出処理）。具体的には、まず、符号範囲処理部２は、符号範囲記憶部１の出現頻度表を更新する前に、符号範囲記憶部１に格納しているカウント値ＣＮＴ，ＳＵＭを読み出す。そして、シンボルＳｙｍのシンボルに対応したカウント値ＣＮＴ，ＳＵＭに対して、演算処理が行われ、新たな複数の符号範囲特定値として下限値ＬＯＷおよび幅ＲＮＧが算出される。この新たな複数の符号判定特定値は、次回の処理（次回に入力されるシンボルにかかる処理）単位に用いられる。
【００３６】
また、符号範囲処理部２は、シンボル列よりシンボルＳｙｍが処理対象として入力される毎に、この入力されたシンボルに対応したカウント値（ＣＮＴ，ＳＵＭ）を更新する。例えば、出現頻度表が下位からシンボル"ａ"，"ｂ"，"ｃ"の順に並べられており、シンボル"ａ"が処理対象として入力された場合、"ａ"に対応する出現頻度ＣＮＴも１加算した値に更新され、累積出現頻度もそれぞれ１づつ加算した値に更新される。なお、本実施形態では、シンボルＳｙｍが符号範囲処理部２に入力される毎に、符号範囲記憶部１のカウント値ＣＮＴ，ＳＵＭを更新するが、上述したように、各シンボルの出現頻度が予め判明していれば、符号範囲処理部２によるカウント値の更新は行わなくてもよい。その場合、符号範囲処理部２は、常に、この予め判明したカウント値（出現頻度）に基づいて、新たな複数の符号範囲特定値を算出する。
【００３７】
予測処理部３は、予測判定部３ａと、レジスタ３ｂと、シフタ３ｃとから構成される。予測判定部３ａは、今回の処理対象に関して、符号範囲処理部２が算出した複数の符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）の中間ｘビット以下のビットを切り捨てることで、この複数の符号範囲特定値を近似する。そして、この近似された複数の符号範囲特定値が特定する符号範囲が、出力符号のビット数（ｍビット）によって規定される区間内に、含まれるか否かを判定する（予測処理）。具体的には、符号範囲処理部２が算出した複数の符号範囲特定値の中間ｘビットの加減算処理において、桁上がりまたは桁下がりが発生するか否かを判定することで、出力すべき符号のビット数によって規定される区間内に含まれるか否かを判定する予測処理を行う。本実施形態の場合、上述したとおり、符号範囲処理部２が算出した複数の符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）のｎビットうち中間ｘビットの加算処理によって、桁上がりが発生しないか否かを判定する。
【００３８】
レジスタ３ｂには、予測処理部３の判定結果が格納される。具体的には、近似された符号範囲が所定の区間内に含まれる場合、"１"が格納され、近似された符号範囲が所定の区間内に含まない場合"０"が格納される。シフタ３ｃは、レジスタ３ｂに格納された判定結果に応じて、次回の処理対象で用いられる符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）を更新する（シフト処理）。具体的には、近似された符号範囲が所定の区間内に含まれる場合（レジスタ３ｂが１の場合）、幅ＲＮＧ，下限値ＬＯＷをそれぞれ出力符号のビット数（ｍビット）だけ左シフトさせた符号範囲特定値（幅ＲＮＧ'，下限値ＬＯＷ'）を算出する。なお、左シフトを行うことで生じた符号範囲特定値の下位ｍビットには"０"が格納される。
【００３９】
実測処理部４は、今回の処理対象における符号範囲処理部２が算出した複数の符号範囲特定値に基づいて、出力すべき符号のビット数によって規定される区間内に含まれるか否かを実測することで、予測処理部３による判定が正しいか否かを判定する（実測処理）。具体的には、判定は、上述したように、符号範囲処理部２が算出した複数の符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）のうち、出力符号となる上位ｍビットを除いた（ｎ−ｍ）ビットの加算処理によって、桁上がりが発生しないか否かを判定する。
【００４０】
符号範囲補正部５は、符号範囲判定部５ａと、符号範囲更新部５ｂとから構成される。符号範囲判定部５ａは、今回の処理対象に関して符号範囲処理部２が算出した符号範囲特定値（幅ＲＮＧ）が、所定の値より小さいか否かを判定する（符号範囲判定処理）。符号範囲更新部５ｂは、符号範囲判定部５ａによる判定の結果、予測処理部３が更新した符号範囲特定値が、所定の値より小さい場合、符号範囲判定部５ａからの指示により、予測処理部３が更新した符号範囲特定値をさらに更新する（符号範囲更新処理）。具体的には、幅ＲＮＧ，下限値ＬＯＷをそれぞれ所定数ビットだけ左シフトさせた符号範囲特定値（幅ＲＮＧ''，下限値ＬＯＷ''）を算出する。なお、この判定処理および更新処理は、シンボルが入力される毎によって符号範囲が極端に狭くなり、符号範囲処理部２の算出処理における誤差の発生を抑制するための処理である。
【００４１】
カウント値補正部６は、カウント値判定部６ａと、カウント値更新部６ｂとから構成される。カウント値判定部６ａは、今回の処理対象となるシンボルの出現頻度を特定可能な複数のカウント値ＣＮＴの合計が、所定の値であるか否かを判定する（カウント値判定処理）。カウント値更新部６ｂは、カウント値判定部６ａによる判定の結果、今回の処理対象に関するシンボルの出現頻度を特定可能な複数のカウント値の合計が所定の値である場合、カウント値判定部６ａからの指示により、予測処理部３が更新したカウント値うち該当するカウント値ＣＮＴ，ＳＵＭをさらに更新する（カウント値更新処理）。具体的には、具体的には、カウント値ＣＮＴを１ビットだけ右シフトさせた（半減させた）カウント値ＣＮＴ'，ＳＵＭ'を算出する。なお、この判定処理および更新処理は、入力されるシンボルに対応するシンボルのカウント値の比率によって、符号範囲を決定する符号範囲処理部２の算出処理を軽減するための処理である。
【００４２】
なお、本実施形態では、シンボルＳｙｍが入力される毎に、この入力されたシンボルＳｙｍに対応したカウント値（ＣＮＴ，ＳＵＭ）を更新するが、本発明は、これに限定されない。具体的には、シンボル列の符号化に先立って、このシンボル列のシンボルのカウント値（出現頻度）を予め生成し、このカウント値に基づいて、算出処理を繰り返してもよい。その場合、符号範囲処理部２によるカウント値の更新も行われず、カウント値補正部６によるカウント値の更新も必要なくなる。
【００４３】
制御部７は、少なくとも今回の処理対象における予測処理部３による予測処理の終了後に、符号範囲処理部２に対して、次回の処理対象に関する算出処理の開始を指示する。また、今回の処理対象に関する予測処理部３による予測処理の判定結果と、実測処理部４による判定結果との比較に応じて、同時並行的に行っていた符号範囲処理部２による次回の算出処理を制御する。具体的には、予測処理部３（予測判定部３ａ）において、近似された複数の符号範囲特定値が特定する符号範囲が、出力符号のビット数によって規定される区間内に含まれるか否かを判定する。そして、実測処理部４において、予測処理部３の判定が正しいと判定した場合、符号範囲処理部２が算出した符号範囲特定値の一部（下限値ＬＯＷの上位ｍビット）を出力させる。一方、実測処理部４において、予測処理部３の判定が誤りと判定した場合、符号範囲処理部２に対して、次回の処理対象に関する算出処理の中止し、今回の処理対象に関する符号範囲処理部２が算出した複数の符号範囲特定値に基づいて、次回の処理対象に関する算出処理の開始を再び指示する。
【００４４】
さらに、制御部７は、今回の処理対象に関する符号範囲補正部５（符号範囲判定部５ａ）およびカウント値補正部６（カウント値判定部６ａ）による判定結果に応じて、並行に行っていた符号範囲処理部２による次回の算出処理を制御する。具体的には、２つの判定部（符号範囲判定部５ａ，カウント値判定部６ａ）のうちいずれか１つが、判定条件を満たす場合、符号範囲処理部２に対して、次回の処理対象に関する算出処理の中止を指示する。
【００４５】
符号範囲判定部５ａの条件を満たす場合、今回の処理対象に関する符号範囲処理部２が算出した複数の符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）を、符号範囲更新部５ｂによってさらに更新した複数の符号範囲特定値（幅ＲＮＧ''，下限値ＬＯＷ''）に基づく次回の処理対象に関する算出処理の開始を指示する。また、カウント値判定部６ａの条件を満たす場合、今回の処理対象に関して符号範囲処理部２が算出した複数のカウント値ＣＮＴ，ＳＵＭを、カウント値更新部６ｂによってさらに更新した複数のカウント値ＣＮＴ'，ＳＵＭ'に基づく次回の処理対象に関する算出処理の開始を指示する。なお、２つの判定部５ａ，６ａの条件を両方とも満たす場合、対応する各更新部５ｂ，６ｂが更新した複数の符号範囲特定値（幅ＲＮＧ''，下限値ＬＯＷ''）および複数のカウント値ＣＮＴ'，ＳＵＭ'に基づいて、次回の処理対象に関する算出処理の開始が制御部７から指示される。また、２つの補正部５，６は、別個の値を対象に判定処理を行っているため、それぞれ並行して符号範囲にかかる処理（符号範囲判定処理，符号範囲更新処理）およびカウント値にかかる処理（カウント値判定処理，カウント値更新処理）が可能である。
【００４６】
また、制御部７は、シンボル列の符号化を終了するか否かの終了条件も判定する。この終了条件は、符号化処理における繰り返し処理を防ぎ、例えば、復号化システムにも共通して適用できる（判定できる）ものあれば、どのような条件であってもよい。本実施形態において、終了条件は例として以下がある。
（例１）
符号化処理前に予め符号化終了を示すシンボル（例えば、シンボル"ＥＯＦ"）を設定しておき、このシンボル処理対象として入力された場合（Ｓｙｍ＝"ＥＯＦ"）
（例２）
符号化処理前に予めループ回数の閾値（ＬＡＳＴ）を設定しておき、ループ変数ｉが閾値に達した場合（i＝ＬＡＳＴ)
【００４７】
図４は、符号処理の説明図である。次に、図１の構成図に基づいて、連続する４つのシンボルに対応した符号列の復号処理について説明する。一例として、処理対象のシンボル列は、"ｂ"，"ａ"，"ｃ"，"ｄ"，"ｅ"・・・としている。５つのユニット２〜６が行う連続する５つのシンボル（シンボル列）に対する、それぞれの処理の処理順序を示すタイムチャートである。符号範囲処理部２は、算出処理を行う。予測処理部３は、２つの処理（予測処理，シフト処理）を行う。実測処理部４は、実測処理を行う。符号範囲補正部５は、２つの処理（符号範囲判定処理と、これにかかる符号範囲更新処理）を行う。カウント値補正部６は、２つの処理（カウント値判定処理と、これにかかるカウント値更新処理）を行う。ここで、算出処理（網掛け部）の左の文字は、入力されるシンボルを示す。
【００４８】
なお、同図に記載したサイクルは、各処理の順序を説明する上で定義したものである。したがって、このサイクルに厳密にしたがった処理は要求されない。例えば、本実施形態において、算出処理と、予測処理と、これに係るシフト処理とが同一サイクル内で行われているが、これに限らず、例えば、シフト処理が、このサイクルの次のサイクル内において、算出処理の開始に先立ってが行われるようにしてもよい。また、判定処理とそれに係る更新処理は、同一サイクル内で行われているが、これに限らず、例えば、更新処理が、このサイクルの次のサイクル内において、算出処理の開始に先立って行われるようにしてもよい。
【００４９】
まず、１番目のサイクル（ｃ＝１）では、符号範囲処理部２にシンボル"ｂ"が入力され、これに対応する算出処理が行われる。そして、この算出処理が終了すると、算出された幅ＲＮＧおよび下限値ＬＯＷに基づいて、予測処理部３（予測判定部３ａ）による予測処理（図中、グレー部）が行われる。そして、この予測処理によって、所定の範囲内に符号範囲が含まれなかった場合、レジスタ３ｂに"０"が格納され、シフト処理は行われない。制御部７は、予測処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部２に指示する。
【００５０】
つぎに、２番目のサイクル（ｃ＝２）では、符号範囲処理部２にシンボル"ａ"が入力され、これに対応する算出処理が行われる。そして、この算出処理が終了すると、算出された幅ＲＮＧおよび下限値ＬＯＷに基づいて、予測処理部３（予測判定部３ａ）による予測処理が行われる。そして、この予測処理によって所定の範囲内に符号範囲が含まれる場合（図中の"○"）、レジスタ３ｂに"１"が格納され、シフタ３ｃによるシフト処理が行われる。制御部７は、シフト処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部２に指示する。
【００５１】
このとき、実装する回路の構成上、シンボル"ｂ"を対象とした処理で、実測処理部４，符号範囲補正部５，カウント値補正部６は、符号範囲処理部２が算出した幅ＲＮＧ，下限値ＬＯＷに基づいた各種処理を行う。しかしながら、予測処理による判定が否である以上、出力符号は存在しないので、その判定結果は以降の処理に反映されずに破棄される。
【００５２】
３番目のサイクル（ｃ＝３）では、符号範囲処理部２にシンボル"ｃ"が入力されるので、前回の（シンボル"ａ"に関する）処理対象で左２ビットシフトされた幅ＲＮＧ'，下限値ＬＯＷ'に基づいて、算出処理が行われる。そして、この算出処理が終了すると、算出された幅ＲＮＧおよび下限値ＬＯＷに基づいて、予測処理が行われる。そして、この予測処理によって所定の範囲内に符号範囲が含まれる場合（図中の"○"）、レジスタ３ｂに"１"が格納され、シフタ３ｃによるシフト処理（無地部）が行われる。制御部７は、シフト処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部２に指示する。
【００５３】
一方、これと並行して、シンボル"ａ"を対象とした処理で、符号範囲処理部２が算出した幅ＲＮＧ，下限値ＬＯＷに基づいて、実測処理（左下がり斜線部）と符号範囲判定処理（右下がり斜線部）とが行われ、符号範囲処理部２が更新したカウント値ＣＮＴに基づいて、カウント値判定処理（右下がり斜線部）が行われる。その結果、いずれの判定も正しい場合（図中の"○"）、制御部７によって、符号範囲記憶部１に格納された下限値ＬＯＷの上位２ビットが出力され、シフタ３ｃによって左２ビットシフトされた幅ＲＮＧ'，下限値ＬＯＷ'が符号範囲記憶部１に格納される。
【００５４】
４番目のサイクル（ｃ＝４）では、符号範囲処理部２にシンボル"ｄ"が入力されるので、前回の（シンボル"ｃ"に関する）処理対象で左２ビットシフトした幅ＲＮＧ'，下限値ＬＯＷ'に基づいて、算出処理が行われる。
【００５５】
一方、これと並行して、シンボル"ｃ"を対象とした処理で、符号範囲処理部２が算出した幅ＲＮＧ，下限値ＬＯＷに基づいて、実測処理と符号範囲判定処理とが行われ、符号範囲処理部２が更新したカウント値ＣＮＴに基づいて、カウント値判定処理が行われる。実測処理によって予測処理の予測結果が誤っている場合（図中の"×"）、制御部７によって、符号範囲処理部２が算出した幅ＲＮＧ，下限値ＬＯＷが符号範囲記憶部１に格納され、現在行っている算出処理を中止した上で、次回のサイクルで、シンボル"ｃ"を対象とした処理で、この幅ＲＮＧ，下限値ＬＯＷに基づく算出処理が指示される。
【００５６】
５番目のサイクル（ｃ＝５）では、先程、符号範囲処理部２にシンボル"ｄ"が入力され、これに対応する算出処理が行われる。この算出処理は、前のサイクルで制御部７が指示したように、シンボル"ｃ"を対象とした処理で、符号範囲処理部２が算出した幅ＲＮＧ，下限値ＬＯＷに基づいて行われる。そして、この算出処理が終了すると、算出された幅ＲＮＧおよび下限値ＬＯＷに基づいて、予測処理が行われる。そして、この予測処理によって、所定の範囲内に符号範囲が含まる場合（図中の"○"）、レジスタ３ｂに"１"が格納され、シフト処理が行われる。制御部７は、予測処理の終了後、次回の処理対象に関する算出処理の開始を符号範囲処理部２に指示する。
【００５７】
６番目のサイクル（ｃ＝６）では、符号範囲処理部２にシンボル"ｅ"が入力されるので、前回の（シンボル"ｄ"に関する）処理対象で左２ビットシフトされた幅ＲＮＧ'，下限値ＬＯＷ'に基づいて、算出処理が行われる。
【００５８】
一方、これと並行して、シンボル"ｄ"を対象とした処理で、符号範囲処理部２が算出した幅ＲＮＧ，下限値ＬＯＷに基づいて、実測処理と符号範囲判定処理とが行われ、符号範囲処理部２が更新したカウント値ＣＮＴに基づいて、カウント値判定処理が行われる。いずれかの判定処理（符号範囲判定処理，カウント値判定処理）において、幅ＲＮＧまたはカウント値ＣＮＴが所定の条件を満たす（図中の"×"）場合、該当する判定処理に対応する更新処理（符号範囲更新処理，カウント値更新処理）が行われ、更新された幅ＲＮＧ''，下限値ＬＯＷ''またはカウント値ＣＮＴ'，ＳＵＭ'が符号範囲記憶部１に格納される。そして、制御部７によって、現在行っている算出処理を中止させ、次回のサイクルでは、シンボル"ｅ"を対象とした処理で、この幅ＲＮＧ''，下限値ＬＯＷ''またはカウント値ＣＮＴ'，ＳＵＭ'に基づく算出処理が指示される。
【００５９】
本実施形態によれば、符号化システムは予測処理部３を有し、この予測処理部３は、今回の処理対象に関して、符号範囲処理部２が算出したｎビットの複数の符号範囲特定値のうち、上位ｍビットと、中間ｘビット以下のビットとを切り捨てることで近似している。そして、近似された複数の符号範囲特定値の中間ｘビットが特定する符号範囲が、出力符号のｍビットによって規定される区間内に含まれるか否かを判定する予測処理を行う。次回の処理対象に関する処理は、今回の処理対象に関して少なくとも予測処理の終了後に開始される。特に、従来の符号の出力にかかる処理と比べて、加算処理を施すべきビット数が近似（切り捨て）により削減されるので、出力符号が存在するか、否かを一早く把握できる。これにより、次回の処理対象（次回に入力するシンボル）のために用意する符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）を準備・開始できるので、符号化処理全体の高速化を図ることができる。
【００６０】
また、本実施形態によれば、予測処理部３とは別に、この予測処理による判定が正しいか否かを判定する実測処理を行う実測処理部４を設けている。そして、予測処理と実測処理の判定結果に応じて算出処理を制御する。また、予測処理によって更新された符号範囲特定値（幅ＲＮＧ'，下限値ＬＯＷ'）によって、次回の処理対象に関する算出処理が行われていても、今回の算出処理で算出された符号範囲特定値（幅ＲＮＧ，下限値ＬＯＷ）が存在する。特に、予測処理による予測が誤っていた場合、この符号範囲特定値に基づいて、再度、算出処理を行うことができる。そのため、符号化処理全体の高速化を図りながらも、本来の符号化処理が論理的に維持され、正しい符号化データが得られるのを保証することができる。
【００６１】
また、本実施形態では、制御部７は、今回の処理対象に関して、少なくとも予測処理部３の予測処理の終了後に、実測処理部４に対して、実測処理の開始を指示していたが、これに限定されず、予測処理および実測処理の開始の指示を算出処理の終了後に行ってもよい。つまり、予測処理部３と実測処理部４は個別に設けられているので、同一対象の符号範囲特定値に基づいて、予測処理と実測処理とが同時並行的に実行可能である。
【００６２】
なお、本実施形態では、処理対象が"ａ"や"ｂ"といったテキスト（文字）データであったが、例えば、"０"〜"２５５"といった数値が処理対象であってもよい。したがって、画像データおよび音声データといったデータ形式に限らず符号化が可能である。なお、この場合、符号範囲記憶部１には入力され得るシンボルの数に応じた出現頻度表（カウント値）の確保が必要である。
【図面の簡単な説明】
【００６３】
【図１】符号化における符号範囲の遷移図
【図２】符号化における符号出力の説明図
【図３】符号化システムの構成図
【図４】符号処理の説明図
【符号の説明】
【００６４】
１  符号範囲記憶部
２  符号範囲処理部
３  予測処理部
３ａ  予測判定部
３ｂ  レジスタ
３ｃ  シフタ
４  実測処理部
５  符号範囲補正部
５ａ  符号範囲判定部
５ｂ  符号範囲更新部
６  カウント値補正部
６ａ  カウント値判定部
６ｂ  カウント値更新部
７  制御部
【図１】
2007312075.tif 000003
【図２】
2007312075.tif 000004
【図３】
2007312075.tif 000005
【図４】
2007312075.tif 000006