(57)【特許請求の範囲】
【請求項１】
区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズと区間境界値とを更新して区間内座標を符号化する符号化装置において、
数直線上に設定された設定区間の区間サイズを保持する区間サイズ記憶部と、
数直線上に設定された設定区間の区間境界値を保持する区間境界値記憶部と、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習部と、
上記確率学習部において記憶した上記シンボルの出現確率に基づく部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出部と、
上記部分区間算出部で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化部と、
上記第１の正規化部で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化部と、
上記第１の正規化部で正規化した部分区間サイズを補正するサイズ補正値と、上記第２の正規化部で正規化した部分区間境界値を補正する境界補正値を算出する補正値算出部と、
上記第１の正規化部で正規化した部分区間サイズを上記補正値算出部で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして区間サイズ記憶部に出力する区間補正部と、
上記第２の正規化部で正規化した部分区間境界値を上記補正値算出部で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として区間境界値記憶部に出力する区間境界値補正部と
を備え、
上記補正値算出部は、部分区間サイズを算出する有限精度である現管理精度と設定区間の区間サイズを算出した有限精度である前管理精度との差を追加精度として算出し、算出した上記追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする符号化装置。
【請求項２】
上記部分区間算出部は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した上記現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して上記部分区間サイズを取得することを特徴とする請求項１記載の符号化装置。
【請求項３】
上記現管理精度が上記前管理精度より高くなるように算出したシンボルの出現確率に関連付けた近似確率値に基づいた複数の部分区間サイズを保持する部分区間サイズテーブルを備え、
上記部分区間算出部は、上記現管理精度が上記前管理精度より高くなるように設定し、その設定した上記現管理精度に基づいて、上記部分区間サイズテーブルから上記部分区間サイズを選択することを特徴とする請求項１記載の符号化装置。
【請求項４】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうち、より小さいシンボルの出現確率を用いて部分区間サイズを算出し、
上記補正値算出部は、上記部分区間算出部から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする請求項１または２記載の符号化装置。
【請求項５】
上記部分区間算出部は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうち、より小さい値の部分区間サイズを通知し、
上記補正値算出部は、上記部分区間算出部から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする請求項１または３記載の符号化装置。
【請求項６】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出部は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする請求項１記載の符号化装置。
【請求項７】
上記補正値算出部は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されることを特徴とする請求項６記載の符号化装置。
【請求項８】
上記補正値算出部は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されるとともに、上記符号値のオフセットにより複数の割込み処理を識別することを特徴とする請求項６記載の符号化装置。
【請求項９】
区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズと区間境界値とを更新してシンボルを復号する復号装置において、
数直線上に設定された設定区間の区間サイズを保持する区間サイズ記憶部と、
数直線上に設定された設定区間の区間境界値を保持する区間境界値記憶部と、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習部と、
上記確率学習部において記憶した上記シンボルの出現確率に基づく部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出部と、
上記部分区間算出部で算出した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化部と、
上記第１の正規化部で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化部と、
上記第１の正規化部で正規化した部分区間サイズを補正するサイズ補正値と、上記第２の正規化部で正規化した部分区間境界値を補正する境界補正値を算出する補正値算出部と、
上記第１の正規化部で正規化した部分区間サイズを上記補正値算出部で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして区間サイズ記憶部に出力する区間補正部と、
上記第２の正規化部で正規化した部分区間境界値を上記補正値算出部で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として区間境界値記憶部に出力する区間境界値補正部と
を備え、
上記補正値算出部は、部分区間サイズを算出する有限精度である現管理精度と設定区間の区間サイズを算出した有限精度である前管理精度との差を追加精度として算出し、算出した上記追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする復号装置。
【請求項１０】
上記部分区間算出部は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した上記現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して上記部分区間サイズを取得することを特徴とする請求項９記載の復号装置。
【請求項１１】
上記現管理精度が上記前管理精度より高くなるように算出したシンボルの出現確率に関連づけた近似確率値に基づいた複数の部分区間サイズを保持する部分区間サイズテーブルを備え、
上記部分区間算出部は、上記現管理精度が上記前管理精度より高くなるように設定し、その設定した上記現管理精度に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択することを特徴とする請求項９記載の復号装置。
【請求項１２】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうち、より小さいシンボルの出現確率を用いて部分区間サイズを算出し、
上記補正値算出部は、上記部分区間算出部から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする請求項９または１０記載の復号装置。
【請求項１３】
上記部分区間算出部は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうち、より小さい値の部分区間サイズを通知し、
上記補正値算出部は、上記部分区間算出部から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする請求項９または１１記載の復号装置。
【請求項１４】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出部は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする請求項９記載の復号装置。
【請求項１５】
上記補正値算出部は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されることを特徴とする請求項１４記載の復号装置。
【請求項１６】
上記補正値算出部は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されるとともに、上記符号値のオフセットにより複数の割込み処理を識別することを特徴とする請求項１４記載の復号装置。
【請求項１７】
請求項１記載の符号化装置と、請求項９記載の復号装置とを備えたことを特徴とする符号化・復号装置。
【請求項１８】
区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズと区間境界値とを更新して区間内座標を符号化する符号化装置の符号化方法において、
上記符号化装置は、
数直線上に設定された設定区間の区間サイズを保持する区間サイズ記憶部と、
数直線上に設定された設定区間の区間境界値を保持する区間境界値記憶部と
を備え、
上記符号化方法は、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習工程と、
上記確率学習工程において記憶した上記シンボルの出現確率に基づく部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出工程と、
上記部分区間算出工程で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化工程と、
上記第１の正規化工程で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化工程と、
上記第１の正規化工程で正規化した部分区間サイズを補正するサイズ補正値と、上記第２の正規化工程で正規化した部分区間境界値を補正する境界補正値を算出する補正値算出工程と、
上記第１の正規化工程で正規化した部分区間サイズを上記補正値算出工程で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして区間サイズ記憶部に出力する区間補正工程と、
上記第２の正規化工程で正規化した部分区間境界値を上記補正値算出工程で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として区間境界値記憶部に出力する区間境界値補正工程と
を備え、
上記補正値算出工程は、部分区間サイズを算出する有限精度である現管理精度と設定区間の区間サイズを算出した有限精度である前管理精度との差を追加精度として算出し、算出した上記追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする符号化方法。
【請求項１９】
上記部分区間算出工程は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した上記現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して上記部分区間サイズを取得することを特徴とする請求項１８記載の符号化方法。
【請求項２０】
上記符号化装置は、  さらに、上記現管理精度が上記前管理精度より高くなるように算出したシンボルの出現確率に関連づけた近似確率値に基づいた複数の部分区間サイズを保持する部分区間サイズテーブルを備え、
上記部分区間算出工程は、上記現管理精度が上記前管理精度より高くなるように設定し、その設定した上記現管理精度に基づいて、上記部分区間サイズテーブルから上記部分区間サイズを選択することを特徴とする請求項１８記載の符号化方法。
【請求項２１】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうち、より小さいシンボルの出現確率を用いて部分区間サイズを算出し、
上記補正値算出工程は、上記部分区間算出工程から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする請求項１８または１９記載の符号化方法。
【請求項２２】
上記部分区間算出工程は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうち、より小さい値の部分区間サイズを通知し、
上記補正値算出工程は、上記部分区間算出工程から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする請求項１８または２０記載の符号化方法。
【請求項２３】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出工程は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする請求項１８記載の符号化方法。
【請求項２４】
上記補正値算出工程は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されることを特徴とする請求項２３記載の符号化方法。
【請求項２５】
上記補正値算出工程は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されるとともに、上記符号値のオフセットにより複数の割込み処理を識別することを特徴とする請求項２３記載の符号化方法。
【請求項２６】
区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズと区間境界値とを更新してシンボルを復号する復号装置の復号方法において、
上記復号装置は、
数直線上に設定された設定区間の区間サイズを保持する区間サイズ記憶部と、
数直線上に設定された設定区間の区間境界値を保持する区間境界値記憶部と
を備え、
上記復号方法は、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習工程と、
上記確率学習工程において記憶した上記シンボルの出現確率に基づく部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出工程と、
上記部分区間算出工程で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化工程と、
上記第１の正規化工程で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化工程と、
上記第１の正規化工程で正規化した部分区間サイズを補正するサイズ補正値と、上記第２の正規化工程で正規化した部分区間境界値を補正する境界補正値を算出する補正値算出工程と、
上記第１の正規化工程で正規化した部分区間サイズを上記補正値算出工程で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして区間サイズ記憶部に出力する区間補正工程と、
上記第２の正規化工程で正規化した部分区間境界値を上記補正値算出工程で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として区間境界値記憶部に出力する区間境界値補正工程と
を備え、
上記補正値算出工程は、部分区間サイズを算出する有限精度である現管理精度と設定区間の区間サイズを算出した有限精度である前管理精度との差を追加精度として算出し、算出した上記追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出する
ことを特徴とする復号方法。
【請求項２７】
上記部分区間算出工程は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した上記現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して上記部分区間サイズを取得することを特徴とする請求項２６記載の復号方法。
【請求項２８】
上記復号装置は、さらに、上記現管理精度が上記前管理精度より高くなるように算出したシンボルの出現確率に関連づけた近似確率値に基づいた複数の部分区間サイズを保持する部分区間サイズテーブルを備え、
上記部分区間算出工程は、上記現管理精度が上記前管理精度より高くなるように設定し、その設定した上記現管理精度に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択することを特徴とする請求項２６記載の復号方法。
【請求項２９】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうち、より小さいシンボルの出現確率を用いて部分区間サイズを算出し、
上記補正値算出工程は、上記部分区間算出工程から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする請求項２６または２７記載の復号方法。
【請求項３０】
上記部分区間算出工程は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうち、より小さい値の部分区間サイズを通知し、
上記補正値算出工程は、上記部分区間算出工程から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする請求項２６または２８記載の復号方法。
【請求項３１】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出工程は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする請求項２６記載の復号方法。
【請求項３２】
上記補正値算出工程は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されることを特徴とする請求項３１記載の復号方法。
【請求項３３】
上記補正値算出工程は、上記微小区間に符号値を設定し、上記符号値は、割込み処理の同期タイミングを通知するために使用されるとともに上記符号値のオフセットにより複数の割込み処理を識別することを特徴とする請求項３１記載の復号方法。
【請求項３４】
請求項１８記載の符号化方法と、請求項２６記載の復号方法とを有することを特徴とする符号化・復号方法。
【請求項３５】
区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズと区間境界値とを更新して区間内座標を符号化する符号化処理を計算機に実行させるプログラムにおいて、
上記計算機は、
数直線上に設定された設定区間の区間サイズを保持する区間サイズ記憶部と、
数直線上に設定された設定区間の区間境界値を保持する区間境界値記憶部と
を備え、
上記符号化処理は、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習処理と、
上記確率学習処理において記憶した上記シンボルの出現確率に基づく部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出処理と、
上記部分区間算出処理で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化処理と、
上記第１の正規化処理で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化処理と、
上記第１の正規化処理で正規化した部分区間サイズを補正するサイズ補正値と、上記第２の正規化処理で正規化した部分区間境界値を補正する境界補正値を算出する補正値算出処理と、
上記第１の正規化処理で正規化した部分区間サイズを上記補正値算出処理で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして区間サイズ記憶部に出力する区間補正処理と、
上記第２の正規化処理で正規化した部分区間境界値を上記補正値算出処理で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として区間境界値記憶部に出力する区間境界値補正処理と
を計算機に実行させるプログラムであって、
上記補正値算出処理は、部分区間サイズを算出する有限精度である現管理精度と設定区間の区間サイズを算出した有限精度である前管理精度との差を追加精度として算出し、算出した上記追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出する処理を計算機に実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、情報源データに対して効率のよい符号化・復号を実現する符号化方法、復号方法、符号化・復号方法及びこれらの方法を実装した装置と生成された符号データに関する。
【０００２】
【従来の技術】
従来例１．
情報源データを効率よく符号化（圧縮）する技術として、算術符号化が近年の国際標準符号化（ＪＢＩＧ及びＪＰＥＧ）でも採用されている。国際標準算術符号としては、ＩＴＵ−Ｔが規定した国際標準符号化勧告Ｔ．８２（ＪＢＩＧ）やＴ．８１（ＪＰＥＧ）に記載されるＱＭ−Ｃｏｄｅｒなどがある。
算術符号化の原理は、０．０・・・０以上１．０・・・０未満の区間を、出現する個々のデータの出現確率に基づく規則性をもって部分区間に再帰的に分割し、出現した符号化対象データのシーケンスに対応する部分区間内の小数値を符号とするものである。算術復号では、同一規則で再帰的な区間分割を行い、符号値を含む部分区間に対応するシーケンスを復号データとする。以下、符号化対象データを２値（０及び１）と仮定する。
【０００３】
予測を適用する符号化では、符号化対象はデータ値そのものでなく、予測値との一致・不一致を示す２値シンボルを与える。以下、一致を優勢シンボル（値０）、不一致を劣勢シンボル（値１）と呼ぶ。予測値は、出現しやすいデータ値を学習して保持する。よって、優勢シンボルは確率０．５以上、劣勢シンボルは確率０．５以下で出現する。
その算術符号化の区間分割の概念図を、図２３に示す。
【０００４】
ある符号化対象シンボルに対する算術符号化手順は、現区間のサイズをＡ、現区間の下界値である符号をＣ、シンボル値１の出現確率をＰ、シンボル値０，１に対する部分区間サイズをＡ０，Ａｌ、実際に出現したシンボル値Ｘとすると、図２４のように示せる。Ａ，Ｃの初期値は、１．０，０．０とする。
図において、部分区間Ａ０，Ａｌはどちらを区間の上位／下位に配置するかにより符号化演算が異なるため、Ｓ１００３からＳ１００５で上位部分区間Ａｈ、下位部分区間Ａｌ、下位区間対応シンボルＳｌを対応させ、左側はシンボル値０を下位配置、右側はシンボル値１を下位配置の場合を示す。Ｓ１００６で、シンボルＸが下位配置対応シンボルＳｌならば、Ｓ１００７で区間Ａを下位部分区間Ａｌとする。一方、下位配置対応シンボルＳｌでなければ、Ｓ１００８で区間Ａを上位部分区間Ａｈとし、同時にＳ１００９で区間下界値を示す符号Ｃに下位部分区間サイズＡｌを加える。
【０００５】
また、同様に算術復号手順では、符号Ｃを現区間の下界値からの変位に更新するものとし、Ｘを復号シンボル値とすると、図２５のように示せる。Ａの初期値は、１．０、Ｃの初期値は符号化で得られた符号値とする。
図において、部分区間Ａ０，Ａｌはどちらを区間の上位／下位に配置するかにより復号演算が異なるため、Ｓ１１０３からＳ１００６で上位部分区間Ａｈ、下位部分区間Ａｌ、上位区間対応シンボルＳｈ、下位区間対応シンボルＳｌを対応させ、左側はシンボル値０を下位配置、右側はシンボル値１を下位配置の場合を示す。Ｓ１１０７で、符号値Ｃが下位部分区間Ａｌより小さければ、Ｓ１１０８で区間Ａを下位部分区間Ａｌ、Ｓ１１０９で復号シンボルＸを下位区間対応シンボルＳｌとする。一方、小さくなければ、Ｓ１１１０で区間Ａを上位部分区間Ａｈとし、同時にＳ１１１１で区間下界値を示す符号Ｃに下位部分区間サイズＡｌを減じ、Ｓ１１１２で復号シンボルＸを上位区間対応シンボルＳｈとする。
なお、復号データ値は、復号シンボル値が０ならば予測と同じ値、１ならば予測と異なる値（１−予測値）となる。
【０００６】
上記区間分割規則は、出現確率に比例した分割を行うことが最も符号化効率が高いことが情報理論で証明できる。ここに示した手順は乗算型算術符号と呼ばれ、小数表現精度は無限大とされる。
算術符号化は、２進小数演算で行われ、その過程で区間境界値の小数表現精度、すなわち有効桁数の増加が実用化を困難にしていたが、演算でビット値の変化しない小数点に近い上位部分を演算から外して、演算に一定の有効桁数まで保証する減算型算術符号により実用に至った。減算型算術符号化では、乗算型算術符号の区間サイズＡと劣勢シンボルの出現確率値Ｐの乗算値Ａｌを確率Ｐの近似値ＬＳＺで置き換え、更新された区間サイズＡは常に０．５以上となるまで２のべき乗倍に拡大する正規化処理を適用し、シフト処理により実現する。近似値ＬＳＺは、いくつかの候補から確率値Ｐに応じて適切な値が適用され、全体の区間サイズＡ（０．５以上１．０以下）によらず、その近似値ＬＳＺが割り当てられる。
その減算型算術符号化の区間分割の概念図を、図２６に示す。
【０００７】
減算型算術符号化及び減算型算術復号の手順は、図２７及び図２８のように示せる。符号化手順のＳ１２０１、復号手順のＳ１３０１において、近似値ＬＳＺをシンボル値１の部分区間Ａｌとしている。
区間サイズが更新された後、符号化手順のＳ１２０８，Ｓ１２１１、復号手順のＳ１３１０，Ｓ１３１４で、すなわち区間サイズＡを２のべき乗倍に拡大する正規化処理を行うことで常に０．５以上に保つ。優勢シンボルを処理して更新された区間サイズＡが０．５以上を保っているときは、正規化処理の拡大は適用する必要はない。
【０００８】
正規化処理により区間サイズＡは、０．５以上１．０未満に保持されるが、近似値ＬＳＺを使用することで部分区間Ａ０，Ａｌの分割比は実際の確率比に対して誤差をもつ。例えば、図２９に示されるように、近似値ＬＳＺ＝０．３の場合、最大区間サイズＡ＝１．０（初期値のみ）、最小区間サイズＡ＝０．５ではＡｌの部分区間の比率は０．３，０．６となるように、出現確率０．５以下の劣勢シンボルに対して優勢シンボルより大きな区間を割り当ててしまうことがある。このように、ＬＳＺがＡ−ＬＳＺより大きくなるとき、ＬＳＺに優勢シンボルを割り当てる“条件付きＭＰＳ／ＬＰＳ交換”という手法（日本国特許第２１２８１１５号［特公平８−３４４３４］）が、国際標準符号化勧告Ｔ．８２（ＪＢＩＧ）やＴ．８１（ＪＰＥＧ）などに採用されている。
【０００９】
“条件付きＭＰＳ／ＬＰＳ交換”を適用した減算型算術符号化及び減算型算術復号の手順は、図３０及び図３１のように示せる。この場合、シンボル値０の部分区間サイズＡｌは近似値ＬＳＺとするが、部分区間サイズＡ０との大小関係で、最終的に部分区間Ａ０にシンボル値１、部分区間Ａｌにシンボル値０を対応させることもある。
図３０の符号化手順において、Ｓ１４０６からＳ１４１１はＸ＝０（優勢シンボル）に対する処理で、区間Ａを部分区間Ａｌ，Ａｈからより大きい部分区間に更新する。Ｓ１４１２からＳ１４１７はＸ＝１（劣勢シンボル）に対する処理で、区間Ａを部分区間Ａｌ，Ａｈからより小さい部分区間に更新する。
図３１の復号手順において、Ｓ１５０６からＳ１４１２は区間Ａを下方部分区間Ａｌに更新する処理、Ｓ１５１３からＳ１５２１は区間Ａを上方部分区間Ａｈに更新する処理であり、その更新された部分区間がより大きい部分区間ならば復号シンボルをＸ＝０（優勢シンボル）、より小さい部分区間ならば復号シンボルをＸ＝１（劣勢シンボル）とする。
【００１０】
また、減算型算術符号化及び減算型算術復号では、上記“条件付きＭＰＳ／ＬＰＳ交換”という手法以外の例として、日本国特許第２１２８１１０号［特公平８−３４４３２］に記載される部分区間の補正手法があり、部分区間サイズＡ０が０．５より小さくなるとＡ０と０．５の平均値に補正し、それに伴って部分区間サイズＡｌも補正する。
これらの補正手法は、いずれも区間Ａを２つの部分区間Ａ０，Ａｌに分割する時点で適用される。
【００１１】
従来例２．
算術符号化では、最終符号値は最終区間内の任意の座標ととることができる。符号末尾の特定のビットパターンを削除して符号長をより短くするために、符号化終了時に削除された符号末尾の特定ビットパターンを、復号時に符号が足りなければ補足して復号を続けるという規約による。符号から削除される末尾の特定ビットパターンは、例えば、バイト単位で扱われ、通常バイト０ｘ００あるいは０ｘＦＦのいずれかとされるが、前述の国際標準符号化勧告Ｔ．８２ではバイト０ｘ００の連続となっている。
ここで、復号終了の判断は、上記理由により符号長からは判断できない。定長のデータでない限り復号するシンボル数やライン数を通知することが必要であるが、事前には通知できないときには、終了前にマーカセグメントなどを符号中に付加して通知することになる。
【００１２】
マーカセグメントは、エスケープバイト（０ｘＦＦ）と識別バイト、さらに必要に応じてその付加情報から構成される。ここで、符号化時にマーカセグメントと同一値が符号中に発生しないようにするために、符号にエスケープバイトが出現すると、その直後に制御のためのビットやバイトを挿入して識別バイト値の発生を防ぎ、マーカセグメントを符号から区別できるようにしている。この制御のためのビットまたはバイトは、復号時に削除して本来の符号値に戻している。
【００１３】
また、書籍「Ｔｅｘｔ  ｃｏｍｐｒｅｓｓｉｏｎ」（Ｔｅｘｔ  ｃｏｍｐｒｅｓｓｉｏｎ／Ｔｉｍｏｔｈｙ  Ｃ．Ｂｅｌｌ，Ｊｏｈｎ  Ｇ．Ｃｌｅａｒｙ，Ｉａｎ  Ｈ．Ｗｉｔｔｅｎ．，１９９０）によれば、終了を示す専用シンボルを１種増やして最小区間サイズの部分区間を常に確保し、符号化終了時にそのシンボルを符号化して、その部分区間内の座標を符号に選択することにより、復号の終了を判断させることができる。
終了シンボルの符号化は最終シンボルとなるが、それ以前はシンボルの符号化ごとに終了シンボルのための部分区間は常に切捨てられる。
【００１４】
【発明が解決しようとする課題】
従来の有限精度で実現される算術符号では、実用化に当たって一定の演算精度を保持するために、正規化処理を行うが、その処理後の有効桁数がその時点で一時的に減少し、精度を有効に使用できていないという課題があった。
また、従来の算術符号では処理したシーケンスの総シンボル数を事前に共有できないとき、付加情報などを後から通知しないと正常な復号の終了ができず、また、通知する情報の付加により符号長を増加させてしまうという課題があった。また、符号化終了を示す専用シンボルを設定するとすれば、どの部分区間にも割り当てられない区間を常に配分しなければならず、符号化の性能が低下するという課題があった。
【００１５】
本発明に関わる技術は、劣勢シンボルの出現確率が低い場合に、シンボルの出現確率を基にして得た部分区間を新規区間に更新する場合に精度を十分に活用して、符号化効率を向上させることを目的とする。
【００１６】
また、シンボルの出現確率を基にして得た部分区間と残りの部分区間から区間サイズがより小さい部分区間を新規区間に更新される場合に精度を十分に活用して、符号化効率を向上させることを目的とする。
【００１７】
さらに、どちらの部分区間にも属さない微小な部分区間を設け、その内部に符号値を設定することによって、終了専用シンボルを設定するより切捨てられる区間サイズを小さく抑えられ、符号長を増加させることなく通知でき、符号化と復号で複数の同期処理にも応用できるということを目的とする。
【００１８】
【課題を解決するための手段】
この発明に係る符号化装置は、区間サイズ（Ａ）と区間境界値（Ｃ）とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新して区間内座標を符号化する符号化装置において、シンボルを符号化する毎に区間サイズ（Ａ）と区間境界値（Ｃ）とを補正することを特徴とする。
【００１９】
上記符号化装置は、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習部と、
上記確率学習部において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出部と、
上記部分区間算出部で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化部と、
上記第１の正規化部で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化部と、
上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する補正値算出部と、
上記第１の正規化部で正規化した部分区間サイズを上記補正値算出部で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正部と、
上記第２の正規化部で正規化した部分区間境界値を上記補正値算出部で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として出力する区間境界値補正部と
を備えることを特徴とする。
【００２０】
上記符号化装置は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
上記部分区間算出部は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して部分区間サイズを取得し、
上記補正値算出部は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００２１】
上記符号化装置は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
さらに、上記現管理精度が上記前管理精度より高くなるように算出した複数の部分区間サイズを複数のシンボルの出現確率に関連づけて保持する部分区間サイズテーブルを備え、
上記部分区間算出部は、上記シンボルの出現確率に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択し、
上記補正値算出部は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００２２】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうちより、小さいシンボルの出現確率を用いて部分区間サイズを算出し、
上記補正値算出部は、上記部分区間算出部から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする。
【００２３】
上記部分区間算出部は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうちより、小さい値の部分区間サイズを通知し、
上記補正値算出部は、上記部分区間算出部から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする。
【００２４】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出部は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする。
【００２５】
上記微小区間は、符号値を設定され、割込み処理の同期タイミングを通知するために使用されることを特徴とする。
【００２６】
上記微小区間は、符号値を強制的に設定され、割込み処理の同期タイミングを通知し、上記符号値のオフセットにより複数の割込み処理を識別するために使用されることを特徴とする。
【００２７】
この発明に係る復号装置は、区間サイズ（Ａ）と区間境界値（Ｃ）とを有し、数直線上に設定された設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新してシンボルを復号する復号装置において、シンボルを復号する毎に区間サイズ（Ａ）と区間境界値（Ｃ）とを補正することを特徴とする。
【００２８】
上記復号装置は、
上記確率学習部において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出部と、
上記部分区間算出部で算出した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化部と、
上記第１の正規化部で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化部と、
上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する補正値算出部と、
上記第１の正規化部で正規化した部分区間サイズを上記補正値算出部で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正部と、
上記第１の正規化部で正規化した部分区間サイズを上記補正値算出部で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正部と、
上記第２の正規化部で正規化した部分区間境界値を上記補正値算出部で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として出力する区間境界値補正部と
を備えることを特徴とする。
【００２９】
上記復号装置は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
上記部分区間算出部は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して部分区間サイズを取得し、
上記補正値算出部は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００３０】
上記復号装置は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
さらに、上記現管理精度が上記前管理精度より高くなるように算出した複数の部分区間サイズを複数のシンボルの出現確率に関連づけて保持する部分区間サイズテーブルを備え、
上記部分区間算出部は、上記シンボルの出現確率に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択し、
上記補正値算出部は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００３１】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうちより、小さいシンボルの出現確率を用いて部分区間サイズを算出し、
上記補正値算出部は、上記部分区間算出部から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする。
【００３２】
上記部分区間算出部は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうちより、小さい値の部分区間サイズを通知し、
上記補正値算出部は、上記部分区間算出部から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする。
【００３３】
上記部分区間算出部は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出部は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする。
【００３４】
上記微小区間は、符号値を設定され、上記設定された符号値が検出されることによって、割込み処理の同期タイミングを通知することを特徴とする。
【００３５】
上記微小区間は、符号値を強制的に設定され、上記符号値が検出されることによって、割込み処理の同期タイミングを通知し、上記符号値のオフセットにより複数の割込み処理を識別することを特徴とする。
【００３６】
この発明に係る符号化方法は、区間サイズ（Ａ）と区間境界値（Ｃ）とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新して区間内座標を符号化する符号化方法において、シンボルを符号化する毎に区間サイズ（Ａ）と区間境界値（Ｃ）とを補正することを特徴とする。
【００３７】
上記符号化方法は、
シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習工程と、
上記確率学習工程において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出工程と、
上記部分区間算出工程で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化工程と、
上記第１の正規化工程で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化工程と、
上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する補正値算出工程と、
上記第１の正規化工程で正規化した部分区間サイズを上記補正値算出工程で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正工程と、
上記第２の正規化工程で正規化した部分区間境界値を上記補正値算出工程で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として出力する区間境界値補正工程と
を備えることを特徴とする。
【００３８】
上記符号化方法は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
上記部分区間算出工程は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して部分区間サイズを取得し、
上記補正値算出工程は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００３９】
上記符号化方法は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
さらに、上記現管理精度が上記前管理精度より高くなるように算出した複数の部分区間サイズを複数のシンボルの出現確率に関連づけて保持する部分区間サイズテーブルを備え、
上記部分区間算出工程は、上記シンボルの出現確率に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択し、
上記補正値算出工程は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００４０】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうちより、小さいシンボルの出現確率を用いて部分区間サイズを算出することを特徴とする。
【００４１】
上記補正値算出工程は、上記部分区間算出工程から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする。
【００４２】
上記部分区間算出工程は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうちより、小さい値の部分区間を通知し、
上記補正値算出工程は、上記部分区間算出工程から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする。
【００４３】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出工程は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする。
【００４４】
上記微小区間は、符号値を設定され、割込み処理の同期タイミングを通知するために使用されることを特徴とする。
【００４５】
上記微小区間は、符号値を強制的に設定され、割込み処理の同期タイミングを通知し、上記符号値のオフセットにより複数の割込み処理を識別するために使用されることを特徴とする。
【００４６】
この発明に係る復号方法は、区間サイズ（Ａ）と区間境界値（Ｃ）とを有し、数直線上に設定された設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新してシンボルを復号する復号方法において、シンボルを復号する毎に区間サイズ（Ａ）と区間境界値（Ｃ）とを補正することを特徴とする。
【００４７】
上記復号方法は、
上記確率学習工程において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出工程と、
上記部分区間算出工程で算出した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化工程と、
上記第１の正規化工程で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化工程と、
上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する補正値算出工程と、
上記第１の正規化工程で正規化した部分区間サイズを上記補正値算出工程で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正工程と、
上記第１の正規化工程で正規化した部分区間サイズを上記補正値算出工程で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正工程と、
上記第２の正規化工程で正規化した部分区間境界値を上記補正値算出工程で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として出力する区間境界値補正工程と
を備えることを特徴とする。
【００４８】
上記復号方法は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
上記部分区間算出工程は、上記現管理精度が上記前管理精度より高くなるように設定し、設定した現管理精度に基づいて、上記設定区間の区間サイズとシンボルの出現確率との積を算出して部分区間サイズを取得し、
上記補正値算出工程は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００４９】
上記復号方法は、上記設定区間の区間サイズを算出した有限精度を前管理精度とし、上記部分区間サイズを算出する有限精度を現管理精度とし、
さらに、上記現管理精度が上記前管理精度より高くなるように算出した複数の部分区間サイズを複数のシンボルの出現確率に関連づけて保持する部分区間サイズテーブルを備え、
上記部分区間算出工程は、上記シンボルの出現確率に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択し、
上記補正値算出工程は、上記前管理精度と上記現管理精度との差を追加精度として算出し、算出した追加精度を用いて、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００５０】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、分割した少なくとも二つの部分区間サイズに対応するシンボルの出現確率のうちより、小さいシンボルの出現確率を用いて部分区間サイズを算出することを特徴とする。
【００５１】
上記補正値算出工程は、上記部分区間算出工程から出力された部分区間サイズを用いてサイズ補正値と境界補正値とを算出することを特徴とする。
【００５２】
上記部分区間算出工程は、上記シンボルの出現確率に基づいて取得した値を第一の部分区間サイズとし、上記設定区間の区間サイズと上記第一の部分区間サイズとの差を算出して第二の部分区間サイズとし、上記第一の部分区間サイズと上記第二の部分区間サイズのうちより、小さい値の部分区間サイズを通知し、
上記補正値算出工程は、上記部分区間算出工程から通知された部分区間サイズと、シンボルの値とを入力し、上記部分区間サイズとシンボルの値とを用いて、上記サイズ補正値と部分境界値を補正する上記境界補正値とを算出することを特徴とする。
【００５３】
上記部分区間算出工程は、上記区間サイズを少なくとも二つの部分区間サイズに分割し、
上記補正値算出工程は、上記少なくとも二つの部分区間サイズのどちらにも配分されない微小区間を確保し、確保した微小区間を切捨てることを特徴とする。
【００５４】
上記微小区間は、符号値を設定され、上記設定された符号値が検出されることによって、割込み処理の同期タイミングを通知することを特徴とする。
【００５５】
上記微小区間は、符号値を強制的に設定され、上記符号値が検出されることによって、割込み処理の同期タイミングを通知し、上記符号値のオフセットにより複数の割込み処理を識別することを特徴とする。
【００５６】
この発明に係る符号化・復号方法は、区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズと区間境界値とを更新して区間内座標を符号化する符号化方法と、符号化された座標を有する設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズと区間境界値とを更新してシンボルを復号する復号方法とを有する符号化・復号方法において、
上記符号化方法は、シンボルを符号化する毎に、区間サイズと区間境界値とを補正し、
上記復号方法は、シンボルを復号する毎に、区間サイズと区間境界値とを補正することを特徴とする。
【００５７】
この発明に係るプログラムは、区間サイズと区間境界値とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズと区間境界値とを更新して区間内座標を符号化する符号化処理を計算機に実行させるプログラムにおいて、
シンボルを符号化する毎に、区間サイズと区間境界値とを補正する補正処理を計算機に実行させるプログラムであることを特徴とする。
【００５８】
上記符号化装置又は方法は、さらに、シンボルの出現確率に関連づけて部分区間サイズを複数保持する部分区間サイズテーブルを備え、
上記部分区間算出部（部分区間算出工程）は、上記シンボルの出現確率に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択することを特徴とする。
【００５９】
上記復号装置又は方法は、さらに、シンボルの出現確率に関連づけて部分区間サイズを複数保持する部分区間サイズテーブルを備え、
上記部分区間算出部（部分区間算出工程）は、上記シンボルの出現確率に基づいて、上記部分区間サイズテーブルから部分区間サイズを選択することを特徴とする。
【００６０】
上記部分区間算出部（部分区間算出工程）は、上記設定区間の区間サイズとシンボルの出現確率との積を算出して部分区間サイズを取得することを特徴とする。
【００６１】
上記補正値算出部（補正値算出工程）は、上記部分区間サイズを縮小させるように、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００６２】
上記補正値算出部（補正値算出工程）は、補正対象の部分区間サイズを拡大するように、上記サイズ補正値と上記境界補正値とを算出することを特徴とする。
【００６３】
上記割込み処理は、符号化処理終了を指示することを特徴とする。
【００６４】
上記割込み処理は、符号化変数パラメータの初期化を指示することを特徴とする。
【００６５】
上記割込み処理は、符号化変数パラメータの切替えを指示することを特徴とする。
【００６６】
上記割込み処理は、符号化定数パラメータの切替えを指示することを特徴とする。
【００６７】
上記割込み処理は、エラー検出を指示することを特徴とする。
【００６８】
【発明の実施の形態】
実施の形態１．
国際標準符号化勧告Ｔ．８２（ＪＢＩＧ）では、符号化・復号過程の演算において一定の有効精度として小数点以下Ｎビットに保つ。このため、確率Ｐを２のＮ乗倍した整数で扱えるように実装される。よって、最大の確率の区間として２のＮ乗が１．０とみなされ、正規化処理により０．５とみなされる２の（Ｎ−１）乗以上に区間サイズを常に保持するように拡大する。正規化処理が適用されて、仮想的な小数点が更新される。
通常、確率Ｐは区間サイズ１．０の時の理想分割比率であるため、区間サイズを０．５以上１．０未満に保持する正規化処理が適用される場合には、上記勧告Ｔ．８２のように、その拡大サイズの分布などを考慮した修正確率値を近似値ＬＳＺとすることがあるが、本発明では、修正計算方法を特定せずに、修正確率値ＬＳＺは、劣勢シンボルの出現確率Ｐを必要な有効精度で打ち切った値として説明するものとする。
【００６９】
近似確率Ｐに正規化処理が適用された値をｒＰ、区間の拡大シフト数をＳとすると、次のように示すことができる。
１．０＞ｒＰ＝Ｐ×２S ≧０．５
【００７０】
従来のＬＳＺはＰを近似確率として、次のようにすべての近似確率の候補を整数化し、その小数部は打ち切ることでテーブルが構成される。図１における（Ａ）の小数点以下Ｎビットが整数部として扱われる。
ＬＳＺ＝ＩＮＴ（Ｐ×２N ）（ここで、ＩＮＴは整数化関数）
なお、図１において、「＊」及び「＃」は、任意の値を示しており、「０（零）」または「１」の値を各々がとり得る。
【００７１】
整数化して扱う際の確率０．５をＨＡＬＦ、確率１．０をＦＵＬＬと記述するものとすれば、整数化した上記ｒＰの関係式は、次のように表せる。図１における（Ｂ）に当たる。
ＦＵＬＬ＞ＬＳＺ×２S ≧ＨＡＬＦ
【００７２】
ここで、図１における（Ａ）において、ＬＳＺはＦＵＬＬで想定される仮想小数点からＳビットはビット値０であり、（Ｂ）において、そのＬＳＺに正規化処理を適用した値は、有効精度Ｎの下位Ｓビットはビット値０となって、実際の有効精度は（Ｎ−Ｓ）ビットしか活用できていないことになる。
【００７３】
ここで、本発明はＬＳＺに対して正規化処理適用後のｒＬＳＺでの有効精度をＮビット確保して、従来の打切り誤差を小さく補正することを可能にする。正規化処理された図１における（Ｂ）に対して、（Ｃ）のｄＬＳＺで補正した（Ｄ）の有効精度Ｎビットの正規化値ｒＬＳＺを得る。
ＦＵＬＬ＞ｒＬＳＺ＝ＩＮＴ（Ｐ×２(N+S) ）≧ＨＡＬＦ
【００７４】
本発明のｒＬＳＺが従来に対して補正する差分ｄＬＳＺは、次のように表せる。
ｄＬＳＺ＝ｒＬＳＺ−（ＬＳＺ×２S ）
ｄＬＳＺ＝ｒＬＳＺ  ａｎｄ  （２S −１）（“ａｎｄ”は論理積関数）
出現確率及び予測値の学習は従来通り行えばよく、本発明に直接的な関係はない。それら学習関係のパラメータを除く区間サイズ及び符号値の演算に直接関わる定数パラメータは、上記式の関係で示されるＬＳＺ，Ｓ，ｒＬＳＺ，ｄＬＳＺであるが、そのうちのいくつかは、他のパラメータ値から求めれば、テーブルとして持たない構成もとれる。例えば、ｒＬＳＺとＳの定数テーブルがあれば、ＬＳＺはｒＬＳＺを（１／２）S 倍して求めてもよいし、ｄＬＳＺはｒＬＳＺ，ＬＳＺ，Ｓの３定数から求めたり、ｒＬＳＺ，Ｓの２定数からｒＬＳＺと値２S −１との論理積（ＡＮＤ）によるマスク処理で求めてもよい。例えば、図１で（Ａ），（Ｂ），（Ｃ），（Ｄ）の順で算出することも可能である。
【００７５】
この補正値ｄＬＳＺを適用した符号化の概念を、図２に示す。
図において、部分区間サイズの修正が伴うＬＳＺ区間が、（Ａ）は上方部分区間に配置される場合、（Ｂ）は下方部分区間に配置される場合を示している。これらは、上方及び下方に配置される部分区間サイズＡｈ，Ａｌの修正を示しているが、それに伴って区間Ａとして更新された部分区間の下界値に合わせて符号Ｃの修正を行わなければならない。
【００７６】
ここで、ｄＬＳＺ分だけＬＳＺを割り当てる部分区間Ａｌを拡大補正するということは、逆に部分区間Ａ０をｄＬＳＺ分縮小しなければならないが、その時点で適用しうる演算精度では対応できないため、部分区間Ａ０を最小単位１だけ縮小している。最小単位１は、任意の値をとり、符号化装置の演算精度によって異なる重みの値をとり得る。図２の場合は、左欄のスケール（目盛り）の一つ分を最小単位として表している。上記スケールは、０（００００）から８（１０００）の値をとり、最小単位は、１となっている。最小単位１は、補正値ｄＬＳＺより大きい値となっている。従って、この縮小分１は、ｄＬＳＺより大きいので、差し引いたどちらのシンボルにも割り当てられない区間（灰色部、灰色部は、図２中網掛けしてある部分である）が発生するが、それを切り捨てることになっても、微小な区間サイズなので大きな符号化効率の低下を招くことはない。ただし、切り捨てる区間は、正規化後の値（整数）で考えれば、２S （２のＳ乗）−ｄＬＳＺとなる。図２で範囲ｄＬＳＺ（矢印で挟まれた範囲）は、１＞ｄＬＳＺであり、小数で考えるが、「正規化後」の方のｄＬＳＺは整数で考えていることになる。
【００７７】
もちろん、どちらのシンボルにも割り当てずに、切り捨てる微小区間を作らずに符号出力が進んで修正できるようになるまで記憶しながら待ってもよいが、修正演算が複雑になり、結局は演算精度及び処理負荷を大きくすることになる。また、部分区間Ａ０は部分区間Ａｌより基本的にサイズが大きいため最小単位１だけ縮小されても、符号化効率が大きく低下することはない。ｄＬＳＺは０であることもありうるが、そのときには部分区間Ａ０の縮小も行う必要はないことになる。
【００７８】
例えば、上記勧告Ｔ．８２のような１６ビットのＬＳＺにおいて、最小の値０ｘ０００１の部分区間が正規化処理により、従来は０ｘ８０００（＝ＨＡＬＦ）となるところ、本実施の形態によれば、下位１５ビットに補正が適用され０ｘ８０００から０ｘＦＦＦＦという幅をもたせることができ、より厳密な確率値を表現できることになる。同様に、ＬＳＺが最小値以外の値であっても、その正規化処理のシフト数に応じた幅が確保できるようになる。
【００７９】
上記図２の（Ａ）及び（Ｂ）を図２７，図２８の減算型算術符号化及び復号に導入した手順を、図３，図４に示す。
初期化処理、後処理は、上記勧告Ｔ．８２に示されるような従来の算術符号化処理、算術復号処理を行えばよい。
符号化手順のＳ１６０１、復号手順のＳ１７０１の段階で、あらかじめＬＳＺを１だけ拡大している。ＬＳＺがテーブルならば、予めＬＳＺに１を加えた値をテーブルに用意することもできる。
【００８０】
ＬＳＺテーブルで区間拡大で補正するとき、ＬＳＺ＋１をテーブルにもってもよい。また、ＬＳＺテーブルをもたずに符号化／復号処理を実行する際の一例として、ＬＳＺを設計する際に偶数のみを選択すれば、最下位ビットに１を立てることで加算器を設けずに実装できる。符号化手順のＳ１２０３からＳ１２０５、復号手順のＳ１３０３からＳ１３０６で上方／下方配置シンボルを定義し、左の（Ａ）ならばシンボル０が下方、右の（Ｂ）ならばシンボル１が下方に配置され、それ以下では（Ａ），（Ｂ）で示された同じ手順を参照する。（Ａ−１），（Ａ−２）または（Ｂ−１），（Ｂ−２）は、補正時に切捨てられる微小区間の上下配置の違いによる手順を示しており、各いずれかが適用される。ここに示した手順は、図示された更新すべき部分区間サイズ及びその下界値としての符号を求めるものであって、他の等価な演算手順・表記もありうる。
【００８１】
図中、破線で囲んだ処理において、ＣＯＤＥ＿ＬＯＷＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲは、下方部分区間への符号化と復号、また、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＵＰＰＥＲは、上方部分区間への符号化と復号を示しており、それ以降に説明する“条件付きＭＰＳ／ＬＰＳ交換”の符号化及び復号の手順である図３０，図３１に対して同じ処理内容を適用する。
【００８２】
図３の符号化手順を実現する符号化装置の構成の一例を図５（以下、「符号化ブロック図」ともいう）に、図４の復号手順を実現する復号装置の構成の一例を図６（以下、「復号ブロック図」ともいう）に示す。
図５，図６の構成において、この実施の形態では、破線で示す区間サイズＡ７及び更新区間サイズの正規化処理の拡大シフトビット数ｋ１４のデータ信号線、第２の比較器１８とその関連の入出力信号線は使用しない場合を説明する。後述する実施の形態２において、上記点線部分を利用する実施の形態を説明する。
【００８３】
図５は、数直線上の設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新し、上記選択した部分区間に基づいて、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新して区間内座標を符号化する算術符号化方式及び方法を実現する一例を示す構成図である。
まず、このブロック図を用いて実現する機能を説明し、次に、図５を用いて、具体的な動作を説明する。
なお、図中、例えば「演算器１」と示している構成要素は、「第１の演算器」と記す。
【００８４】
この算術符号化方式は、確率学習部、部分区間算出部、第１の正規化部、第２の正規化部、補正値算出部、区間補正部、区間境界値補正部とを有する。
確率学習部（確率学習工程）は、コンテクストに対するシンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボル１（劣勢シンボル）の出現確率を記憶領域に記憶する。図５では、学習メモリ３によって実現している。ここで、シンボルは、コンテクストに対してより出現しやすいデータ値（予測値）と実処理（符号化、或いは、復号）データ値の一致、不一致を既に反映しているものとする。
【００８５】
部分区間算出部（部分区間算出工程工程）は、上記確率学習部において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する。図５では、ＬＳＺ５及びｄＬＳＺ３１、第１の演算器９、第２の演算器１２、第１の切替器１０、第２の切替器１１によって実現している。
部分区間算出部で取得する部分区間サイズは、ＬＳＺとｄＬＳＺとの組み合わせに対応する。
第１の切替器１０は、入力されたＬＳＺ値に対して１を加える（図２７のＳ１６０１，図２８のＳ１７０１）を行う。或いは、このＬＳＺ値は、予め１を加えた値が用意されているものとする。
この実施の形態では、ＬＳＺ５及びｄＬＳＺ３１とで示す部分区間サイズテーブルを用いる場合を説明する。部分区間サイズテーブルは、複数のシンボルの出現確率それぞれに対応する部分区間サイズを複数保持し、シンボルの出現確率（図５では確率４）が入力された場合、対応する部分区間サイズ（ＬＳＺ，ｄＬＳＺ）を出力する。
【００８６】
状態遷移を導入するならば、メモリは確率でなく、状態番号（ステート）を管理記憶し、その状態番号をインデクスとして部分区間サイズテーブルから対応する部分区間サイズ（ＬＳＺ，ｄＬＳＺ）を出力する。或いは、シンボルの出現確率Ｐにより演算して、より厳密に算出する場合には、確率とＡを入力としてＡ×Ｐの積から、対応する部分区間サイズ（ＬＳＺ，ｄＬＳＺ）を図１に示す精度に従って求められる。この算出処理は、図３，図４の処理に先立って行われる。
【００８７】
第１の正規化部（第１の正規化工程）は、上記部分区間算出部で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する。図５では、第１のシフト器１３によって実現し、正規化した部分区間サイズを「ｒＡ」で示している。この実施の形態では、２のべき乗によって正規化する場合を用いているが、これに限られるわけではない。なお、２のべき乗でないときには、シフト器は乗算器になる。
第２の正規化部（第２の正規化工程）は、上記第１の正規化部で用いた倍率と同じ倍率で上記部分区間算出部で取得した部分区間境界値を正規化する。図５では、第２のシフト器１５によって実現し、正規化した部分境界値を「ｒＣ」で示している。
【００８８】
補正値算出部（補正値算出工程）は、上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する。補正算出部は、ｄＬＳＺを用いてサイズ補正値と境界補正値とを算出する。図５では、補正値算出器３２で実現し、サイズ補正値をｄＡで示し、境界補正値をｄＣで示している。補正値算出器３２は、シンボル１、ｄＬＳＺ３１とを入力し、ｄＡ，ｄＣを出力する。
【００８９】
区間補正部（区間補正工程）は、上記第１の正規化部で正規化した部分区間サイズを上記補正値算出部で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを出力する。出力された部分区間サイズは、区間サイズとして更新され、次の符号化の工程において、区間サイズとして再帰的に利用される。図５では、第３の演算器３５によって実現する。
区間境界値補正部（区間境界値補正工程）は、上記第２の正規化工程で正規化した部分区間境界値を上記補正値算出工程で算出した境界補正値を用いて補正し、補正した部分区間境界値を出力する。出力された部分区間境界値は、区間境界値として更新され、次の符号化の工程において、区間境界値として再帰的に利用される。図５では、第４の演算器３６によって実現する。
【００９０】
ここで、正規化処理の拡大倍率を２のべき乗とすれば、シフト処理で実現できる。また、例えば、正規化した部分区間サイズｒＡ、部分区間境界値ｒＣに対して、第３の演算器、第４の演算器を介してサイズ補正値ｄＡ及び境界補正値ｄＣを加算によって補正せずに、シフト処理と同時にｒＡ，ｒＣの下位からｄＡ，ｄＣを１ビットずつ取り込んでいくような実装も可能である。この場合、第３の演算器、第４の演算器は設けず、サイズ補正値ｄＡ及び境界補正値ｄＣを第１のシフト器、第２のシフト器に直接入力する構成をとればよい。
また、実装上、正規化処理の途中で符号の例えばバイト単位の入出力が行われるとき、その時点までに行うべき補正処理と、その後の残りの補正処理のように複数の段階に分割して適用しても構わない。
【００９１】
「有限精度」は、この明細書では図１に示す整数部Ｎビットに対応する。利用者が定める任意の精度である。
また、「管理精度」は「有限精度」と同様である。
設定区間の区間サイズ（Ａ）を算出した有限精度を前管理精度とする。また、部分区間サイズを算出する有限精度を現管理精度とする。
図１では、有限精度は、Ｐの上位Ｎビット（ＬＳＺ相当）に該当し、上記前管理精度に相当する。
【００９２】
また、「有限精度より高い（大きな）精度」は、図１のＰの上位（Ｎ＋Ｓ）ビットまでを指し、現管理精度に相当する。現管理精度を用いて取得した部分区間サイズを正規化することにより、Ｎビットの部分区間サイズ（ｒＬＳＺ）を取得する。「有限精度より高い精度」は、最大で（２×Ｎ−１）ビットとなる。すなわち、シフト数（Ｓ）が最大となるのはＬＳＺ＝１のとき（Ｎ−１）ビット［最下位ビットの１が最上位ビットまでシフトされる：正規化］となるため、（整数時）ＬＳＺの精度Ｎビットとその小数点以下ｄＬＳＺの（Ｎ−１）ビット［上記ＬＳＺ＝１（最下位ビット）と併せてＮビット精度になる］で合わせてＮ＋（Ｎ−１）＝（２×Ｎ−１）となる。
【００９３】
また、「追加精度分の情報」は、有限精度（Ｎビット）に対して、有限精度よりも下位への追加精度（Ｓビット）であり、ｄＬＳＺ（あるいはｄＬＳＺ’）に相当する。また、追加精度は、上記前管理精度と上記現管理精度の差分に相当する。
補正値算出部（補正値算出工程）は、上記追加精度、すなわち、ｄＬＳＺを用いて、サイズ補正値と境界補正値とを算出する。
【００９４】
次に、図５を用いて具体的な動作を説明する。
符号化ブロック図において、符号化シンボル１の入力と同時にその性質を分類するコンテクスト２が学習メモリ３へ入力される。学習メモリ３は、確率４を出力し、上記確率４に対応する区間サイズＬＳＺ５、補正区間サイズｄＬＳＺ３１が出力される。ここで同時に必要により、ＬＳＺ区間の正規化処理の拡大シフトビット数Ｓが参照される。
【００９５】
次に、第１の切替器１０へＬＳＺと第１の演算器９によって算出されたＡ−ＬＳＺが入力され、シンボル１に対応する部分区間サイズ（以下、「シンボル１に対応する部分区間サイズ」を「対応区間サイズ」ともいう）が出力される。
また、第２の切替器１１へ下方に配置される部分区間Ａｌが入力され、符号値Ｃ８から更新されるシンボル１の対応部分区間下界値（部分区間境界値）を算出するための変位（ΔＣ）が出力される。部分区間境界値は、区間境界値（Ｃ）へΔＣの演算を実施することにより算出する。
【００９６】
第１の切替器１０が出力する部分区間サイズは、第１のシフト器１３へ入力される。第１のシフト器１３は、上記部分区間サイズをＨＡＬＦのサイズを超えるまで正規化処理でｋ１４ビットだけシフトして上記部分区間サイズ（ｒＡ）を出力する。同時に、ｋ１４は、第２のシフト器１５へ入力される。第２のシフト器１５は、第２の演算器１２から出力される部分区間サイズ（ｒＡ）に対応する下界値（部分区間境界値）（ｒＣ）を同じビット数ｋ１４だけシフトする。
【００９７】
補正値算出器３２は、シンボル１とｄＬＳＺ３１を入力し、第１のシフト器１３からの出力である部分区間サイズ（ｒＡ）を補正するサイズ補正値ｄＡ３３と、第２のシフト器１４からの出力である下界値（部分区間境界値）（ｒＣ）を補正する境界補正値ｄＣ３４とを出力する。
第３の演算器３５は、第１のシフト器１３の出力値（部分区間サイズ（ｒＡ））にサイズ補正値ｄＡ３３を反映させ、反映された値を出力することによって区間サイズＡ７を更新する。
また、第４の演算器３６は、第２のシフト器１５の出力値（下界値（部分区間境界値）（ｒＣ））に境界補正値ｄＣ３４を反映させ、反映された値を出力することによって符号値Ｃ８を更新する。
符号Ｃ８は、正規化処理でシフトされたビット数だけ符号１６を出力する。
【００９８】
次に、復号方式及び方法について説明する。
図６は、数直線上の設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新してシンボルを復号する復号方式及び方法を実現する一例を示す構成図である。
【００９９】
この復号方式は、確率学習部、部分区間算出部、第１の正規化部、第２の正規化部、補正値算出部、区間補正部、区間境界値補正部とを有する。各構成要素は、符号化方式で説明したものと同様である。図６において、図５と同じ符号を付したものは、同様であるので、説明を省略する。また、上記各構成要素と、図６との対応についても、図５を用いて説明したものと同様である。なお、図５と図６では、図中に示すように、各構成要素の接続関係が異なっている。また、図６では、第１の比較器１７が追加されていること、及び、区間境界値（Ｃ）が入力されること（図６，Ｃ８）が異なっている。第１の比較器１７は、符号値Ｃ８と部分区間Ａｌとを比較する。
【０１００】
次に、図６を用いて具体的な動作を説明する。
復号ブロック図において、出力すべきシンボル１の性質を分類するコンテクスト２が学習メモリ３へ入力される。学習メモリ３は、確率４を出力し、上記確率４に対応する区間サイズＬＳＺ５、補正区間サイズｄＬＳＺ３１が出力される。ここで、同時に必要により、ＬＳＺ区間の正規化処理の拡大シフトビット数Ｓが参照される。
次に、第１の比較器１７へ符号値Ｃ８と下方に配置される部分区間Ａｌが入力され、第１の比較器１７は、符号値Ｃ８と部分区間Ａｌを比較する。符号値Ｃ８がＡｌより小さければ下方部分区間対応シンボル、Ａｌ以上であれば上方部分区間対応シンボルが復号シンボル１として確定する。
第１の切替器１０へＬＳＺと第１の演算器９によるＡ−ＬＳＺが入力され、シンボル１に対応する部分区間サイズが出力される。
また、第２の切替器１１へ下方に配置される部分区間Ａｌが入力され、現区間Ａ７の下界値から更新されるシンボル１の対応部分区間下界値（部分区間境界値）への変位（ΔＣ）が出力される。
【０１０１】
第１の切替器１０が出力する部分区間サイズは、第１のシフト器１３へ入力される。第１のシフト器１３は、部分区間サイズをＨＡＬＦを超えるまで正規化処理でｋ１４ビットだけシフトして、部分区間サイズ（Ａｒ）を出力する。同時に第２のシフト器１５により同じビット数ｋ１４だけ第２の演算器１２から出力される符号値をシフトする。
補正値算出器３３は、シンボル１とｄＬＳＺ３１を入力し、第１のシフト器１３、第２のシフト器１４の出力である対応区間（ｒＡ）とその下界値（ｒＣ）とをそれぞれ補正するサイズ補正値ｄＡ３３と境界補正値ｄＣ３４とを出力する。第３の演算器３５は、第１のシフト器１３の出力値（部分区間サイズ（Ａｒ））にサイズ補正値ｄＡ３３を反映させて区間サイズＡ７を更新する。
また、第４の演算器３６は、第２のシフト器１５の出力値（下界値（部分区間境界値）（ｒＣ））に境界補正値ｄＣ３４を反映させて符号値Ｃ８を更新する。
符号Ｃ８は、正規化処理でシフトされたビット数だけ符号１６を入力する。
【０１０２】
補正値と正規化値の演算器は、部分区間の配置及び符号化か復号かによって、正規化値へ補正値を加算あるいは減算する。このときの補正値は、図３，図４のＣＯＤＥ＿ＬＯＷＥＲ、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲ、ＤＥＣＯＤＥ＿ＵＰＰＥＲを基に算出され、Ａ及びＣはその演算結果を得る。比較器１は復号のみにあり、符号Ｃと下方部分区間サイズを比較して、符号Ｃの座標を含む上方部分区間と下方部分区間のいずれかを選択し、その部分区間に対応するシンボルを復号シンボルとする。
【０１０３】
なお、補正値算出部が算出するサイズ補正値（ｄＡ）、境界補正値（ｄＣ）は、具体的には次のようなケースがある。
補正しない部分区間への更新であれば、ｄＡ，ｄＣとも０となる。補正対象部分区間への更新に対しては、ｄＣは図２の切り捨てる灰色部が下方配置ならば０となる。また、ｄＡは部分区間の上下配置に関係なく出力され、ｄＡの値が偶然０になることもありえる。
なお、ＬＳＺ部分区間に更新されるとき、ＬＳＺは０．５より小さい（つまり、全体区間最大値［１．０］の半分より小さい）ため、正規化が必ず実行さる。
図５に沿えば、区間サイズは（出現シンボル及び上下配置により）、
Ａｈ（ｏｒ  Ａｌ）×（２k ）＋ｄＡ（≧２(N-1) ；正規化）
区間境界値は、
（Ｃ＋ΔＣ）×（２k ）＋ｄＣ
に更新される（加算による補正の場合）。
下方部分区間であればΔＣ＝０である。また、補正対象部分区間でなければ、ｄＡ＝０である。さらに、上記切り捨てる微小部分区間の配置によっては、ｄＣ＝０のときもありえる。
【０１０４】
補正値と正規化値の演算器での演算は、部分区間の配置、符号化、復号のいずれかによって正規化値へ補正値を加算あるいは減算となる。このときの補正値は、図３，図４のＣＯＤＥ＿ＬＯＷＥＲ、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲ、ＤＥＣＯＤＥ＿ＵＰＰＥＲを基に算出され、Ａ及びＣはその演算結果を得る。第１の比較器１７は復号のみにあり、符号Ｃと下方部分区間サイズＡｌを比較して、符号Ｃの座標を含む上方部分区間と下方部分区間のいずれを選択し、部分区間に対応するシンボルを復号シンボルとする。
【０１０５】
次に、図７及び図８に“条件付きＭＰＳ／ＬＰＳ交換”を適用した符号化及び復号の手順を示す。
この図７の符号化手順及び図８の復号手順を実現するブロック図を、次の図９及び図１０に示す。
ここでの構成では、破線の区間サイズＡ７及び更新区間サイズの正規化処理の拡大シフトビット数ｋ１４のデータ信号線、第２の比較器１８とその関連の入出力信号線は使用しないものとする。
先に説明した図５及び図６に対して、追加された比較器２は、上方部分区間と下方部分区間の大小関係を決定し、切替器１、切替器２が大きい部分区間を優勢シンボル、小さい区間を劣勢シンボルに対応させ、更新値を決定する。補正値算出器の出力する補正値は、図７，図８のＣＯＤＥ＿ＬＯＷＥＲ、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲ、ＤＥＣＯＤＥ＿ＵＰＰＥＲを基に算出され、Ａ及びＣはその演算結果を得る。
【０１０６】
本実施の形態では、ＬＳＺは近似確率値によって部分区間サイズテーブルとして、定数テーブル化（図５及び図６中のＬＳＺ５とｄＬＳＺ６とに相当）されているものとして説明を行ったが、ＬＳＺは出現確率Ｐと区間サイズＡの有限精度の積として毎度求めて用いても構わない。定数テーブルでは正規化処理の拡大シフトビット数Ｓもあらかじめ用意できるが、有限精度で乗算を用いる場合は、その積に対する値Ｓが同時に与えられるものとする。このとき、算出値は、図３，図４の処理手順に先立って毎度用意される。
また、上記では、シンボルの出現確率と区間サイズ（Ａ）との積を算出して部分区間サイズを取得する場合、シンボルの出現確率を用いて区間サイズテーブルから部分区間サイズを取得する場合を説明したが、これらに限られるわけではない。シンボルの出現確率を用いて算出・検索等によって部分区間サイズを取得する場合であれば、上記以外の方法であってもよい。
【０１０７】
また、出現確率ＰによりＬＳＺは最適な値が選択されるものとして説明したが、定数テーブルで構成されるとき、その最適判定部はＬＳＺ外部にあってもよく、入力としては出現確率Ｐでなくステートと通常呼ばれるテーブル内のデータへのインデクスによる管理がとられていても構わない。一般に、状態遷移による場合に適用され、上記勧告Ｔ．８２でも採用されている。
ステートに基づいて部分区間サイズを取得する場合は、図５の学習メモリ３からは、確率４の代わりにステートが出力される。また、部分区間サイズテーブル（図５のＬＳＺ５、ｄＬＳＺ３１との組み合わせ）は、ステートに対応させて部分区間サイズ（ＬＳＺとｄＬＳＺとの組み合わせ）が保存されることになる。ステートは、シンボルの出現確率に基づいて決定される値である。従って、ステートを用いて部分区間サイズを取得する場合においても、部分区間算出部は、シンボルの出現確率を用いて（基づいて）、部分区間サイズを取得することになる。また、部分区間サイズテーブルに保存される部分区間サイズは、ステートを介してシンボル出現確率に関連付けられているといえる。
【０１０８】
一般に、あらかじめ用意された部分区間サイズテーブル（ＬＳＺテーブル）を使用する場合、状態遷移による確率推定を行い、それぞれ状態固有のシンボル出現確率が決まっていて、実際に滞在する状態の出現確率を符号化／復号に適用する。
この場合は、部分区間サイズテーブルへ「状態番号」（「ステート」）が入力されて、ＬＳＺとｄＬＳＺとが選択されることになる。
状態遷移による確率推定は、確率の変動に従い滞在する状態（番号）を更新していく。一般に、劣勢シンボルが発生したとき（必ず）劣勢シンボルの出現確率を大きくし、０．５を超えるとき予測値を反転し、０．５より小さい確率を記憶する。優勢シンボルが発生したときは、必ずしも状態は遷移せず、区間サイズが０．５未満になって正規化処理が伴うとき（国際標準勧告Ｔ．８２）あるいは状態固有の所定数の優勢シンボルが発生したとき（状態、或いは、コンテクスト毎に発生数のカウンタを持つ）などが適用される。
また、シンボルは、細かくは「データ値」と「予測値」の一致（優勢シンボル）、不一致（劣勢シンボル）でシンボルが決定される。
【０１０９】
但し、本発明に関わる部分区間サイズの補正は、正規化処理の拡大が行われないときに行っても構わない。一般に、補正の対象部分区間に小さい方の部分区間を選択すれば、必ず正規化処理を伴う。
また、更新される区間Ａに対してＬＳＺ区間が選択される場合に常に補正するものとして説明を行ったが、正規化処理の拡大シフトビット数Ｓによる制限を設け、規定値以上ならば補正を実行し、規定値未満ならば補正を実行しないという条件を適用してもよい。
【０１１０】
また、図１の定数パラメータＬＳＺ，Ｓ，ｒＬＳＺ，ｄＬＳＺには前述の関係があるため、少なくともいずれか２つがあれば、他のパラメータは求めることができる。従って、上記ブロック図は一例であって、ＬＳＺ及びｄＬＳＺとして直接値をもっていない構造であっても構わない。
なお、正規化処理の終了条件を０．５≦Ａ＜１．０としたが、０．５＜Ａ≦１．０としても構わないが、区間サイズＡが補正を適用して１．０を超えないようにしなければならない。
【０１１１】
以上のように、この実施の形態の符号化方式及び方法は、数直線上の区間を分割し、出現シンボルに対応した部分区間を選択して、区間サイズ（Ａ）と区間境界値（Ｃ）を管理・更新して区間内座標を符号とする算術符号化方式及び方法において、
・シンボルの出現状況から出現確率を学習する確率学習部、
・シンボルの出現確率から部分区間サイズを得る部分区間サイズ算出部（ＬＳＺ）、
・更新された部分区間サイズが一定値以上を保持するように区間サイズを２のべき乗倍に正規化する第１の正規化部（シフト器１）、
・第１の正規化部と同じ拡大倍率で区間境界値を正規化する第２の正規化部（シフト器２）、
・区間サイズと区間境界値の補正すべきサイズを算出する補正値算出部（補正値算出器）、
・正規化された区間サイズを補正する区間補正部（演算器１）、
・上記区間補正部の区間サイズ補正適用に伴って正規化された区間境界値を補正する区間境界値補正部（演算器２）、
とを備えることを特徴とする。
【０１１２】
また、この実施の形態の復号方式及び方法は、数直線上の区間を分割し、符号値の存在する部分区間を選択して、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）を管理・更新してシンボルを復号する算術復号方式及び方法において、
・シンボルの出現状況から出現確率を学習する確率学習部、
・シンボルの出現確率から部分区間サイズを得る部分区間サイズ算出部（ＬＳＺ）、
・更新された部分区間サイズが一定値以上を保持するように区間サイズを２のべき乗倍に正規化する第１の正規化部（シフト器１）、
・第１の正規化部と同じ倍率で拡大して区間境界値を正規化する第２の正規化部（シフト器２）、
・区間サイズと区間境界値の補正すべきサイズを算出する補正値算出部（補正値算出器）、
・正規化された区間サイズを補正する区間補正部（演算器１）、
・上記区間補正部の区間サイズ補正適用に伴って正規化された区間境界値を補正する区間境界値補正部（演算器２）、
とを備えることを特徴とする。
【０１１３】
また、部分区間サイズ算出部は、全体区間サイズとシンボルの出現確率の積として部分区間サイズを算出し、残りの区間サイズを他方の部分区間サイズとすることを特徴とする。
【０１１４】
部分区間サイズ算出部は、全体区間サイズとシンボルの出現確率の積として部分区間サイズを区間サイズの管理精度より大きな精度で算出し、その追加精度分の情報は補正値算出部の補正値算出に用いられることを特徴とする（乗算：［ＬＳＺ＋］ｄＬＳＺ相当）。
【０１１５】
部分区間サイズ算出部は、シンボルの出現確率を基に分類される部分区間サイズの候補から最適な部分区間サイズを選択し、残りの区間サイズを他方の部分区間サイズとすることを特徴とする。
【０１１６】
部分区間サイズ算出部は、シンボルの出現確率を基に分類される部分区間サイズの候補を区間サイズの管理精度より大きな精度で用意し、その追加精度分の情報は補正値算出部の補正値算出に用いられることを特徴とする（［ＬＳＺ＋］ｄＬＳＺ）。
【０１１７】
部分区間サイズ算出部は、シンボル出現確率が小さい方の値を用いて部分区間サイズを算出することを特徴とする。
【０１１８】
補正値算出部は、部分区間サイズ算出部がシンボルの確率を基に算出した部分区間に対して、正規化された区間サイズと区間境界値の補正値を算出することを特徴とする。
【０１１９】
実施の形態２．
一方、実施の形態１がシンボル１の部分区間Ａｌを拡大して補正していたのに対し、実施の形態２では、部分区間Ａｌを縮小して補正するものとする。ここで、部分区間Ａ０の縮小分をＬＳＺにあらかじめ反映させたＬＳＺ’を導入することによっても同様な補正を実現することができる。このとき、補正区間サイズｄＬＳＺは、実施の形態１のＬＳＺの拡大補正分ではなく、ＬＳＺ’からの縮小補正分（ｄＬＳＺ’とする）をもつことで、補正適用時の部分区間Ａ０（＝Ａ−ＬＳＺ’）側への演算負荷はより小さくなり、演算もより容易になる。その定義を次に示す。
ＬＳＺ’＝ＩＮＴ（Ｐ×２N ）＋１（＝ＬＳＺ＋１）
ｄＬＳＺ’＝（ＬＳＺ’×２S ）−ｒＬＳＺ
この実施の形態では、ｄＬＳＺ’が切り捨てる微小区間となる。
【０１２０】
この補正値ｄＬＳＺを適用した符号化の概念を、図１１に示す。
上記図１１の（Ｃ）または（Ｄ）を図２７，図２８の減算型算術符号化及び復号に導入した手順を、図１２，図１３に示す。
符号化手順のＳ２００１、復号手順のＳ２１０１では、あらかじめＬＳＺを１だけ拡大したＬＳＺ’を定数化している。符号化手順のＳ１２０３からＳ１２０５、復号手順のＳ１３０３からＳ１３０６で上方／下方配置シンボルを定義し、左の（Ｃ）ならばシンボル０が下方、右の（Ｄ）ならばシンボル１が下方に配置され、それ以下では（Ｃ），（Ｄ）で示された同じ手順を参照する。（Ｃ−１），（Ｃ−２）または（Ｄ−１），（Ｄ−２）は、補正時に切り捨てられる微小区間の上下配置の違いによる手順を示している。ここに示した手順は、図示された更新すべき部分区間サイズ及びその下界値としての符号を求めるものであって、他の等価な演算手順・表記もありうる。
【０１２１】
図中、破線で囲んだ処理において、ＣＯＤＥ＿ＬＯＷＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲは、下方部分区間への符号化と復号、また、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＵＰＰＥＲは上方部分区間への符号化と復号を示している。
この図１２の符号化手順及び図１３の復号手順を実現するブロック図は、先の図５及び図６と、図の説明上直接関係のないＬＳＺ，ｄＬＳＺ及び算出される補正値の具体的数値と補正演算（加減）が異なる以外は、形状的には同一構成が可能である。ここでは、破線のデータＡ及びｋ、比較器２は使用しないものとする。ＬＳＺ及びｄＬＳＺは、ＬＳＺ’及びｄＬＳＺ’とし、補正値は同様に補正値算出器が出力し、図１２、図１３のＣＯＤＥ＿ＬＯＷＥＲ、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲ、ＤＥＣＯＤＥ＿ＵＰＰＥＲを基に算出され、Ａ及びＣはその演算結果を得る。
【０１２２】
また、実施の形態１においてすでに説明した“条件付きＭＰＳ／ＬＰＳ交換”の符号化及び復号の手順である図７、図８対して、本実施の形態２の図１２、図１３に示すＣＯＤＥ＿ＬＯＷＥＲ、ＣＯＤＥ＿ＵＰＰＥＲ、及びＤＥＣＯＤＥ＿ＬＯＷＥＲ、ＤＥＣＯＤＥ＿ＵＰＰＥＲを置き換えることで適用することが可能である。その符号化手順及び復号手順を実現するブロック図は、先の図９及び図１０と、ＬＳＺ，ｄＬＳＺ及び算出される補正値の具体的数値と補正演算（加減）が異なる以外は、形状的に同一構成が可能である。ここでは、破線のデータＡ及びｋ、比較器２は使用しないものとする。ＬＳＺ及びｄＬＳＺは、ＬＳＺ’及びｄＬＳＺ’とし、補正値は同様に補正値算出器が出力し、図１２，図１３のＣＯＤＥ＿ＬＯＷＥＲ、ＣＯＤＥ＿ＵＰＰＥＲ及びＤＥＣＯＤＥ＿ＬＯＷＥＲ、ＤＥＣＯＤＥ＿ＵＰＰＥＲを基に算出され、Ａ及びＣはその演算結果を得る。
【０１２３】
実施の形態３．
実施の形態１のｄＬＳＺと実施の形態２のｄＬＳＺ’の関係は、ｄＬＳＺの上位桁であるＬＳＺの正規化処理の拡大シフトビット数Ｓから次のように表せる。ｄＬＳＺの有効精度もＳビットとなる。
ｄＬＳＺ＋ｄＬＳＺ’＝２S 
ここで、ＬＳＺが大きい、すなわちＨＡＬＦに近いほどシフトビット数Ｓは小さくなるが、一方で、Ａ−ＬＳＺをサイズにもつ区間（以下、非ＬＳＺ区間という）は小さくなるため、その正規化処理の拡大シフトビット数は多くなる。このとき、実施の形態１及び実施の形態２で切り捨てていた微小区間、すなわち、（１−ｄＬＳＺ）、あるいは、ｄＬＳＺ’を非ＬＳＺ区間に正規化処理が発生してビット０となる下位ビットへ補正分として還元することによって、より多くの有効精度の活用を図り、符号化効率を向上させる。この際、実施の形態１及び実施の形態２で補正していたＬＳＺ区間は、補正を除外する。両方の部分区間を補正すると、正規化処理実行前に正しく復号判定ができなくなる。
【０１２４】
原理的には、区間Ａが最小のＨＡＬＦであるとき、ＬＳＺ区間サイズが最大であれば非ＬＳＺ区間サイズは１となりうる。よって、非ＬＳＺ区間の正規化処理の拡大シフトビット数は（Ｎ−１）ビットとなるが、このとき、上記ＬＳＺの正規化処理の拡大シフトビット数Ｓより大きくなっている。よって、実施の形態１で適用したｄＬＳＺの有効精度では対応しきれないため、シンボル１の出現確率Ｐに対して、ＬＳＺで小数点以下Ｎビット、ｄＬＳＺでさらにそれ以下の（Ｎ−１）ビットまで参照できるのが望ましい。もちろん、ＳビットまでをｄＬＳＺ、それ以下を独立に参照する形式でも構わない。
【０１２５】
ＬＳＺ区間、非ＬＳＺ区間の正規化処理の拡大シフトビット数をＳ，Ｔとする。一般的には、ＬＳＺ区間サイズは非ＬＳＺ区間サイズより小さいため、Ｓ≧Ｔとなるが、ここでＳ≧ＴならばＬＳＺ区間を補正し、Ｓ＜Ｔならば非ＬＳＺ区間を補正して、より大きな精度が低減されてしまう部分区間に対して補正を有効に活用する場合について説明する。符号化及び復号では、処理過程で常に部分区間の分割が同一に再現されるので、このような適応的な補正対象区間の切替えは適用可能である。
【０１２６】
図１４は、適応的補正と部分区間閾値を示す。
図１４に示されるサイズ１の区間は、正規化処理後は１×２S または１×２T に相当し、ｄＬＳＺ，ｄＬＳＺ’より大きいので、一方を補正して差し引かれたどちらのシンボルにも割り当てられない区間（灰色部）は切り捨てる。図中、（Ａ）では上方部分区間、（Ｂ）では下方部分区間がより小さい部分区間であり、それぞれｄｈ，ｄｌで補正し、Ｔｈが２つの部分区間の境界値とする。ここでは、ＡｈとＡｌの大小関係に（Ａ），（Ｂ）とも等号を含めているが、実際はどちらか一方に決めるものとする。ただし、このような判定を正規化処理の拡大シフトビット数Ｓ，Ｔで判定してもよく、Ｓ＝ＴならばＬＳＺ区間を優先するなど一方に決めておく。また、Ｓ＝Ｔならば、切り捨てる微小区間が小さくなる方を選択したり、或いは、その逆であってもよい。
【０１２７】
原理的にはＬＳＺ区間、非ＬＳＺ区間とも同時に補正を適用できる。しかし、両方を常に補正対象とすると、復号時に現状保持される符号の精度の段階では、シンボルの判定が確定しきれない事態が起こりうる。このため、どちらか一方のみを補正するものとする。ここで、仮に両方の部分区間に補正を適用する場合に正常な復号シンボル判定を行うには、補正の及ぶ範囲まで精度を高めるしかない。
【０１２８】
図１５に、補正値ｄＬＳＺの精度を拡張したｅＬＳＺの概念図を示す。
非ＬＳＺ区間に対する補正値ｄＬＳＺ’は、参照時の区間サイズによりＴ値が異なるため、ｄＬＳＺをその最大精度２Ｎ−１（または２Ｎ）ビットで管理する。ｄＬＳＺ’はｄＬＳＺの各ビットを反転させて、下位Ｔビットを得る。ｅＬＳＺをｄＬＳＺと同精度の上位Ｎ桁を整数と仮定し、整数として適用すべき補正値ｄＬＳＺ及びｄＬＳＺ’の算出式を次に示す。図中の下位Ｔビットの反転に排他的論理和（ＥＯＲ）を適用し、上位（Ｎ−Ｔ）ビットはビット値０のまま保持する。
ｄＬＳＺ＝ＩＮＴ（ｅＬＳＺ）
ｄＬＳＺ’＝ＥＯＲ（ＩＮＴ（ｅＬＳＺ×２T-S ），２T −１）
（ここで、ＥＯＲは排他的論理和関数）
【０１２９】
ｅＬＳＺの精度が上記最大精度まで構成上設定できなければ、不足する下位にビット値０があるものとしてこの式を適用する。ここでは、整数化された補正値ｄＬＳＺとｄＬＳＺ’は正規化処理でＳビット、Ｔビットの拡大シフト適用後の重みをもった整数であって、本実施の形態３の最初の式（ｄＬＳＺ＋ｄＬＳＺ’＝２S ）を満たすものではないことに注意する必要がある。さらに、各区間サイズの正規化処理の拡大シフトビット数であるＳ値、Ｔ値は、等しければ表現精度が同一であるため無駄なく配分可能であるが、一般には異なるため重みを合わせて再び加え合わせても、次式のような桁落ち誤差に起因する微小な切捨てｅが発生するのは避けられない。よって、反転は減算より実装の簡易性が優るため、Ｓ＝Ｔも含めて上記反転値を使う例として説明を行う。
【０１３０】
ｄＬＳＺ＋ｄＬＳＺ’＋ｅ＝２S 
上記式において、“ｅ”は誤差分である。
ｄＬＳＺとｄＬＳＺ’とは、ＬＳＺ区間、非ＬＳＺ区間の補正値と再定義して、その正規化のシフト数が異なる。シフト数の小さい値における精度ならば大きい値の精度が生かせなくなるため、それぞれのシフト数に合わせて補正値を設定すると誤差値ｅが発生する。例えば、ＬＳＺ区間、非ＬＳＺ区間の正規化の拡大数がそれぞれ４，１だとすれば（ＬＳＺの最下位ビットまでを整数と見て小数点位置を合わせて４桁で示すと）、仮にｄＬＳＺを．０１１０、ｄＬＳＺ’を．１ｏｏｏとなるとする。「１ｏｏｏ」において、‘ｏ’は正規化で取り込まれない０（ゼロ）を示す。この２つの値を足し合わせても、１．００００（あるいは、反転でｄＬＳＺ’値を生成するとすれば．１１１１）とはならない。この１．００００が２のＳ乗に当たる。この不足分（誤差）を“ｅ”と表現する。ここでは、ｄＬＳＺ＝．０１１０，ｄＬＳＺ’＝．１ｏｏｏ，ｅ＝．００１０（足して１．００００の場合）となる。
【０１３１】
図１６は、適応的補正の概念図を表す。
図１６の（Ｅ）または（Ｆ）について、減算型算術符号化及び復号に導入した手順を、図１７，図１８に示す。ここでは、より小さい部分区間を補正するため、同時に先の実施の形態１及び実施の形態２のような“条件付きＭＰＳ／ＬＰＳ交換”を適用するものとして説明する。また、該当部分区間が上方部分区間か下方部分区間か、また、補正の適用が上位側か、下位側かで説明する。
図１７のＳ２２０１，Ｓ２２０２、図１８のＳ２３０１，Ｓ２３０２でＬＳＺ部分区間（Ａｌ）、非ＬＳＺ部分区間（Ａ０）と補正対象のサイズ１の区間に分割し、符号化ではＳ２２０４，Ｓ２２０５，Ｓ２２１０，Ｓ２２１１、復号ではＳ２３０４，Ｓ２３０５，Ｓ２３１１，Ｓ２３１２で、サイズ１の区間を上方あるいは下方のより小さい部分区間にまとめる。
【０１３２】
続いて同時に、補正サイズｄＡ、各部分区間の正規化処理シフトビット数Ｎｈ、Ｎｌと対応シンボルＳｈ，Ｓｌを設定する。補正は、より小さい部分区間に適用されるので、“条件付きＭＰＳ／ＬＰＳ交換”により劣勢シンボルに対して行うことになり、補正サイズｄＡはＬＳＺ部分区間ならばｄＬＳＺ、非ＬＳＺ部分区間ならばｄＬＳＺ’となる。正規化処理の拡大シフトビット数は、下方部分区間ならばＳｌ、上方部分区間ならばＳｈとなり、劣勢シンボルに対して、符号化でＳ２２２４，Ｓ２２２５及びＳ２２３４，Ｓ２２３５、復号でＳ２３２５，Ｓ２３２６及びＳ２３３５，Ｓ２３３６で補正を行う。
ここで、補正は、より小さい部分区間に適用すると説明したが、例えば、部分区間サイズに大差なく、ＮｈとＮｌを比較して等しければ、ＬＳＺ区間を対象とするようにしても構わない。
以上の実施の形態において、符号化処理及び復号処理における初期化処理や後処理は、通常処理でも構わない。
【０１３３】
以上のように、この実施の形態の補正値算出部は、部分区間サイズ算出部が算出したより小さい部分区間に対して、正規化された区間サイズと区間境界値の補正値を算出することを特徴とする。
【０１３４】
補正値算出部は、補正対象の区間サイズを縮小させることによって正規化された区間サイズと区間境界値の補正値を算出することを特徴とする。
【０１３５】
また、補正値算出部は、補正対象の区間サイズを拡大させることによって正規化された区間サイズと区間境界値の補正値を算出することを特徴とする。
【０１３６】
また、補正値算出部は、部分区間のどちらにも配分されない微小区間を確保し、切り捨てることを特徴とする。
【０１３７】
実施の形態４．
先に説明した実施の形態１、実施の形態２、実施の形態３における通常処理において、補正によって切り捨てられる微小区間内には符号値は割り当てられることはない。すなわち、実施の形態１から３では、区間サイズ（Ａ）を、Ａｈ，Ａｌ，切捨てる区間の３つに分けている。その内、Ａｈ，Ａｌのいずれかに符号値を設定しているため、切り捨てる区間に符号値が設定されることはなかった。
そこで、符号化処理で意図的に切捨て区間に符号値を設定すれば、復号処理時にその区間内に符号値が存在すれば検出することができる。その検出を符号化処理と復号処理との間で割込み処理の同期に使用し、例えば、符号化処理、復号処理の終了、あるいは途中での変数テーブルの初期化実行に使用することができる。
【０１３８】
図１９は、割込み処理の符号化の一例を示すフローチャート図である。
このような割込み処理を実現するために、符号化では図１７に対応させて図１９で説明する。
図中、Ｓ２２０１〜Ｓ２２０６，Ｓ２２１０〜Ｓ２２１２は、図１７と同一処理である。Ｓ２４０１，Ｓ２４０２では、補正対象部分区間の正規化処理の拡大シフトビット数ＳまたはＴをＮに設定する。Ｓ２４１１でより小さい部分区間を選択し、ここでは、ｏｆｆｓｅｔを０として切捨て区間の下界値に符号値Ｃを更新し、その区間サイズを設定した後、Ｓ２４１６で区間サイズＡ、符号値Ｃを正規化処理し、Ｓ２４１７で割込み処理を実行する。
【０１３９】
また、復号では、図１８におけるＳ２３２１〜Ｓ２３２７をＤＥＣＯＤＥ＿ＬＯＷＥＲ、Ｓ２３３１〜Ｓ２３３７をＤＥＣＯＤＥ＿ＵＰＰＥＲとして、図１８の上記部分に対応処理として、図２０，図２１を用いて説明する。
図２０のＳ２５０１〜Ｓ２５１０は、図１８のＳ２３２１〜Ｓ２３２７に対応する。図２１のＳ２６０１〜Ｓ２６１０は、図１８のＳ２３３１〜Ｓ２３３７に対応する。Ｓ２５１１〜Ｓ２５１７、Ｓ２６１１〜Ｓ２６１７は、区間Ａと符号値Ｃの更新及び正規化処理を行い、Ｓ２５０７，Ｓ２６０７で検出された割込み処理を実行する。
【０１４０】
ここで、割込み処理をＬＳＺ部分区間、非ＬＳＺ部分区間の小さい方の補正に対して行うものとして説明を行ったが、実施の形態１、実施の形態２のようにＬＳＺ区間のみに補正を適用する場合であっても、その切捨て区間に符号値を同様に設定して割込み処理の同期をとることができる。
最も一般的な同期動作は、シンボルの終了、変数パラメータテーブルの初期化・再初期化・切替え、また、定数パラメータテーブルの切替えなどであり、先に説明した割込み処理の通知を介してタイミングを合わせる。
また、適当なインターバルでのエラー検出や、無効シンボルとしての意図的挿入によるデータ内容の撹乱などにも使用できる。
【０１４１】
さらに、その同期検出後のいくつかのシンボルで同期動作内容を識別できるような情報を付加することもできる。先に説明したブロック図である図５，図６，図９，図１０の学習メモリ、ＬＳＺ，ｄＬＳＺテーブル部を制御する割込み制御部３７を設けたブロック図を、図２２に示す。
図２２は、割込み制御の一例を表す図である。
ここでは、切捨て区間内の割込み識別子として、ｏｆｆｓｅｔ３８で割込み処理種別を示す。一例として、変数パラメータの初期化あるいは切替え、定数パラメータの切替え、エラー検出、データ撹乱、処理終了等がある。具体的には、ｎ個の学習メモリ（変数）の切替え、初期化、ｍ個のＬＳＺ，ｄＬＳＺテーブル（定数）の切替え、処理の終了を通知する。ｏｆｆｓｅｔの値は、図１９のＳ２４１２，Ｓ２４１４、図２０のＳ２５１１，Ｓ２５１４、図２１のＳ２６１１，Ｓ２６１４に記載したｏｆｆｓｅｔを使用する。
【０１４２】
例えば、先に説明した図１６で切捨て区間である灰色部の下界値をオフセット０として処理終了、１をテーブルリセットというような意味付けをしておいて通知する。この意味付けは、符号化側、復号側で同一情報として共有する。図１６に示すオフセットは、適用すべき割込み処理における複数の割込み処理の選択、切替えにおいてオフセットを利用している。
ここでいうオフセットは、「割込み処理番号」のようなものであるが、図１６の灰色区間サイズ（切捨て区間のサイズ）が十分大きければ１対１対応でなく、例えば、０〜３が終了、４〜７がテーブルリセットなど（灰色部分区間下界値から符号値までのオフセット下位２ビットを無視［切捨て］する例）と、灰色の部分区間サイズをあらかじめ定義された割込み処理数により均等に割り当てても構わないし、不均等でも構わない。
【０１４３】
符号値を切捨て区間内に設定したならば、その切捨て区間を正常な区間とみなして正規化処理を実行し、割込み処理を行った後、符号化あるいは復号を継続することができる。
同期処理内容の種別まで通知する必要がないならば、符号はその区間内の値で構わないため、従来の最終符号値決定処理を適用することができる。従来の最終符号値決定処理は、最終区間内に符号値の末尾にできるだけ長くビット値０またはビット値１が連続する値を選択して構わない。しかし、切捨て区間内のオフセットによって複数の同期処理を区別する際には、符号化終了時の符号値の決定に際し、オフセットが変わらないように、その符号値のまま送出する必要がある。
【０１４４】
また、別の一例として切捨て区間に符号値を設定して割込みによる同期タイミングを通知するための符号化と復号の手順を示す。
符号化では、図１９のＩＮＴＥＲＲＵＰＴ手順に示したように、符号値を切捨て区間を含んだ上方部分区間または下方部分区間の下界値に更新して正規化処理を行い、その後、切捨て区間の下界値に符号値を設定し、必要であれば同時に割込み処理の種別を示すオフセットを加える。オフセットを加えたとき、切捨て区間の上界値を超えないようにしなければならないが、オフセットを加えることによって、あらかじめ上界値を超えてしまうことがわかっていれば、補正値を小さめに設定しておけばよい。正規化処理のシフト数がＮ、オフセットの最大値がｗであれば、あらかじめ補正値の最大値を２N −ｗとしてそれ以下の値を設定すればよい。オフセットを使用する場合は、先に説明したように最終符号値を他の区間内の座標に変更せずそのまま出力しなければならない。
【０１４５】
復号では、図１８のＤＥＣＯＤＥ手順と、図２０のＤＥＣＯＤＥ＿ＬＯＷＥＲ手順及び図２１のＤＥＣＯＤＥ＿ＵＰＰＥＲ手順で示したように、符号値が指し示す切捨て区間を含んだ上方部分区間または下方部分区間に更新して正規化処理を行い、その後、補正が加わったときの区間サイズＡと符号値Ｃを比較する。割込みと判定されるのは、区間における補正の適用位置が下方であれば、符号値が切捨て区間サイズより小さく、上方であれば符号値が補正が加わったときの区間サイズより大きくなっている場合であり、切捨て区間の下界値からの変位がオフセットとなる。割込みがなく、通常の復号を行う際には、区間サイズから切捨て区間サイズを差し引くと同時に、区間における補正の適用位置が下方であれば、符号値から切捨て区間サイズを減じ、上方であれば符号値の変更は必要ない。
【０１４６】
割込み種別の通知は、正規化処理のシフト数Ｎが小さいときには種別を示せるだけの切捨て区間サイズを確保するのが難しいため、オフセットによらなくても構わない。例えば、割込みがあることだけ通知し、その直後に種別を表せるビット数だけ、その種別値を符号に埋め込んだり、あるいは１ビットずつ符号化して通知してもよい。割り込み種別値を符号化する場合、通常のように符号化してもよいし、例えば確率１／２の代表値であるＬＳＺ区間とその非ＬＳＺ区間によって符号化したり、あるいは区間Ａを１／２に等分割して２つのＡ／２区間によって符号化しても構わない。また、正規化処理のシフト数Ｎから判断し、規定のオフセット分の切捨て区間サイズが確保できないときだけ割込み種別値を符号化し、確保できるときには割込み種別をオフセット値によって通知する方法を採用する応用方式も考えられる。
【０１４７】
以上のように、本発明では減算型算術符号化及び減算型算術復号において、一方の部分区間サイズとして割り当てられる定数が正規化されたときに切り捨てられている確率値の表現精度（有効精度）を補償することにより符号化効率を向上させるものである。このような精度補償の概念は説明した通りであるが、符号化及び復号の手順は一例であって、区間及び符号の更新には他の等価な演算手順・表記もありうるが、その表現が本発明の本質に関わるものではない。また、算術符号化及び算術復号で通常行われるキャリー制御あるいはボロー制御は、実装上の問題であって、これも本発明の本質に関わるものではない。
また、本発明では、正規化処理後の補正処理を２値算術符号について説明を行ったが、多値算術符号についても適用できる。
【０１４８】
また、精度補償のための補正後に通常では符号を割り当てられることのない切り捨てられる微小区間に符号値を定義することにより、復号終了の通知を行うことができる。
【０１４９】
本実施の形態による割込みによって、各種の処理を符号化と復号との間で同期をとって実行できることを説明したが、従来の算術符号で符号中に挿入していたマーカセグメントによる符号終端をはじめとする情報の通知方法をとらなくても実現できるようになる。例えば、従来の国際標準符号化勧告Ｔ．８２ではマーカセグメントとして種別を示す２バイト（および必要であればその実情報）を挿入しなければならなかったが、本実施の形態によれば種別を示すために割込み処理で要する付加データ量は２バイトより少なくてすみ、かつ実情報まで合わせて同時に通知できることもある。また、従来のようなマーカセグメントが不要となれば、符号中にマーカセグメントと同一値が発生しないようにするためにビットやバイトを挿入する制御も必要としなくなる。ただし、符号化処理演算によって出力済みの上位への桁上がり（キャリー）有無の通知手段としてビット挿入（ビットスタッフィング）を採用することがあるが、この桁上がり有無の通知のためのビット挿入制御とマーカセグメントの確保のための挿入制御とは目的を区別して考えなければならない。本実施の形態による割込みの一例として、上記のような上位への桁上がりが発生したという情報を割込み処理を使用して通知することもできる。
【０１５０】
実施の形態５．
上記符号化装置・復号装置、及び、上記符号化方法・復号方法は、汎用の計算機で実行されるプログラムによって実現することができる。また、上記プログラムは、計算機で読み取り可能な記録媒体に記録することが可能である。記録媒体に記録されたプログラムは、計算機に読み込まれ（ロード）され、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実行される。
上記プログラムは、下記の動作を計算機に実施させる。以下では、シンボルを符号化するプログラムを符号化プログラム、シンボルを復号するプログラムを復号プログラムとして説明する。
【０１５１】
符号化プログラムは、区間サイズ（Ａ）と区間境界値（Ｃ）とを有し、数直線上に設定された設定区間を分割し、出現シンボルに対応した部分区間を選択し、選択した部分区間を設定区間に更新するとともに、上記選択した部分区間に基づいて、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新して区間内座標を符号化する符号化処理において、シンボルを符号化する度に、すなわち、シンボルの符号化処理がすむ（終了する）ごとに、区間サイズ（Ａ）と区間境界値（Ｃ）とを補正する補正処理を計算機に実行させる。
【０１５２】
また、符号化プログラムは、具体的に下記の処理を計算機に実行させる。
（１）シンボルの出現状況に基づいて、シンボルの出現確率を学習し、学習したシンボルの出現確率を記憶領域に記憶する確率学習処理。
（２）上記確率学習処理において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出処理。
（３）上記部分区間算出処理で取得した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化処理。
（４）上記第１の正規化処理で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化処理。
【０１５３】
（５）上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する補正値算出処理。
（６）上記第１の正規化処理で正規化した部分区間サイズを上記補正値算出処理で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正処理。
（７）上記第２の正規化処理で正規化した部分区間境界値を上記補正値算出処理で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として出力する区間境界値補正処理。
【０１５４】
復号プログラムは、区間サイズ（Ａ）と区間境界値（Ｃ）とを有し、数直線上に設定された設定区間を分割し、符号値の存在する部分区間を選択し、有限精度で区間サイズ（Ａ）と区間境界値（Ｃ）とを更新してシンボルを復号する復号処理において、シンボルを復号する度に、すなわち、シンボルの復号処理がすむ（終了する）ごとに、区間サイズ（Ａ）と区間境界値（Ｃ）とを補正する補正処理を計算機に実行させる。
【０１５５】
また、復号プログラムは、具体的に下記の処理を計算機に実行させる。
（１）上記確率学習処理において記憶した上記シンボルの出現確率を用いて、部分区間サイズを取得し、上記部分区間サイズに対応する部分区間境界値を算出する部分区間算出処理。
（２）上記部分区間算出処理で算出した部分区間サイズが一定値以上を保持するように、部分区間サイズを正規化する第１の正規化処理。
（３）上記第１の正規化処理で用いた倍率と同じ倍率で上記部分区間境界値を正規化する第２の正規化処理。
（４）上記部分区間サイズを補正するサイズ補正値と、上記部分区間境界値を補正する境界補正値を算出する補正値算出処理。
【０１５６】
（５）上記第１の正規化処理で正規化した部分区間サイズを上記補正値算出処理で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正処理。
（６）上記第１の正規化処理で正規化した部分区間サイズを上記補正値算出処理で算出したサイズ補正値を用いて補正し、補正した部分区間サイズを区間サイズとして出力する区間補正処理。
（７）上記第２の正規化処理で正規化した部分区間境界値を上記補正値算出処理で算出した境界補正値を用いて補正し、補正した部分区間境界値を区間境界値として出力する区間境界値補正処理。
【０１５７】
また、上記符号化装置・復号装置における処理の実行と、符号化方法・復号方法の実行とによって、あるいは、符号化プログラム・復号プログラムを実行させることによって、区間サイズと区間境界値が、シンボルの符号化／復号処理毎に補正された符号データが生成される。
【０１５８】
本実施の形態に関わる機能の実装は、実施の形態１から実施の形態４による装置機能のすべてをプログラムで実装するだけでなく、これらの装置を構成する機能の一部をプログラムで実現したハードウェアとソフトウェアを組み合わせた実装形態、あるいは機能の全部あるいは一部をコアとしてＣＰＵ内部に組み込んだシステムＬＳＩとその制御および残りの機能をライブラリソフトウェアとして供給されたミドルウェアを組み合わせた実装形態をとっても構わない。
【０１５９】
実施の形態６．
上記符号化装置・復号装置、及び、上記符号化方法・復号方法により扱われる符号データの利用は、伝送・蓄積を問わない。また、その伝送については、無線、有線などの伝送路、アナログやディジタル、変復調、多重化などの伝送方式、伝送速度、接続プロトコルやインタフェースを問わない。さらに、その蓄積については、読出し専用あるいは読出し及び追記・書換え可能な半導体や記憶媒体、チップ、カードやディスクなどの形状、固定式や移動・取外し式などの据付け形態、電気・磁気や光学式などの記録方式、記録密度、記憶容量を問わない。
【０１６０】
【発明の効果】
この発明の符号化装置及び方法、復号装置及び方法において、補正値を算出して、算出した補正値を用いて区間サイズを補正することによってより精度の高い符号化・復号が可能となる。
【０１６１】
また、部分区間サイズをシンボルの出現確率と区間サイズとを用いて算出することにより、部分区間サイズを逐次算出することができるとともに、区間サイズに対応する部分区間サイズを取得することができる。
【０１６２】
また、追加精度を用いて補正値を算出することにより、高精度の符号化・復号が可能となる。
【０１６３】
また、部分区間サイズテーブルを用いることにより、複数の部分区間サイズの候補から、シンボルの出現確率に基づいて、最適な部分区間サイズを取得することができる。
【０１６４】
また、シンボルの出現確率のうち、低い小さい値を用いて、部分区間サイズを算出することにより、シンボルの出現確率の低い小さい値を反映した部分区間サイズを取得することができる。
【０１６５】
部分区間サイズを用いて補正値を算出することにより、符号化・復号過程で取得した部分区間サイズに適応した補正値を算出することができる。
【０１６６】
取得した部分区間サイズのうち、より小さい部分区間サイズを用いて補正値を算出することにより、小区間の補正が可能となり、より高い精度の符号化・復号が可能となる。
【０１６７】
また、実施の形態１によれば、部分区間サイズを縮小するように補正値を算出し、部分区間サイズを縮小することによって、符号化・復号の精度を高めることが可能なる。
【０１６８】
また、実施の形態１によれば、部分区間サイズを拡大するように補正値を算出し、部分区間サイズを拡大することによって、符号化・復号の精度を高めることが可能なる。
【０１６９】
設定区間に部分区間に含まれない微小区間を設定することによって、微小の補正を可能とすることができる。
【０１７０】
微小区間を割込みの通知に利用することによって、符号化・復号の処理において、同期をとることが可能となる。
【０１７１】
割込み処理として、処理終了、変数パラメータ初期化指示、変数パラメータ切替指示定数パラメータ切替指示、エラー検出指示等を通知することを可能とする。
【０１７２】
微小区間により、複数の割込み処理を識別することを可能とする。
【図面の簡単な説明】
【図１】  Ｐ，ＬＳＺ，ｄＬＳＺ，ｒＬＳＺの定義を示す図。
【図２】  ｄＬＳＺを導入した符号化概念図。
【図３】  ｄＬＳＺを導入した符号化手順を示す図。
【図４】  ｄＬＳＺを導入した復号手順を示す図。
【図５】  補正を導入した符号化ブロック図。
【図６】  補正を導入した復号ブロック図。
【図７】  ｄＬＳＺを導入した“条件付きＭＰＳ／ＬＰＳ交換”符号化手順を示す図。
【図８】  ｄＬＳＺを導入した“条件付きＭＰＳ／ＬＰＳ交換”復号手順を示す図。
【図９】  補正を導入した“条件付きＭＰＳ／ＬＰＳ交換”符号化ブロック図。
【図１０】  補正を導入した“条件付きＭＰＳ／ＬＰＳ交換”復号ブロック図。
【図１１】  ｄＬＳＺ’を導入した符号化概念図。
【図１２】  ｄＬＳＺ’を導入した符号化手順を示す図。
【図１３】  ｄＬＳＺ’を導入した復号手順を示す図。
【図１４】  適応的補正と部分区間閾値を示す図。
【図１５】  ｅＬＳＺの定義を示す図。
【図１６】  適応的補正の概念図。
【図１７】  適応的補正を導入した符号化手順を示す図。
【図１８】  適応的補正を導入した復号手順を示す図。
【図１９】  割込み処理の符号化を示す図。
【図２０】  ＤＥＣＯＤＥ＿ＬＯＷＥＲ処理を示す図。
【図２１】  ＤＥＣＯＤＥ＿ＵＰＰＥＲ処理を示す図。
【図２２】  割込み制御を示す図。
【図２３】  乗算型算術符号化の区間分割の概念図。
【図２４】  乗算型算術符号化手順を示す図。
【図２５】  乗算型算術復号手順を示す図。
【図２６】  減算型算術符号化の区間分割の概念図。
【図２７】  減算型算術符号化手順を示す図。
【図２８】  減算型算術復号手順を示す図。
【図２９】  “条件付きＭＰＳ／ＬＰＳ交換”の概念を示す図。
【図３０】  “条件付きＭＰＳ／ＬＰＳ交換”減算型算術符号化手順を示す図。
【図３１】  “条件付きＭＰＳ／ＬＰＳ交換”減算型算術復号手順を示す図。
【符号の説明】
１  シンボル、２  コンテクスト、３  学習メモリ、４  確率Ｐ、５  ＬＳＺテーブル、６  Ｓテーブル（拡大シフト数）、７  Ａレジスタ（区間サイズ）、８  Ｃレジスタ（区間境界値）、９  第１の演算器、１０  第１の切替器、１１第２の切替器、１２  第２の演算器、１３  第１のシフト器、１４  シフト数ｋ（正規化するビット数）、１５  第２のシフト器、１６  符号、１７  第１の比較器、１８  第２の比較器、３１  ｄＬＳＺテーブル、３２  補正値算出器、３３  補正値ｄＡ、３４  補正値ｄＣ、３５  第３の演算器、３６  第４の演算器、３７  割込み制御部、３８  割込み識別子ｏｆｆｓｅｔ。
【図１】
0003801501.tif 000002
【図２】
0003801501.tif 000003
【図３】
0003801501.tif 000004
【図４】
0003801501.tif 000005
【図５】
0003801501.tif 000006
【図６】
0003801501.tif 000007
【図７】
0003801501.tif 000008
【図８】
0003801501.tif 000009
【図９】
0003801501.tif 000010
【図１０】
0003801501.tif 000011
【図１１】
0003801501.tif 000012
【図１２】
0003801501.tif 000013
【図１３】
0003801501.tif 000014
【図１４】
0003801501.tif 000015
【図１５】
0003801501.tif 000016
【図１６】
0003801501.tif 000017
【図１７】
0003801501.tif 000018
【図１８】
0003801501.tif 000019
【図１９】
0003801501.tif 000020
【図２０】
0003801501.tif 000021
【図２１】
0003801501.tif 000022
【図２２】
0003801501.tif 000023
【図２３】
0003801501.tif 000024
【図２４】
0003801501.tif 000025
【図２５】
0003801501.tif 000026
【図２６】
0003801501.tif 000027
【図２７】
0003801501.tif 000028
【図２８】
0003801501.tif 000029
【図２９】
0003801501.tif 000030
【図３０】
0003801501.tif 000031
【図３１】
0003801501.tif 000032