(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】符号化装置、復号装置、これらの方法及びプログラム
(51)【国際特許分類】
H03M 7/40 20060101AFI20221129BHJP
G10L 19/00 20130101ALI20221129BHJP
【FI】
H03M7/40
G10L19/00 250
(21)【出願番号】P 2018239814
(22)【出願日】2018-12-21
【審査請求日】2021-03-09
【新規性喪失の例外の表示】特許法第30条第2項適用 ウェブサイトの掲載日 2018年1月30日 ウェブサイトのアドレス https://ieeexplore.ieee.org/Xplore/home.jsp https://ieeexplore.ieee.org/document/8272498 https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8272498
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】杉浦 亮介
(72)【発明者】
【氏名】守谷 健弘
(72)【発明者】
【氏名】鎌本 優
【審査官】北村 智彦
(56)【参考文献】
【文献】特開2011-216953(JP,A)
【文献】特開2010-160439(JP,A)
【文献】特開2011-035682(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/40
G10L 19/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
入力された非負整数値による系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化部と、
前記単進符号の符号列の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’に、それぞれ置き換えて、置き換え後の符号列を得るビット反転処理部と、
前記置き換え後の符号列を単進復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号部と、
複数個の非負整数値に同じビット数の符号を割り当てることはあってもよいが、複数個の非負整数値のうちの値が
大きいほうにビット数が少ない符号を割り当てることはない、可変長で可逆の符号化規則に従って、前記単進復号部が得た前記第二整数系列を符号化して整数符号を得る整数符号化部と、
を備える符号化装置。
【請求項2】
入力された非負整数値による系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化部と、
前記単進符号化部の単進符号とはビット値’0’とビット値’1’が逆の規則である単進復号で、前記単進符号の符号列を復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号部と、
複数個の非負整数値に同じビット数の符号を割り当てることはあってもよいが、複数個の非負整数値のうちの値が
大きいほうにビット数が少ない符号を割り当てることはない、可変長で可逆の符号化規則に従って、前記単進復号部が得た前記第二整数系列を符号化して整数符号を得る整数符号化部と、
を備える符号化装置。
【請求項3】
請求項1または2に記載の符号化装置であって、
前記第一整数系列は、前記符号化装置に入力された非負整数値による系列に含まれる所定サンプル毎の非負整数値による系列であり、
前記第一整数系列ごとに、前記第一整数系列に含まれる非負整数値に対応するゴロムパラメータsの逆数である整数符号化用ゴロムパラメータs'と、前記整数符号化用ゴロムパラメータs'に対応するパラメータ符号と、を得るパラメータ決定部を更に備え、
前記整数符号化部は、前記パラメータ決定部が得た前記整数符号化用ゴロムパラメータs'をゴロムパラメータとして用いて、前記単進復号部が得た前記第二整数系列をゴロム符号化して整数符号を得る、
符号化装置。
【請求項4】
請求項1または2に記載の符号化装置であって、
前記第一整数系列は、前記符号化装置に入力された非負整数値による系列に含まれる所定サンプル毎の非負整数値による系列であり、
前記第一整数系列ごとに、前記第一整数系列に含まれる非負整数値に対応するゴロムパラメータsと、前記ゴロムパラメータsに対応するパラメータ符号と、を得るパラメータ決定部を更に備え、
前記整数符号化部は、前記パラメータ決定部が得た前記ゴロムパラメータsの逆数をゴロムパラメータとして用いて、前記単進復号部が得た前記第二整数系列をゴロム符号化して整数符号を得る、
符号化装置。
【請求項5】
請求項1に記載の符号化装置であって、
前記符号化装置に入力された非負整数値による系列に含まれる所定サンプル毎に、前記所定サンプルの非負整数値による系列(以下、「入力整数系列」という)に含まれる非負整数値に対応するゴロムパラメータsと、前記ゴロムパラメータsに対応するパラメータ符号と、を得るパラメータ決定部を更に備え、
前記ゴロムパラメータsが1未満である場合には、
前記入力整数系列を前記第一整数系列として前記単進符号化部と前記ビット反転処理部と前記単進復号部を動作させることで前記第二整数系列を得て、
前記整数符号化部が、前記パラメータ決定部が得た前記ゴロムパラメータsの逆数をゴロムパラメータとして用いて、前記第二整数系列をゴロム符号化して整数符号を得て、
前記ゴロムパラメータsが1以上である場合には、
前記整数符号化部が、前記パラメータ決定部が得た前記ゴロムパラメータsをゴロムパラメータとして用いて、前記入力整数系列をゴロム符号化して整数符号を得る、
符号化装置。
【請求項6】
請求項2に記載の符号化装置であって、
前記符号化装置に入力された非負整数値による系列に含まれる所定サンプル毎に、前記所定サンプルの非負整数値による系列(以下、「入力整数系列」という)に含まれる非負整数値に対応するゴロムパラメータsと、前記ゴロムパラメータsに対応するパラメータ符号と、を得るパラメータ決定部を更に備え、
前記ゴロムパラメータsが1未満である場合には、
前記入力整数系列を前記第一整数系列として前記単進符号化部と前記単進復号部を動作させることで前記第二整数系列を得て、
前記整数符号化部が、前記パラメータ決定部が得た前記ゴロムパラメータsの逆数をゴロムパラメータとして用いて、前記第二整数系列をゴロム符号化して整数符号を得て、
前記ゴロムパラメータsが1以上である場合には、
前記整数符号化部が、前記パラメータ決定部が得た前記ゴロムパラメータsをゴロムパラメータとして用いて、前記入力整数系列をゴロム符号化して整数符号を得る、
符号化装置。
【請求項7】
複数個の同じビット数の符号それぞれから異なる非負整数値を得ることはあってもよいが、複数個の異なるビット数の符号のうちのビット数が多いほうから得る非負整数値はビット数が少ないほうから得る非負整数値より必ず大きい、可変長で可逆の復号規則に従って、入力された整数符号を復号して非負整数値の系列を得る整数復号部と、
前記整数復号部が得た非負整数値の系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化部と、
前記単進符号の符号列の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’に、それぞれ置き換えて、置き換え後の符号列を得るビット反転処理部と、
前記置き換え後の符号列を単進復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号部と、
を備える復号装置。
【請求項8】
複数個の同じビット数の符号それぞれから異なる非負整数値を得ることはあってもよいが、複数個の異なるビット数の符号のうちのビット数が多いほうから得る非負整数値はビット数が少ないほうから得る非負整数値より必ず大きい、可変長で可逆の復号規則に従って、入力された整数符号を復号して非負整数値の系列を得る整数復号部と、
前記整数復号部が得た非負整数値の系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化部と、
前記単進符号化部の単進符号とはビット値’0’とビット値’1’が逆の規則である単進復号で、前記単進符号の符号列を復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号部と、
を備える復号装置。
【請求項9】
請求項7に記載の復号装置であって、
パラメータ符号を復号してゴロムパラメータsを得るパラメータ復号部を更に備え、
前記ゴロムパラメータsが1未満である場合には、
前記整数復号部が、前記パラメータ復号部が得た前記ゴロムパラメータsの逆数をゴロムパラメータとして用いて、入力された整数符号をゴロム復号して非負整数値の系列を得て、
前記整数復号部が得た非負整数値の系列を前記第一整数系列として前記単進符号化部と前記ビット反転処理部と前記単進復号部を動作させることで前記第二整数系列を得て、得た第二整数系列を復号整数系列として出力し、
前記ゴロムパラメータsが1以上である場合には、
前記整数復号部が、前記パラメータ復号部が得た前記ゴロムパラメータsをゴロムパラメータとして用いて、入力された整数符号をゴロム復号して非負整数値の系列を得て、得た非負整数値の系列を復号整数系列として出力する、
復号装置。
【請求項10】
請求項8に記載の復号装置であって、
パラメータ符号を復号してゴロムパラメータsを得るパラメータ復号部を更に備え、
前記ゴロムパラメータsが1未満である場合には、
前記整数復号部が、前記パラメータ復号部が得た前記ゴロムパラメータsの逆数をゴロムパラメータとして用いて、入力された整数符号をゴロム復号して非負整数値の系列を得て、
前記整数復号部が得た非負整数値の系列を前記第一整数系列として前記単進符号化部と前記単進復号部を動作させることで前記第二整数系列を得て、得た第二整数系列を復号整数系列として出力し、
前記ゴロムパラメータsが1以上である場合には、
前記整数復号部が、前記パラメータ復号部が得た前記ゴロムパラメータsをゴロムパラメータとして用いて、入力された整数符号をゴロム復号して非負整数値の系列を得て、得た非負整数値の系列を復号整数系列として出力する、
復号装置。
【請求項11】
符号化装置が、入力された非負整数値による系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化ステップと、
前記符号化装置が、前記単進符号の符号列の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’に、それぞれ置き換えて、置き換え後の符号列を得るビット反転処理ステップと、
前記符号化装置が、前記置き換え後の符号列を単進復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号ステップと、
前記符号化装置が、複数個の非負整数値に同じビット数の符号を割り当てることはあってもよいが、複数個の非負整数値のうちの値が
大きいほうにビット数が少ない符号を割り当てることはない、可変長で可逆の符号化規則に従って、前記単進復号ステップで得た前記第二整数系列を符号化して整数符号を得る整数符号化ステップと、
を実行する符号化方法。
【請求項12】
符号化装置が、入力された非負整数値による系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化ステップと、
前記符号化装置が、前記単進符号化ステップの単進符号とはビット値’0’とビット値’1’が逆の規則である単進復号で、前記単進符号の符号列を復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号ステップと、
前記符号化装置が、複数個の非負整数値に同じビット数の符号を割り当てることはあってもよいが、複数個の非負整数値のうちの値が
大きいほうにビット数が少ない符号を割り当てることはない、可変長で可逆の符号化規則に従って、前記単進復号ステップで得た前記第二整数系列を符号化して整数符号を得る整数符号化ステップと、
を実行する符号化方法。
【請求項13】
復号装置が、複数個の同じビット数の符号それぞれから異なる非負整数値を得ることはあってもよいが、複数個の異なるビット数の符号のうちのビット数が多いほうから得る非負整数値はビット数が少ないほうから得る非負整数値より必ず大きい、可変長で可逆の復号規則に従って、入力された整数符号を復号して非負整数値の系列を得る整数復号ステップと、
前記復号装置が、前記整数復号ステップで得た非負整数値の系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化ステップと、
前記復号装置が、前記単進符号の符号列の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’に、それぞれ置き換えて、置き換え後の符号列を得るビット反転処理ステップと、
前記復号装置が、前記置き換え後の符号列を単進復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号ステップと、
を実行する復号方法。
【請求項14】
復号装置が、複数個の同じビット数の符号それぞれから異なる非負整数値を得ることはあってもよいが、複数個の異なるビット数の符号のうちのビット数が多いほうから得る非負整数値はビット数が少ないほうから得る非負整数値より必ず大きい、可変長で可逆の復号規則に従って、入力された整数符号を復号して非負整数値の系列を得る整数復号ステップと、
前記復号装置が、前記整数復号ステップで得た非負整数値の系列(以下、「第一整数系列」という)を単進符号化して単進符号の符号列を得る単進符号化ステップと、
前記復号装置が、前記単進符号化ステップの単進符号とはビット値’0’とビット値’1’が逆の規則である単進復号で、前記単進符号の符号列を復号して非負整数値による系列(以下、「第二整数系列」という)を得る単進復号ステップと、
を実行する復号方法。
【請求項15】
請求項1ないし6の何れか1項に記載の符号化装置としてコンピュータを機能させるためのプログラム。
【請求項16】
請求項7ないし10の何れか1項に記載の復号装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声や音響の時系列ディジタル信号のサンプル系列などの整数値から成るサンプル系列を符号化、復号する技術、符号化や復号をするための整数値の系列の変換に関する。
【背景技術】
【0002】
圧縮を目的としてサンプル系列を符号化する技術として、サンプル値を量子化することにより得た有限精度の値(以下、これを整数値と呼ぶ)を可逆符号化することにより、サンプル系列の記述に用いるビット長を削減する技術がある。この技術においては、どの整数値に対してどの長さの符号を割り当てるかが、圧縮の性能に直結する。この事実は、画像信号のサンプル列を符号化復号する画像符号化や音響信号のサンプル列を符号化復号する音響符号化などの、サンプル系列の符号化や復号の工学的応用先においても例外ではない。
【0003】
一般的に可変長の可逆符号化においては、復号可能性の制約により、整数値に割り当てる符号の構成に制約がある。具体的には、ある整数値に対して短い符号を割り当てるとすると、復号可能な符号にするには他の整数値に対して長い符号を割り当てなければならない、という制約である。従って、圧縮性能を高くするためには、符号の構成(各整数値への符号の割り当て)は整数値の系列中の値の分布に適したものとする必要がある。具体的には、出現確率が高い整数値に対して短い符号を割り当て、出現確率が低い整数値に対しては長い符号を割り当てることで、整数値の系列の圧縮後のビット長の期待値を小さくすることができる。
【0004】
上記のような可逆符号化において最も単純な可変長符号の一つとして用いられてきたのがGolomb符号(ゴロム符号)である。Golomb符号は、整数値の系列が指数分布に属する場合、つまり整数値の出現確率が値の大きさに対して指数的に低くなっている場合において、最小の期待ビット長(最小のビット長)を達成することが知られている。
【0005】
このGolomb符号は非常に単純な構成であることから広く用いられている。Golomb符号は、例えば、音響信号をAD変換してPCMにした整数値の系列やその系列をフーリエ変換して周波数スペクトルに変換した系列などに含まれる各サンプル値を量子化値で除算して得た整数値の絶対値の系列を符号化するときに用いられる。或いは、Golomb符号は、上記整数値の系列の各サンプル値xを下記の式(1)により求まるx’にそれぞれ置き換えた非負整数値からなる系列を符号化するときに用いられる。
【0006】
【0007】
従って、以下では非負整数値を符号化・復号する場合について説明するが、式(1)などにより整数値全体を非負整数値に一対一に変換できるという上記の事実から、符号化処理の前段で式(1)などにより整数値全体を非負整数値に変換したり、復号処理の後段で式(1)の逆変換などにより非負整数値を整数値全体に変換したりすることで、整数値全体の符号化・復号にも適応可能である。
【0008】
Golomb符号化は、Golombパラメータ(ゴロムパラメータ)sの値に応じて、非負整数値の入力xに対する符号が、入力xの値がs増える度に1ビット増加するものとし、下記の式(2)の指数分布(片側ラプラス分布)に従う非負整数値の系列に対して近似的に最適な期待ビット長を与えるように符号化できるものである。
【0009】
【0010】
ただし、Golombパラメータsは自然数である。つまり、Golombパラメータsを小さな自然数とすれば、値の偏りの大きい系列を少ない平均ビット数で符号化でき、sを大きな自然数とすれば、値の偏りの小さい系列を少ない平均ビット数で符号化できる。なお、sが2のべき乗数であるGolomb符号は、特にGolomb-Rice符号(ゴロムライス符号)と呼ばれている。Golomb-Rice符号は、具体的には、非負の整数値であるRiceパラメータ(ライスパラメータ)をrとすると、Golombパラメータs=2
rを用いたときのGolomb符号である。
図1は、Golomb-Rice符号の例である。
【0011】
しかし、入力される非負整数値の系列の現実の分布では、式(2)におけるsとして0より大きな任意の実数値を取りうるのに対して、Golomb符号はGolombパラメータsを1未満にすることができない。また、s=2rとなるrについていえば、入力される非負整数値の系列の現実の分布ではrは任意の実数値を取りうるのに対して、Golomb-Rice符号はRiceパラメータrを負値にすることができない。従って、例えば分布p(x,2-2)に従う値の系列など、系列の値の偏りが分布p(x,2-1)よりも大きくなるにつれ、GolombパラメータsやRiceパラメータrをどのように設定しても圧縮の効率は低下していく。
【0012】
例えば、音響信号をAD変換してPCMにするときには、大音量まで記録できるように表現可能な数値の範囲を設定しているため、多くの信号の系列に含まれる値は表現可能な数値の範囲の絶対値が小さな値のところに偏る傾向にある。特に、音声信号は発話の無い時間区間があるため、零値や背景雑音だけの非常に小さな値に偏る。また、このような信号の系列に含まれる各値を量子化値で除算して得た整数値の系列は、量子化により、元の系列よりも更に零値を含む小さな値に偏っている。
【0013】
零値に偏った整数値の系列を符号化する先行技術としては非特許文献1の技術がある。非特許文献1の技術は、入力された整数値の系列に含まれる零値は、零値が連続する個数を予め決めた固定ビット数で符号化して、入力された整数値の系列に含まれる零値以外の値は、その値から1を減算して得た値(値-1)をGolomb-Rice符号化するものである。
【0014】
また、零値を含む小さな値に偏った整数値の系列を符号化する先行技術としては非特許文献2の技術がある。非特許文献2の技術は、2つの整数値による組と1つの整数値を全単射となるように予め紐付けておき、整数値の系列に含まれる2つの整数値による組を1つの整数値に変換し、変換後の整数値の系列をGolomb-Rice符号化するものである。
【先行技術文献】
【非特許文献】
【0015】
【文献】H. S. Malvar, “Adaptive Run-Length / Golomb-Rice Encoding of Quantized Generalized Gaussian Sources with Unknown Statistics”, in Proc. Data Compression Conference (DCC) 06, IEEE Computer Society, pp.23-32, Mar. 2006.
【文献】高村誠之,八島由幸,“分布写像に基づくガウス性情報源の効率的符号化”,映像情報メディア学会誌,Vol.61,No.9,pp.1357-1362,2007.
【発明の概要】
【発明が解決しようとする課題】
【0016】
非特許文献1の技術によれば、零値については少ない平均ビット数で符号化することができる。しかし、非特許文献1の技術では零値以外についてはGolomb-Rice符号化とほぼ同じ符号化を行うので、非特許文献1の技術には、零値ではない小さな値が分布p(x,2-1)よりも大きく偏っている場合には、圧縮の性能が低下するという課題がある。
【0017】
また、非特許文献1の技術は数学的に表現される分布に対応した符号化方法ではない。従って、非特許文献1の技術には、整数値の系列における値の分布を知ったところで、零値の連続する個数を表現するために用いるビット数としてどれを選択して符号化すれば少ない平均ビット数で符号化できるのかがわからないという課題もある。
【0018】
一方、非特許文献2の技術によれば、分布p(x, 2-1)よりも値の偏っている整数値の系列を少ない平均ビット数で符号化することができる。しかし、非特許文献2の技術は、1つの整数値に対する平均ビット数を0.5ビットより小さくできず、理論上最適な平均ビット数が0.5ビット未満となるような偏りの大きい整数値の系列に対しては、圧縮の性能が低下するという課題がある。
【0019】
そこで本発明では、零値ではない小さな値も含み、その分布が小さな値に大きく偏っている整数値の系列であっても、少ない平均ビット数で符号化することができる符号化復号のための整数値の系列の変換技術を提供することを目的とする。
【課題を解決するための手段】
【0020】
本発明では、Golomb符号化などの可変長で可逆の整数符号化処理を行う前の非負整数値の系列やGolomb復号などの可変長で可逆の整数復号処理を行って得た非負整数値の系列に対して、非負整数値の系列を単進符号化して、その単進符号化で得られた符号列の’0’と’1’をビット反転させた符号列を単進復号して変換後の非負整数値の系列を得る変換処理を行う。
【0021】
ここで単進符号とは、非負整数値が0ならば符号’0’、非負整数値が1ならば符号’10’、非負整数値が2ならば符号’110’のように、非負整数値と、その非負整数値分の個数のビット値’1’と1つのビット値’0’とを組み合わせた符号と、を対応させるという規則で構成されているものである。すなわち、単進符号化とは、入力された非負整数値の系列に含まれる各非負整数値に対応する単進符号による符号列を得る処理である。また、単進復号とは、入力された符号列に含まれる各単進符号に対応する非負整数値による系列を得る処理である。
【0022】
また、整数符号化処理や整数復号処理で用いるGolomb符号などの可変長で可逆の符号は、非負整数値に対応する符号のビット数が非負整数値に対して単調非減少の関係にある可変長で可逆の符号である。すなわち、Golomb符号化などの可変長で可逆の整数符号化処理とは、複数個の非負整数値に同じビット数の符号を割り当てることはあってもよいが、複数個の非負整数値のうちの値が大きいほうにビット数が少ない符号を割り当てることはない、可変長で可逆の符号化規則に従って、入力された非負整数値に対応する符号を得る処理である。また、Golomb復号などの可変長で可逆の整数復号処理とは、複数個の同じビット数の符号それぞれから異なる非負整数値を得ることはあってもよいが、複数個の異なるビット数の符号のうちのビット数が多いほうから得る非負整数値はビット数が少ないほうから得る非負整数値より必ず大きい、可変長で可逆の復号規則に従って、入力された符号に対応する非負整数値を得る処理である。
【0023】
または、本発明では、Golomb符号化などの可変長で可逆の整数符号化処理を行う前の非負整数値の系列やGolomb復号などの可変長で可逆の整数復号処理を行って得た非負整数値の系列に対して、非負整数値の系列を単進符号化して得られた符号列を、その単進符号化の規則とは’0’と’1’をビット反転させた規則の単進復号で復号して変換後の非負整数値による系列を得る変換処理を行う。上述した単進符号の規則の場合であれば、’0’と’1’をビット反転させた規則とは、非負整数値が0ならば符号’1’、非負整数値が1ならば符号’01’、非負整数値が2ならば符号’001’のように、非負整数値と、その非負整数値分の個数のビット値’0’と1つのビット値’1’とを組み合わせた符号を対応させるという規則である。
【発明の効果】
【0024】
本発明によれば、零値ではない小さな値も含んで小さな値に大きく偏っている整数値の系列や、非特許文献2の技術では対応しきれないくらいに値の偏った整数値の系列であっても、本発明の変換処理を行ってから符号化することで、少ない平均ビット数で符号化することができる。また、そのような符号化で得た符号を復号してから本発明の変換処理を行うことで、元の整数値の系列を得ることができる。
【図面の簡単な説明】
【0025】
【
図1】非負整数値に対するGolomb-Rice符号の例を示す図である。
【
図2】第一実施形態の符号化装置200の構成の一例を示すブロック図である。
【
図3】第一実施形態の符号化装置200の動作の一例を示すフローチャートである。
【
図4】非負整数値に対する単進符号の例を示す図である。
【
図5】第一実施形態の復号装置300の構成の一例を示すブロック図である。
【
図6】第一実施形態の復号装置300の動作の一例を示すフローチャートである。
【
図7】
図4の単進符号のビット値を逆にした規則の単進符号を示す図である。
【
図8】第二実施形態の符号化装置400の構成の一例を示すブロック図である。
【
図9】第二実施形態の符号化装置400の動作の一例を示すフローチャートである。
【
図10】第二実施形態の復号装置500の構成の一例を示すブロック図である。
【
図11】第二実施形態の復号装置500の動作の一例を示すフローチャートである。
【
図12】第三実施形態の符号化装置600の構成の一例を示すブロック図である。
【
図13】第三実施形態の符号化装置600の動作の一例を示すフローチャートである。
【
図14】第三実施形態の復号装置700の構成の一例を示すブロック図である。
【
図15】第三実施形態の復号装置700の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0026】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<第一実施形態>
≪符号化装置≫
図2及び
図3を参照して、本発明の変換装置100を含む第一実施形態の符号化装置200が実行する符号化方法の処理手続きを説明する。第一実施形態の符号化装置200は、
図2に示す通り、変換装置100と整数符号化部210を含む。変換装置100は、単進符号化部110とビット反転処理部120と単進復号部130を含む。第一実施形態の符号化装置200が
図3に示す各ステップの処理を実行することにより、本発明の変換方法を含む第一実施形態の符号化方法が実現される。
【0027】
第一実施形態の符号化装置200には、非負の整数値の系列が入力される。この非負の整数値の系列としては、例えば、マイクロホンで収音した音声や音楽などをディジタル信号に変換して得た信号やカメラで撮像した画像や映像をディジタル信号に変換して得た信号などの信号の一部あるいは全部を既存の技術により量子化して有限精度の値にして得た整数値の絶対値による系列、または、整数値をxとして式(1)により得たx’による系列を入力してもよい。
【0028】
第一実施形態の符号化装置200は、符号化装置200に入力された整数値の系列に対して変換装置100によって変換を行って変換後の整数値の系列を得て、変換後の整数値の系列を整数符号化することで、例えばGolomb符号化やGolomb-Rice符号化などの整数符号化が想定している分布よりも偏りの大きな分布の非負の整数値の系列に対して、変換装置100を用いずに符号化装置200に入力された整数値の系列をそのまま整数符号化した場合よりも短いビット長となる符号化処理を実現するものである。以下では、符号化装置200に入力された非負の整数値を単に「整数値」と呼んで説明する。
【0029】
[単進符号化部110]
単進符号化部110には、符号化装置200に入力された整数値の系列のうちの、Nサンプル(Nは自然数)ずつの整数値による系列(以下では、入力整数系列という)が入力される。単進符号化部110は、入力整数系列を単進符号化して入力整数系列に対する単進符号の符号列を得て、得られた単進符号の符号列をビット反転処理部120へ出力する(ステップS110)。
【0030】
単進符号の符号列は、単進符号化部110が、i=1, ..., Nとしたときのx
iそれぞれに対して単進符号、すなわち、x
i個のビット値’1’と1つのビット値’0’とによる符号を得て、得た単進符号を連結することによって得られる。整数値とその整数値に対応する単進符号は
図4の通りである。
【0031】
[ビット反転処理部120]
ビット反転処理部120は、単進符号化部110が出力した単進符号の符号列を受け取り、その単進符号の符号列の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’にそれぞれ置き換えて置き換え後の符号列(以下では、反転単進符号の符号列という)を得て、得られた反転単進符号の符号列を単進復号部130へ出力する(ステップS120)。
【0032】
[単進復号部130]
単進復号部130は、ビット反転処理部120が出力した反転単進符号の符号列を受け取り、反転単進符号の符号列を単進復号して整数値の系列(以下では、変換整数系列という)を得て、得られた変換整数系列を整数符号化部210へ出力する(ステップS130)。
【0033】
単進復号は、単進復号部130が、反転単進符号の符号列をビット値’0’が出現するまで読み込み、その間に出現したビット値’1’の個数を整数値として得ることを、反転単進符号の符号列の始端から終端まで順次行うことにより行う。なお、単進復号部130は、反転単進符号の符号列の終端まで読み込んだ場合に限り、例外的に、直前に整数値を得てから終端のビットまで読み込んだ間に出現したビット値’1’の個数を整数値として得る。
【0034】
または、単進復号部130が、まず、反転単進符号の符号列の終端にビット値’0’を追加して、次に、ビット値’0’を追加した反転単進符号の符号列について、ビット値’0’が出現するまで読み込み、その間に出現したビット値’1’の個数を整数値として得ることを、ビット値’0’を追加した反転単進符号の符号列の始端から終端まで順次行うようにしてもよい。
【0035】
[整数符号化部210]
整数符号化部210は、単進復号部130が出力した変換整数系列を受け取り、その変換整数系列に対して例えばGolomb符号化のような可変長で可逆の符号化を行うことにより整数符号を得て、得られた整数符号を出力する(ステップS210)。
【0036】
整数符号化部210が行う可変長で可逆の符号化は、例えばGolomb符号化やGolomb-Rice符号化のように、複数個の整数値に同じビット数の符号(同じ長さの符号)を割り当てることはあってもよいが、複数個の整数値のうちの値が大きいほうにビット数が少ない符号(短い符号)を割り当てることはない、可変長で可逆の符号化規則に従って、入力された整数値に対応する整数符号を得る処理である。すなわち、整数符号化部210が行う可変長で可逆の符号化は、例えばGolombパラメータが1であるGolomb符号化すなわちRiceパラメータが0であるGolomb-Rice符号化のように、整数値が大きいほどビット数が多い符号(長い符号)を割り当てる可変長で可逆の符号化であってもよいし、例えばGolombパラメータが2以上であるGolomb符号化やRiceパラメータが1以上であるGolomb-Rice符号化のように、複数個の整数値に同じビット数の符号を割り当てることはあるものの、複数個の整数値のうちの値が大きいほうにビット数が少ない符号を割り当てることがない、可変長で可逆の符号化であってもよい。言い換えると、整数符号化部210が行う可変長で可逆の符号化は、整数値とその整数値に対応する符号とが、符号のビット数が整数値に対して単調非減少の関係にある、可変長で可逆の符号化規則に従って、入力された整数値に対応する整数符号を得る処理であるともいえる。
【0037】
なお、上述した説明の符号’0’は2値のビット値のうちの何れか一方のビット値、上述した説明の符号’1’は2値のビット値のうちの他方のビット値、の例である。すなわち、当然のことながら、上述した説明の符号’0’に代えて符号’1’を用い、符号’1’に代えて符号’0’を用いてもよい。
【0038】
[[符号化処理の例]]
符号化処理の例として、入力された整数系列が1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 2, 0, 0, 0であり、整数符号化部210がRiceパラメータr=1のGolomb-Rice符号化をする場合の符号化処理を説明する。まず、単進符号化部110が入力された整数系列を単進符号化して単進符号の符号列’10001000001001010110000’を得る。次に、ビット反転処理部120が単進符号の符号列’10001000001001010110000’の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’にそれぞれ置き換えて反転単進符号の符号列’01110111110110101001111’を得る。次に、単進復号部130が反転単進符号の符号列’01110111110110101001111’を単進復号して変換整数系列0, 3, 5, 2, 1, 1, 0, 4を得る。次に、整数符号化部210が変換整数系列0, 3, 5, 2, 1, 1, 0, 4をRiceパラメータr=1のGolomb-Rice符号化で符号化して整数符号’0010111011000101001100’を得る。
【0039】
≪復号装置≫
図5及び
図6を参照して、本発明の変換装置100を含む第一実施形態の復号装置300が実行する復号方法の処理手続きを説明する。第一実施形態の復号装置300は、
図5に示す通り、整数復号部310と変換装置100を含む。変換装置100は、単進符号化部110とビット反転処理部120と単進復号部130を含む。第一実施形態の復号装置300が
図6に示す各ステップの処理を実行することにより、本発明の変換方法を含む第一実施形態の復号方法が実現される。
【0040】
第一実施形態の復号装置300には、第一実施形態の符号化装置200が出力した整数符号が入力される。第一実施形態の復号装置300は、入力された整数符号を整数復号して整数値の系列を得て、整数復号して得た整数値の系列に対して変換装置100によって変換を行って変換後の整数値の系列を得ることで、第一実施形態の符号化装置200に入力された非負の整数値の系列そのものを復元するものである。以下では、上述した符号化装置200の説明と同様に、非負の整数値を単に「整数値」と呼んで説明する。
【0041】
[整数復号部310]
整数復号部310は、復号装置300に入力された整数符号を受け取り、例えばGolomb復号のような、符号化装置200の整数符号化部210が行った可変長で可逆の符号化に対応する可変長で可逆の復号を行うことにより整数値の系列を得て、得られた整数値の系列を単進符号化部110へ出力する(ステップS310)。整数復号部310が得た整数値の系列は、符号化装置200の整数符号化部210に入力された変換整数系列そのものを復元したものであるので、整数復号部310が得た整数値の系列を復号変換整数系列と呼ぶこととする。
【0042】
整数復号部310が行う可変長で可逆の復号は、例えばGolomb復号やGolomb-Rice復号のように、複数個の同じビット数の符号それぞれから異なる整数値を得ることはあってもよいが、複数個の異なるビット数の符号のうちのビット数が多いほうから得る整数値はビット数が少ないほうから得る整数値より必ず大きい、可変長で可逆の復号規則に従って、入力された整数符号に対応する整数値を得る処理である。すなわち、整数復号部310が行う可変長で可逆の復号は、例えばGolombパラメータが1であるGolomb復号すなわちRiceパラメータが0であるGolomb-Rice復号のように、ビット数が多い符号(長い符号)ほど大きな整数値を得る可変長で可逆の復号であってもよいし、例えばGolombパラメータが2以上であるGolomb復号やRiceパラメータが1以上であるGolomb-Rice復号のように、複数個の同じビット数の符号から異なる整数値を得ることはあるものの、複数個の異なるビット数の符号のうちのビット数が多いほうから得る整数値はビット数が少ないほうから得る整数値より必ず大きい、可変長で可逆の復号であってもよいが、符号化装置200の整数符号化部210が行った可逆符号化に対応する可逆復号である必要がある。言い換えると、整数復号部310が行う可変長で可逆の復号は、符号化装置200の整数符号化部210が行った可逆符号化に対応する可逆復号であって、符号とその符号に対応する整数値とが、符号のビット数が整数値に対して単調非減少の関係にある、可変長で可逆の復号規則に従って、入力された整数符号に対応する整数値を得る処理であるともいえる。
【0043】
[単進符号化部110]
単進符号化部110は、整数復号部310が出力した復号変換整数系列を受け取り、その復号変換整数系列を単進符号化して復号変換整数系列に対する単進符号の符号列を得て、得られた単進符号の符号列(以下では、復号側単進符号の符号列という)をビット反転処理部120へ出力する(ステップS110)。復号装置300に含まれる変換装置100の単進符号化部110が行う単進符号化は、符号化装置200に含まれる変換装置100の単進符号化部110が行う単進符号化と同じである。
【0044】
[ビット反転処理部120]
ビット反転処理部120は、単進符号化部110が出力した復号側単進符号の符号列を受け取り、その復号側単進符号の符号列の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’にそれぞれ置き換えて置き換え後の符号列(以下では、復号側反転単進符号の符号列という)を得て、得られた復号側反転単進符号の符号列を単進復号部130へ出力する(ステップS120)。
【0045】
[単進復号部130]
単進復号部130は、ビット反転処理部120が出力した復号側反転単進符号の符号列を受け取り、復号側反転単進符号の符号列を単進復号して整数値の系列(以下では、復号整数系列という)を得て、得られた復号整数系列を出力する(ステップS130)。
【0046】
単進復号は、復号装置300に含まれる変換装置100の単進復号部130が、復号側反転単進符号の符号列をビット値’0’が出現するまで読み込み、その間に出現したビット値’1’の個数を整数値として得ることを、復号側反転単進符号の符号列の始端から終端のまで順次行うことにより行う。なお、復号側反転単進符号の符号列の終端のビット値は’1’であり、その直前のビット値が’0’であるので、復号装置300に含まれる変換装置100の単進復号部130は、復号側反転単進符号の符号列の終端のビット値’1’は無視し、復号側反転単進符号の符号列の終端のビットの直前のビット値’0’までを単進復号の対象とする。
【0047】
または、単進復号部130が、まず、復号側反転単進符号の符号列の終端のビット値’1’を削除して、次に、ビット値’1’を削除した復号側反転単進符号の符号列について、ビット値’0’が出現するまで読み込み、その間に出現したビット値’1’の個数を整数値として得ることを、復号側反転単進符号の符号列の始端から終端まで順次行うようにしてもよい。
【0048】
なお、上述した説明の符号’0’は2値のビット値のうちの何れか一方のビット値、上述した説明の符号’1’は2値のビット値のうちの他方のビット値、の例である。すなわち、当然のことながら、符号化装置200について上述した説明の符号’0’に代えて符号’1’を用い、符号’1’に代えて符号’0’を用いた場合には、復号装置300でも上述した説明の符号’0’に代えて符号’1’を用い、符号’1’に代えて符号’0’を用いればよい。
【0049】
[[復号処理の例]]
復号処理の例として、入力された整数符号が’0010111011000101001100’であり、整数復号部310がRiceパラメータr=1のGolomb-Rice復号をする場合の復号処理を説明する。まず、整数復号部310が整数符号’0010111011000101001100’をRiceパラメータr=1のGolomb-Rice復号で復号して復号変換整数系列0, 3, 5, 2, 1, 1, 0, 4を得る。次に、単進符号化部110が、復号変換整数系列0, 3, 5, 2, 1, 1, 0, 4を単進符号化して復号側単進符号の符号列’011101111101101010011110’を得る。次に、ビット反転処理部120が復号側単進符号の符号列’011101111101101010011110’の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’にそれぞれ置き換えて復号側反転単進符号の符号列’100010000010010101100001’を得る。次に、単進復号部130が復号側反転単進符号の符号列’100010000010010101100001’を単進復号して復号整数系列1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 2, 0, 0, 0を得る。
【0050】
<発明の原理の説明>
ここで本発明の原理を説明する。
本発明の変換装置100による変換では、特に小さい値に大きく偏っているような指数分布、つまり0.5より十分に小さな正の数θに対してp(x,θ)=(1-θ)θxで表される指数分布に従う整数系列に対しては、Golomb符号で最適に符号化できるような整数系列に変換可能であることが保証される。通常、Golombパラメータsを用いたGolomb符号は、入力の分布としてθ=2-1/sの指数分布p(x,θ)を想定したものとなっており、sは1以上であるためθが0.5未満の指数分布に対しては圧縮効率が低下する。しかし、以下の原理から、本発明の変換装置100による変換を行うことで指数分布p(x,θ)に従う整数系列を指数分布p(x,1-θ)に従う整数系列に変換することができ、元々θが0.5未満であるような偏りの大きい分布は(1-θ)が0.5より大きいため、変換後の整数系列の分布がGolomb符号で効率的に符号化できる偏りの分布となる。
【0051】
本発明の変換装置100による変換では、まず入力された整数系列を単進符号化している。この単進符号化によって得られる単進符号は、整数系列の従う分布が指数分布p(x,θ)であれば、ビット値’1’の出現確率がθ、ビット値’0’の出現確率が(1-θ)となる。得られた単進符号のビット値’1’とビット値’0’を反転させることにより、ビット値それぞれの出現確率も反転し、ビット値’1’の出現確率が(1-θ)、ビット値’0’の出現確率がθとなる。この反転された単進符号を復号すると、得られる整数系列は、θが(1-θ)に置き換わった指数分布p(x,1-θ)に従う。従って、本発明の変換装置100によれば、偏りの大きな整数系列を偏りの小さい整数系列に変換することが可能である。すなわち、入力された整数系列を本発明の変換装置100で変換して、変換後の整数系列をGolomb符号化などの整数符号化処理で符号化するようにすれば、Golomb符号化などでは効率的に符号化できない偏りの大きな整数系列を、Golomb符号化などで効率的に符号化できる範囲内の偏りの整数系列に変換してから符号化することができる。
【0052】
また、実装の際には、第一実施形態で説明した通りに符号列の終端についての例外的な処理を含む単進復号をする必要はあるものの、原理的には、入力された整数系列を本発明の変換装置100で変換して得た変換後の整数系列を、更に本発明の変換装置100で変換して得た2回の変換後の整数系列は、入力された整数系列となる。従って、本発明の変換装置100によれば、偏りの大きな整数系列を本発明の変換装置100によって変換して得た偏りの小さい整数系列を、元の偏りの大きな整数系列に戻すことができる。すなわち、符号化側で行った整数符号化処理に対応する整数復号処理で入力された整数符号を復号して整数系列を得て、整数復号処理で得た整数系列を本発明の変換装置100で変換して復号整数系列を得れば、復号整数系列は符号化側で入力された整数系列と同じになる。
【0053】
以上のことから、本発明の変換装置100は、整数系列の偏りを可逆に変換することが可能な変換装置であるといえる。
【0054】
整数符号化部210及び整数復号部310でGolomb符号を用いる場合、符号化装置200が備える本発明の変換装置100による変換後の整数系列をGolomb符号化する際に適切なGolombパラメータs’は、本発明の変換装置100による変換前の元の整数系列の分布から得られるθ=2-1/sを用いて、1-2-1/s=2-1/s’の関係からs’=-1/log2(1-2-1/s)、あるいはその近似であるs’=1/sによって求められる。
なお、指数分布に従う整数系列の場合は、上述したように理論的に変換による圧縮効率の上昇を保証できるが、指数分布に従わないような整数系列であっても、整数値が大きいほど出現確率が低く整数値が小さいほど出現確率が高い分布であり、かつ、出現確率の偏りが大きい分布であれば上述したような作用が近似的に発生し、整数値が大きいほど出現確率が低く整数値が小さいほど出現確率が高い分布であり、かつ、出現確率の偏りが小さい分布の整数系列に変換することができる。そのため、整数符号化部210は、Golomb符号に限らず、整数値が大きいほどビット数が多い符号(長い符号)を割り当てるハフマン符号など、整数値に対してその出現確率が単調非増加の関係にあり、且つ一様でない他の形状分布を想定した可逆符号を用いてもよい。
また、符号化装置200に入力される数値系列の分布が上記のような単調非増加な関係を持たない場合においても、入力される数値系列の分布が予めわかっているのであれば、入力される数値が取り得る各数値に対してその出現確率が最も高いものから順に0,1,2,…と番号を対応付けて予め記憶した図示しない数値変換部220を符号化装置200内の変換装置100の前に備えるようにして、符号化装置200に入力された数値系列を数値変換部220で上述した番号による系列に変換して、変換後の番号の系列を入力整数系列として上述した符号化装置200で符号化を行うことで、本発明の変換装置100によって数値系列の分布の偏りを近似的に変換してから符号化することができる。復号装置300には、上述した数値変換部220と同一の、数値と番号との対応付けを予め記憶した図示しない数値逆変換部320を復号装置300の変換装置100の後に備えるようにして、復号装置300内の変換装置100で得た復号整数系列を上述した番号による系列であるとして数値逆変換部320で数値の系列に変換すれば、符号化装置200に入力された数値系列と同じ数値の系列を得ることができる。
【0055】
<第一実施形態の変形例>
第一実施形態では、単進符号化とビット反転処理と単進復号とを組み合わせた変換処理を行ったが、ビット反転処理を用いない変換処理をすることも可能である。ビット反転処理を用いない形態を第一実施形態の変形例として説明する。
【0056】
≪符号化装置≫
第一実施形態の変形例の符号化装置200は、
図2に示した通り、第一実施形態の符号化装置200と同様に、変換装置100と整数符号化部210を含む。第一実施形態の変形例の符号化装置200の整数符号化部210の動作は、第一実施形態の符号化装置200の整数符号化部210の動作と同じである。第一実施形態の変形例の符号化装置200に含まれる変換装置100は、
図2に破線で示したビット反転処理部120は含まず、単進符号化部110と単進復号部130を含む。第一実施形態の変形例の符号化装置200に含まれる変換装置100は、第一実施形態の符号化装置200に含まれる変換装置100とは、単進符号化部110の動作は同じであり、単進復号部130の動作が異なる。以下では、第一実施形態の変形例の符号化装置200が第一実施形態の符号化装置200と異なる点について説明する。
【0057】
[単進復号部130]
第一実施形態の変形例の符号化装置200に含まれる変換装置100の単進復号部130は、単進符号化部110が出力した単進符号の符号列を受け取り、第一実施形態の変形例の符号化装置200に含まれる変換装置100の単進符号化部110の単進符号とはビット値’0’とビット値’1’が逆の規則である単進復号で単進符号の符号列を復号して変換整数系列を得て、得られた変換整数系列を整数符号化部210へ出力する(ステップS130)。
【0058】
第一実施形態の変形例の符号化装置200に含まれる変換装置100の単進符号化部110の規則は
図4の規則であるので、第一実施形態の変形例の符号化装置200に含まれる変換装置100の単進符号化部110の単進符号とはビット値’0’とビット値’1’が逆の規則とは、
図4の各単進符号の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’に、それぞれ置き換えた規則であり、
図7の規則である。
【0059】
つまり、単進復号部130は、単進符号の符号列をビット値’1’が出現するまで読み込み、その間に出現したビット値’0’の個数を整数値として得ることを、単進符号の符号列の始端から終端まで順次行うことにより行う。なお、単進復号部130は、単進符号の符号列の終端まで読み込んだ場合に限り、例外的に、直前に整数値を得てから終端のビットまで読み込んだ間に出現したビット値’0’の個数を整数値として得る。
【0060】
または、単進復号部130が、まず、単進符号の符号列の終端にビット値’1’を追加して、次に、ビット値’1’を追加した単進符号の符号列について、ビット値’1’が出現するまで読み込み、その間に出現したビット値’0’の個数を整数値として得ることを、ビット値’1’を追加した単進符号の符号列の始端から終端まで順次行うようにしてもよい。
【0061】
≪復号装置≫
第一実施形態の変形例の復号装置300は、
図5に示した通り、第一実施形態の復号装置300と同様に、整数復号部310と変換装置100を含む。第一実施形態の変形例の復号装置300の整数復号部310の動作は、第一実施形態の復号装置300の整数復号部310の動作と同じである。第一実施形態の変形例の復号装置300に含まれる変換装置100は、
図5に破線で示したビット反転処理部120は含まず、単進符号化部110と単進復号部130を含む。第一実施形態の変形例の復号装置300に含まれる変換装置100は、第一実施形態の復号装置300に含まれる変換装置100とは、単進符号化部110の動作は同じであり、単進復号部130の動作が異なる。以下では、第一実施形態の変形例の復号装置300が第一実施形態の復号装置300と異なる点について説明する。
【0062】
[単進復号部130]
第一実施形態の変形例の復号装置300に含まれる変換装置100の単進復号部130は、単進符号化部110が出力した復号側単進符号の符号列を受け取り、第一実施形態の変形例の復号装置300に含まれる変換装置100の単進符号化部110の単進符号とはビット値’0’とビット値’1’が逆の規則である単進復号で復号側単進符号の符号列を復号して復号整数系列を得て、得られた復号整数系列を出力する(ステップS130)。
【0063】
第一実施形態の変形例の復号装置300に含まれる変換装置100の単進符号化部110の規則は
図4の規則であるので、第一実施形態の変形例の復号装置300に含まれる変換装置100の単進符号化部110の単進符号とはビット値’0’とビット値’1’が逆の規則とは、
図4の各単進符号の各ビットを、ビット値’0’をビット値’1’に、ビット値’1’をビット値’0’に、それぞれ置き換えた規則であり、
図7の規則である。
【0064】
つまり、単進復号部130は、復号側単進符号の符号列をビット値’1’が出現するまで読み込み、その間に出現したビット値’0’の個数を整数値として得ることを、復号側単進符号の符号列の始端から終端まで順次行うことにより行う。なお、単進復号部130は、復号側単進符号の符号列の終端のビット値’0’は無視し、復号側単進符号の符号列の終端のビットの直前のビット値’1’までを単進復号の対象とする。
【0065】
または、単進復号部130が、まず、復号側単進符号の符号列の終端のビット値’0’を削除して、次に、ビット値’0’を削除した復号側単進符号の符号列について、ビット値’1’が出現するまで読み込み、その間に出現したビット値’0’の個数を整数値として得ることを、復号側単進符号の符号列の始端から終端まで順次行うようにしてもよい。
【0066】
<第二実施形態>
整数符号化部においてGolomb符号を用いる場合、使用するGolombパラメータは入力の整数値の系列の分布に応じて適応的に用いてもよい。従って、入力された整数値による系列の部分系列を本発明の変換装置100による変換をして得た変換後の整数系列に対する最適なGolombパラメータを従来の最適なGolombパラメータの推定法を基に求め、求めたGolombパラメータsを用いて変換後の整数系列を符号化してもよく、この符号化に対応する復号を行ってもよい。この形態を第二実施形態として説明する。
【0067】
≪符号化装置≫
図8及び
図9を参照して、本発明の変換装置100を含む第二実施形態の符号化装置400が実行する符号化方法の処理手続きを説明する。第二実施形態の符号化装置400は、
図8に示す通り、パラメータ決定部420と変換装置100と整数符号化部410を含む。第二実施形態の符号化装置400が
図9に示す各ステップの処理を実行することにより、本発明の変換方法を含む第二実施形態の符号化方法が実現される。
【0068】
第二実施形態の符号化装置400には、第一実施形態と同様に、非負の整数値の系列が入力される。第二実施形態の符号化装置400に入力された非負の整数値の系列はNサンプルずつパラメータ決定部420と変換装置100に入力される。すなわち、第二実施形態の符号化装置400は、例えばマイクロホンで収音した音声や音楽などをディジタル信号に変換して量子化して得た整数値の絶対値による系列などの整数値の系列を、Nサンプルによるフレームごとに符号化する。
【0069】
以下では、本実施形態の符号化装置400に入力された非負の整数値を単に「整数値」と呼んで説明する。
【0070】
[パラメータ決定部420]
パラメータ決定部420には、符号化装置400に入力された整数値の系列のうちの、Nサンプルずつの整数系列(以下では「入力整数系列」という)が入力される。パラメータ決定部420は、入力された入力整数系列に基づき、整数符号化用のGolombパラメータs'とそのパラメータを表す符号であるパラメータ符号と、を得て出力する(ステップS420)。パラメータ符号は、復号装置500が当該パラメータ符号を復号することによりパラメータ決定部420が決定した整数符号化用のGolombパラメータs'と同じ値である整数復号用のGolombパラメータs'を得られるように、Golombパラメータを符号化して得ればよい。
【0071】
パラメータ決定部420は、例えば、入力整数系列に含まれる各整数値を用いて式(3)によりGolombパラメータsを得る。
【0072】
【0073】
式(3)で求まるGolombパラメータsは、入力整数系列について式(2)により推定される、変換を用いないGolomb符号化時の総ビット長の推定値を最小化するものである。
【0074】
そして、パラメータ決定部420は、例えば、式(3)により得たGolombパラメータsの逆数をスカラ量子化して符号を得て、得た符号をパラメータ符号として出力し、当該パラメータ符号に対応するGolombパラメータsの逆数の量子化値を整数符号化用のGolombパラメータs'として出力する。
【0075】
[変換装置100]
変換装置100は、第一実施形態の符号化装置200に含まれる変換装置100と同じ構成であり、単進符号化部110とビット反転処理部120と単進復号部130からなるか、または、第一実施形態の変形例の符号化装置200に含まれる変換装置100と同じ構成であり、単進符号化部110と単進復号部130からなる。変換装置100には、符号化装置400に入力された整数値の系列のうちの、Nサンプルずつの整数系列である入力整数系列が入力される。変換装置100は、入力された入力整数系列について、第一実施形態の符号化装置200に含まれる変換装置100または第一実施形態の変形例の符号化装置200に含まれる変換装置100と同じ処理を行うことにより、変換整数系列を得て、得られた変換整数系列を整数符号化部410へ出力する。
【0076】
[整数符号化部410]
整数符号化部410には、パラメータ決定部420が出力した整数符号化用のGolombパラメータs'と、変換装置100が出力した変換整数系列と、が入力される。整数符号化部410は、整数符号化用のGolombパラメータs'の小数第一位を四捨五入するなどにより整数符号化用のGolombパラメータs'を丸めて整数値^s'にした後に、入力された変換整数系列に対して整数値のGolombパラメータ^s'によるGolomb符号化を行って、Golomb符号化により得た符号を整数符号として出力する(ステップS410)。なお、整数符号化用のGolombパラメータs'が1未満の場合には、整数符号化用のGolombパラメータs'を整数値^s'=1に丸める。
【0077】
≪復号装置≫
図10及び
図11を参照して、本発明の変換装置100を含む第二実施形態の復号装置500が実行する復号方法の処理手続きを説明する。第二実施形態の復号装置500は、
図10に示す通り、パラメータ復号部520と整数復号部510と変換装置100を含む。第二実施形態の復号装置500が
図11に示す各ステップの処理を実行することにより、本発明の変換方法を含む第二実施形態の復号方法が実現される。
【0078】
第二実施形態の復号装置500には、第二実施形態の符号化装置400が出力した整数符号及びパラメータ符号が入力される。復号装置500に入力された整数符号及びパラメータ符号は、整数値の系列のNサンプルに対応する符号ごとに、パラメータ符号はパラメータ復号部520に入力され、整数符号は整数復号部510に入力される。すなわち、復号装置500は、符号化装置400と同じフレームごとに復号処理を行う。
【0079】
[パラメータ復号部520]
パラメータ復号部520には、復号装置500に入力されたパラメータ符号が入力される。パラメータ復号部520は、第二実施形態の符号化装置400のパラメータ決定部420がパラメータ符号を得たのと対応する復号処理により、パラメータ符号を復号して整数復号用のGolombパラメータs'を得て出力する(ステップS520)。パラメータ復号部520は、例えば、第二実施形態の符号化装置400のパラメータ決定部420が行ったスカラ量子化に対応する復号処理により、パラメータ符号に対応する整数復号用のGolombパラメータs'として得て整数復号部510へ出力する。
【0080】
[整数復号部510]
整数復号部510には、復号装置500に入力された整数符号と、パラメータ復号部520が出力した整数復号用のGolombパラメータs'が入力される。整数復号部510は、整数復号用のGolombパラメータs'を第二実施形態の符号化装置400の整数符号化部410が行ったのと同じ方法により丸めて整数値^s'にした後に、整数符号に対して整数値のGolombパラメータ^s'によるGolomb復号を行って復号変換整数系列を得て、変換装置100へ出力する(ステップS510)。
【0081】
[変換装置100]
変換装置100は、第一実施形態の復号装置300に含まれる変換装置100と同じ構成であり、単進符号化部110とビット反転処理部120と単進復号部130からなるか、第一実施形態の変形例の復号装置300に含まれる変換装置100と同じ構成であり、単進符号化部110と単進復号部130からなる。変換装置100には、整数復号部510が出力した復号変換整数系列が入力される。変換装置100は、入力された復号変換整数系列について、第一実施形態の復号装置300に含まれる変換装置100または第一実施形態の変形例の復号装置300に含まれる変換装置100と同じ処理を行うことにより、復号整数系列を得て、得られた復号整数系列を出力する。
【0082】
<第二実施形態の変形例>
第二実施形態では、Golombパラメータsの逆数に相当する整数符号化用のGolombパラメータs'を表す符号であるパラメータ符号を得たが、Golombパラメータsを表す符号であるパラメータ符号を得るようにしてもよい。この形態を第二実施形態の変形例として説明する。
【0083】
≪符号化装置≫
第二実施形態の変形例の符号化装置400は、
図8に示した通り、第二実施形態の符号化装置400と同様に、パラメータ決定部420と変換装置100と整数符号化部410を含む。第二実施形態の変形例の符号化装置400は、第二実施形態の符号化装置400とは、パラメータ決定部420と整数符号化部410の動作が異なる。以下では、第二実施形態の変形例の符号化装置400が第二実施形態の符号化装置400と異なる点について説明する。
【0084】
[パラメータ決定部420]
パラメータ決定部420には、符号化装置400に入力された整数値の系列のうちの、Nサンプルずつの整数系列(以下では「入力整数系列」という)が入力される。パラメータ決定部420は、入力された入力整数系列に基づき、その整数系列に対応するGolombパラメータsと、そのGolombパラメータsを表す符号であるパラメータ符号と、を得て出力する(ステップS420)。パラメータ符号は、復号装置500が当該パラメータ符号を復号することによりパラメータ決定部420が決定したGolombパラメータsを得られるように、Golombパラメータsを符号化して得ればよい。
【0085】
パラメータ決定部420は、例えば、入力整数系列に含まれる各整数値を用いて式(3)によりGolombパラメータsを得て、得たGolombパラメータsをスカラ量子化して符号を得て、得た符号をパラメータ符号として出力し、当該パラメータ符号に対応するGolombパラメータsの量子化値をGolombパラメータsとして出力する。
【0086】
[整数符号化部410]
整数符号化部410には、パラメータ決定部420が出力したGolombパラメータsと、変換装置100が出力した変換整数系列と、が入力される。整数符号化部410は、Golombパラメータsの逆数を小数第一位を四捨五入するなどにより丸めて整数値^s'にした後に、入力された変換整数系列に対して整数値^s'をGolombパラメータとして用いてGolomb符号化を行って、Golomb符号化により得た符号を整数符号として出力する(ステップS410)。なお、Golombパラメータsの逆数が1未満の場合には、Golombパラメータsの逆数を整数値^s'=1に丸める。
【0087】
≪復号装置≫
第二実施形態の変形例の復号装置500は、
図10に示した通り、第二実施形態の復号装置500と同様に、パラメータ復号部520と整数復号部510と変換装置100を含む。第二実施形態の変形例の復号装置500は、第二実施形態の復号装置500とは、パラメータ復号部520と整数復号部510の動作が異なる。以下では、第二実施形態の変形例の復号装置500が第二実施形態の復号装置500と異なる点について説明する。
【0088】
[パラメータ復号部520]
パラメータ復号部520には、第二実施形態の変形例の復号装置500に入力されたパラメータ符号が入力される。パラメータ復号部520は、第二実施形態の変形例の符号化装置400のパラメータ決定部420がパラメータ符号を得たのと対応する復号処理により、パラメータ符号を復号してGolombパラメータsを得て、得られたGolombパラメータsを出力する(ステップS520)。パラメータ復号部520は、例えば、第二実施形態の変形例の符号化装置400のパラメータ決定部420が行ったスカラ量子化に対応する復号処理により、パラメータ符号に対応するGolombパラメータsの量子化値をGolombパラメータsとして得る。
【0089】
[整数復号部510]
整数復号部510には、復号装置500に入力された整数符号と、パラメータ復号部520が出力したGolombパラメータsが入力される。整数復号部510は、Golombパラメータsの逆数を第二実施形態の変形例の符号化装置400の整数符号化部410が行ったのと同じ方法により丸めて整数値^s'にした後に、整数符号に対して整数値^s'をGolombパラメータ^s'として用いてGolomb復号を行って復号を得て、変換装置100へ出力する(ステップS510)。
【0090】
<第三実施形態>
上述の通り、本発明の変換装置100による変換をしてから整数符号化することにより効率的に符号化できるのは、整数符号化部がGolomb符号化するのであれば、Golombパラメータとして0より大きく1より小さいものを用いるべき分布に従う整数値による系列が入力された場合である。従って、従来の最適なGolombパラメータの推定法を基に最適なGolombパラメータsを入力された整数値による系列の部分系列に対して求め、求めたGolombパラメータsを用いて本発明の変換装置100を用いるか否かを判定して、入力された整数値の系列を変換してから符号化する処理と入力された整数値の系列を変換せずにそのまま符号化する処理とを部分系列ごとに適応的に行えるようにしてもよく、この符号化に対応する復号を行ってもよい。この形態を第三実施形態として説明する。
【0091】
≪符号化装置≫
図12及び
図13を参照して、本発明の変換装置100を含む第三実施形態の符号化装置600が実行する符号化方法の処理手続きを説明する。第三実施形態の符号化装置600は、
図12に示す通り、パラメータ決定部620、判定部630、変換装置100、及び整数符号化部610を含む。第三実施形態の符号化装置600が
図13に示す各ステップの処理を実行することにより、本発明の変換方法を含む第三実施形態の符号化方法が実現される。
【0092】
第三実施形態の符号化装置600には、第一実施形態と同様に、非負の整数値の系列が入力される。第三実施形態の符号化装置600に入力された非負の整数値の系列はNサンプルずつパラメータ決定部620と判定部630に入力される。すなわち、第三実施形態の符号化装置600は、例えばマイクロホンで収音した音声や音楽などをディジタル信号に変換して量子化して得た整数値の絶対値による系列などの整数値の系列を、Nサンプルによるフレームごとに符号化する。
【0093】
以下では、本実施形態の符号化装置600に入力された非負の整数値を単に「整数値」と呼んで説明する。
【0094】
[パラメータ決定部620]
パラメータ決定部620には、符号化装置600に入力された整数値の系列のうちの、Nサンプルずつの整数系列(以下では「入力整数系列」という)が入力される。パラメータ決定部620は、入力された入力整数系列に基づき、その整数系列に対応するGolombパラメータsと、そのGolombパラメータsを表す符号であるパラメータ符号と、整数符号化用のGolombパラメータs'と、を得て出力する(ステップS620)。パラメータ符号は、復号装置700が当該パラメータ符号を復号することによりパラメータ決定部620が決定したGolombパラメータs得られるように、Golombパラメータsを符号化して得ればよい。
【0095】
パラメータ決定部620は、例えば、入力整数系列に含まれる各整数値を用いて式(3)によりGolombパラメータsを得て、得たGolombパラメータsをスカラ量子化して符号を得て、得た符号をパラメータ符号として出力し、当該パラメータ符号に対応するGolombパラメータsの量子化値をGolombパラメータsとして出力する。
また、パラメータ決定部620は、Golombパラメータsの値が1以上である場合は、Golombパラメータsをそのまま整数符号化用のGolombパラメータs'として整数符号化部610へ出力し、Golombパラメータsの値が1未満である場合は、Golombパラメータsの逆数を整数符号化用のGolombパラメータs'として整数符号化部610へ出力する。
【0096】
[判定部630]
判定部630には、符号化装置600に入力された整数値の系列のうちの、Nサンプルずつの整数系列である入力整数系列と、パラメータ決定部620が出力したGolombパラメータsが入力される。判定部630は、入力されたGolombパラメータsの値が1以上である場合には入力整数系列を整数符号化部610へ出力し、入力されたGolombパラメータsの値が1未満である場合には入力整数系列を変換装置100へ出力する(ステップS630)。
【0097】
[変換装置100]
変換装置100は、第一実施形態の符号化装置200に含まれる変換装置100と同じ構成であり、単進符号化部110とビット反転処理部120と単進復号部130からなるか、または、第一実施形態の変形例の符号化装置200に含まれる変換装置100と同じ構成であり、単進符号化部110と単進復号部130からなる。変換装置100には、判定部630が出力した入力整数系列が入力される。変換装置100は、判定部630から入力整数系列が入力された場合には、入力された入力整数系列について、第一実施形態の符号化装置200に含まれる変換装置100または第一実施形態の変形例の符号化装置200に含まれる変換装置100と同じ処理を行うことにより、変換整数系列を得て、得られた変換整数系列を整数符号化部610へ出力する。変換装置100は、判定部630から何も入力されない場合には、何も行わず、何も出力しない。
【0098】
[整数符号化部610]
整数符号化部610には、パラメータ決定部620が出力した整数符号化用のGolombパラメータs'と、判定部630が出力した入力整数系列と変換装置100が出力した変換整数系列のうちいずれかと、が入力される。整数符号化部610は、整数符号化用のGolombパラメータs'の小数第一位を四捨五入するなどにより整数符号化用のGolombパラメータs'を丸めて整数値^s'にした後に、判定部630が出力した入力整数系列と変換装置100が出力した変換整数系列のうちのいずれかの整数系列に対して整数値のGolombパラメータ^s'によるGolomb符号化を行って、Golomb符号化により得た符号を整数符号として出力する(ステップS610)。
【0099】
第三実施形態の符号化装置600は、以上の動作をすることにより、パラメータ決定部620が得たGolombパラメータsが1未満である場合には、変換装置100が入力整数系列から変換整数系列を得て、整数符号化部610がGolombパラメータsの逆数をGolombパラメータとして用いて変換整数系列をGolomb符号化して整数符号を得て、パラメータ決定部620が得たGolombパラメータsが1以上である場合には、整数符号化部610がパラメータ決定部620が得たGolombパラメータsをGolombパラメータとして用いて入力整数系列をGolomb符号化して整数符号を得る。
【0100】
≪復号装置≫
図14及び
図15を参照して、本発明の変換装置100を含む第三実施形態の復号装置700が実行する復号方法の処理手続きを説明する。第三実施形態の復号装置700は、
図14に示す通り、パラメータ復号部720、判定部730、整数復号部710、及び変換装置100を含む。第三実施形態の復号装置700が
図15に示す各ステップの処理を実行することにより、本発明の変換方法を含む第三実施形態の復号方法が実現される。
【0101】
第三実施形態の復号装置700には、第三実施形態の符号化装置600が出力した整数符号及びパラメータ符号が入力される。復号装置700に入力された整数符号及びパラメータ符号は、整数値の系列のNサンプルに対応する符号ごとに、パラメータ符号はパラメータ復号部720に入力され、整数符号は整数復号部710に入力される。すなわち、復号装置700は、符号化装置600と同じフレームごとに復号処理を行う。
【0102】
[パラメータ復号部720]
パラメータ復号部720には、復号装置700に入力されたパラメータ符号が入力される。パラメータ復号部720は、第三実施形態の符号化装置600のパラメータ決定部620がパラメータ符号を得たのと対応する復号処理により、パラメータ符号を復号してGolombパラメータsを得て、得られたGolombパラメータsを判定部730へ出力する。パラメータ復号部720は、例えば、第三実施形態の符号化装置600のパラメータ決定部620が行ったスカラ量子化に対応する復号処理により、パラメータ符号に対応するGolombパラメータsの量子化値をGolombパラメータsとして得る。
【0103】
また、パラメータ復号部720は、Golombパラメータsの値が1以上である場合には、Golombパラメータsをそのまま整数復号用のGolombパラメータs'として整数復号部710へ出力し、Golombパラメータsの値が1未満である場合には、Golombパラメータsの逆数を整数復号用のGolombパラメータs'として整数復号部710へ出力する。(以上、ステップS720)
【0104】
[整数復号部710]
整数復号部710には、復号装置700に入力された整数符号と、パラメータ復号部720が出力した整数復号用のGolombパラメータs'が入力される。整数復号部710は、整数復号用のGolombパラメータs'を第三実施形態の符号化装置600の整数符号化部610が行ったのと同じ方法により丸めて整数値^s'にした後に、整数符号に対して整数値^s'をGolombパラメータとして用いてGolomb復号を行って整数系列(以下では、暫定復号整数系列という)を得て、判定部730へ出力する(ステップS710)。
【0105】
[判定部730]
判定部730には、パラメータ復号部720が出力したGolombパラメータs、及び整数復号部710が出力した暫定復号整数系列が入力される。判定部730は、Golombパラメータsの値が1以上である場合には、入力された暫定復号整数系列をそのまま復号整数系列として出力し、Golombパラメータsの値が1未満である場合には、入力された暫定復号整数系列を変換装置100へ出力する(ステップS730)。
【0106】
[変換装置100]
変換装置100は、第一実施形態の復号装置300に含まれる変換装置100と同じ構成であり、単進符号化部110とビット反転処理部120と単進復号部130からなるか、または、第一実施形態の変形例の復号装置300に含まれる変換装置100と同じ構成であり、単進符号化部110と単進復号部130からなる。変換装置100には、判定部730が出力した暫定復号整数系列が入力される。変換装置100は、判定部730から暫定復号整数系列が入力された場合には、入力された暫定復号整数系列について、第一実施形態の復号装置300に含まれる変換装置100または第一実施形態の変形例の復号装置300に含まれる変換装置100と同じ処理を行うことにより、復号整数系列を得て、得られた復号整数系列を出力する。変換装置100は、判定部730から暫定復号整数系列が入力されない場合には、何も行わず、何も出力しない。
【0107】
第三実施形態の復号装置700は、以上の動作をすることにより、パラメータ復号部720が得たGolombパラメータsが1未満である場合には、整数復号部710が、パラメータ復号部720が得たGolombパラメータsの逆数をGolombパラメータとして用いて、入力された整数符号をGolomb復号して非負整数値の系列である暫定復号整数値系列を得て、変換装置100が、暫定復号整数値系列から非負整数値の系列である復号整数系列を得て出力し、パラメータ復号部720が得たGolombパラメータsが1以上である場合には、整数復号部710が、パラメータ復号部720が得たGolombパラメータsをGolombパラメータとして用いて、入力された整数符号をGolomb復号して非負整数値の系列を得て復号整数系列として出力する。
【0108】
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0109】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0110】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
【0111】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【0112】
例えば、上述の実施形態では、符号化装置に入力される非負の整数値の系列が、音や画像や映像信号をディジタル信号に変換して得た信号を量子化して有限精度の値にして得た整数値の絶対値による系列である例を説明したが、符号化装置に入力される非負の整数値の系列は、上記以外の信号、例えば心電図や心磁図、脳波、表面筋電図、皮膚電位などの生体信号に基づく時系列信号を量子化して有限精度の値にして得た整数値の絶対値による系列であってもよい。
【0113】
または、符号化装置に入力される非負の整数値の系列は、時系列信号ではない例えばコンピュータ断層撮影や、核磁気共鳴画像法、超音波断層画像、血管造影などから得られる医療用画像に基づくの信号を量子化して有限精度の値にして得た整数値の絶対値による系列であってもよい。さらには、符号化装置に入力される非負の整数値の系列は、例えば遺伝子情報系列の各遺伝子に関する測定誤差を表すクオリティースコアのような信号ではない数値の系列を量子化して有限精度の値にして得た整数値の絶対値による系列であってもよい。
【0114】
また、符号化装置に入力される非負の整数値の系列は、例えば音や画像や映像信号をディジタル信号に変換して得た信号をコサイン変換等で周波数スペクトルに変換した後に量子化して有限精度の値にして得た整数値の絶対値による系列であってもよいし、例えば上述の信号や信号ではない数値の系列にハイパスフィルタやローパスフィルタなどのフィルタ処理を行った系列を量子化して有限精度の値にして得た整数値の絶対値による系列であってもよい。
【0115】
本発明の符号化装置には、これらの入力に対応するために、符号化装置に入力された信号や数値の系列を非負の整数値の系列に変換する処理部として、
図2や
図8や
図12の符号化装置の前段に図示しない変換部を備えるようにしてもよい。同様に、本発明の復号装置には、上述した入力に対応する出力を得るために、
図5や
図10や
図14の復号装置が得た非負の整数値の系列を信号や数値の系列に変換する処理部として、
図5や
図10や
図14の復号装置の後段に図示しない逆変換部を備えるようにしてもよい。
【0116】
また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0117】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0118】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0119】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0120】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0121】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【0122】
上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。