(57)【要約】【課題】誤差信号の可逆圧縮を効率良く行う。【解決手段】音声信号を非可逆圧縮符号化した誤差信号について、そのフレームごとに各サンプルの同一ビット位置のビット系列を１バイトずつのシンボルとし（図ではその４ビットずつを１６進数で表わしている）、その最初の非ゼロシンボルの連続から次に非ゼロシンボルが現われる前までをグループとしグループごとにその非ゼロシンボルの数Ｎｎとそのゼロシンボルの数Ｎｚを１バイトの制御符号（図中影を付してある）とし、これにそのグループの非ゼロシンボルを連続させてそのグループの符号とする。各グループ毎に同様の符号化を行う。【選択図】      図５
2004247909.tif 000002
【特許請求の範囲】
【請求項１】
ディジタル信号を、２以上の整数Ｍビット単位の出現頻度の高いシンボル（以下高頻度シンボルという）の少なくとも１以上の連続する高頻度列と、上記高頻度シンボル以外のＭビット単位のシンボル（以下低頻度シンボルという）の少なくとも１以上の連続する低頻度列とから構成されるグループとして、
各グループごとに高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボルとを出力することを特徴とするディジタル信号符号化方法。
【請求項２】
高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボル列とのグループごとに、上記低頻度シンボル列と、予め決められたビット数のビットパターンよりなるシンボルを上記高頻度シンボルの個数だけ連続させたシンボル列とを連続させて出力することを特徴とするディジタル信号復号化方法。
【請求項３】
ディジタル信号が入力され、そのディジタル信号を、２以上の整数Ｍビット単位の出現頻度が高いシンボル（以下高頻度シンボルという）の少なくとも１以上の連続する高頻度列と、この高頻度列と連続し、かつ上記高頻度シンボル以外のＭビット単位のシンボル（以下低頻度シンボルという）の少なくとも１以上の連続する低頻度列を１つのグループとして判定するグループ判定部と、
上記ディジタル信号が入力され、上記グループごとに、高頻度シンボルの個数を表わす符号と低頻度シンボルの個数を表わす符号及びその低頻度シンボルとを出力する高頻度圧縮部と
を具備するディジタル信号符号器。
【請求項４】
圧縮符号が入力され、その圧縮符号を、低頻度シンボル個数符号、高頻度シンボル個数符号を分離出力する分離部と、
上記低頻度シンボル個数符号及び上記高頻度シンボル個数符号が入力され、上記低頻度シンボル個数符号が表わす個数だけ上記圧縮符号から低頻度シンボルの列を分離した低頻度シンボル列を生成し、その低頻度シンボル列と連続し、上記高頻度シンボル個数符号が表わす個数だけ連続する予め決められた高頻度シンボルの列を生成する制御部と
を具備するディジタル信号復号器。
【請求項５】
請求項３記載の符号器としてコンピュータを機能させるための符号化プログラム。
【請求項６】
請求項４記載の復号器としてコンピュータを機能させるための復号化プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は１と０の２値で表現されたディジタル信号、特に好ましくは音声信号、音楽などの音響信号や画像信号を可逆に圧縮し、伸張する符号化方法、復号化方法、符号器、復号器、それらのプログラムに関する。
【０００２】
【従来の技術】
歪を許さない符号化はシンボルの生起確率に基づく圧縮技術が多く知られている。ハフマン符号や算術符号、ランレングス符号などが代表的な方法である。いずれも統計的性質が正確にわかるほど圧縮効率があがるが、圧縮すべきデータをどのように処理するか、分類するかは多くの自由度がある。特にオーディオ信号の振幅のデータを統計的性質が近い集合に分割して、集合ごとに個別の圧縮符号を適用する手法は特許文献１に示唆されている。時間軸方向に上位の“０”が多い部分だけを集め、下位のランダムに近い部分だけを集めることになるので、個別の最適化が可能である。
【０００３】
図１に示すように、符号器では、入力端子１００よりのディジタル入力信号の時系列（以下「ディジタル入力信号系列」と称する）が、フレーム分割部１１０で、例えば１０２４個のディジタル入力信号（即ち、１０２４点のサンプル）からなるフレーム単位に順次分割され、このフレーム単位ごとにディジタル信号が非可逆量子化部１２０で非可逆圧縮符号化される。この符号化は、復号化時に元のディジタル入力信号をある程度再現できる方式であれば、入力信号に適した如何なる方式でもよい。例えば、上記ディジタル入力信号が音声であればＩＴＵ−Ｔの音声符号化などが利用でき、音楽であればＭＰＥＧまたはＴｗｉｎＶＱなどが利用でき、映像信号であればＭＰＥＧなどを用いることができる。この非可逆圧縮符号Ｉ（ｎ）は逆量子化部１３０で局部復号され、この局部復号信号と元のディジタル信号との誤差信号が差回路１４０で生成される。この誤差信号の振幅は通常は元のディジタル信号の振幅よりもかなり小さい。よって、ディジタル信号を直接可逆圧縮符号化するよりも、誤差信号を可逆圧縮符号化する方が情報量を小さくできる。
【０００４】
この可逆圧縮符号化の効率を上げるために、誤差信号即ち、ディジタルのサンプル列をならびかえ部１６０でビット列を変換する。即ちこの誤差信号を、２の補数表現によるサンプル列から、符号絶対値表現（極性と絶対値の２進数）によるサンプル列へ変換し、その各サンプルのビット（桁）位置、つまりＭＳＢ，第２ＭＳＢ，…，ＬＳＢ毎に、サンプルを跨いだ、フレーム内のビットからなるビット列として、可逆符号化部１５０で可逆圧縮符号化して符号Ｉ（ｅ）を出力する。つまり誤差信号の各サンプルＶ（ｋ）は例えば図２Ａに示すように、ＬＳＢ〜極性ビットの例えば２４ビットであり、サンプルＶ（ｋ）の数は１０２４個であり、同一ビット位置をサンプルを跨いだフレーム内のビットからなるビット列の１つＤＨ（ｉ）は図２Ｂに示すように、図２Ａの各サンプルの同一桁位置のビットよりなり、そのビット数は１０２４個である。誤差信号は振幅が小さいので、上位のビットは全て“０”となることが多く、その結果、変換されたビット列は“０”が連続することによって、誤差信号の可逆圧縮符号化効率を上げることができる。この可逆圧縮符号化としては、例えば、同一符号（１又は０）が連続する系列がある場合や頻繁に出現する系列がある場合を利用した、ハフマン符号化や算術符号化などのエントロピィ符号化などを用いることができる。
【０００５】
復号器では、可逆復号化部２１０で可逆圧縮符号Ｉ（ｅ）が復号化され、その復号信号に対し、ならびかえ部２２０でならびかえ部１６０と逆の処理が行われ、誤差信号がフレーム単位で順次再生される。また、逆量子化部２３０で、非可逆圧縮符号Ｉ（ｎ）が復号化され、この復号信号と再生された誤差信号とが加算部２４０で加算され、最後に、フレーム合成部２５０でフレームごとの各加算信号が順次連結されて、元のディジタル信号系列が再生される。
このような可逆圧縮符号化法は特許文献２にも示されている。更に文字の繰り返し情報を用いて可逆圧縮する方法が特許文献３に示されている。
【０００６】
次にこの発明の実施形態に用いられる誤差信号生成部となり得る従来技術（例えばＴ．Ｍｏｒｉｙａ他４名著“Ｓａｍｐｌｉｎｇ  Ｒａｔｅ  Ｓｃａｌａｂｌｅ  Ｌｏｓｓｌｅｓｓ  Ａｕｄｉｏ  ｃｏｄｉｎｇ”２００２  ＩＥＥＥ  Ｓｐｅｅｃｈ  Ｃｏｄｉｎｇ  Ｗｏｒｋｓｈｏｐ  ｐｒｏｃｅｅｄｉｎｇｓ  ２００２，１０月参照）を図３を参照して説明する。
これは各種品質の情報が得られるようにオーディオ信号について標本化周波数に基づく階層的符号化であって、又音源４１よりの振幅語長（量子化精度）が２４ビット、標本化周波数が９６ｋＨｚのディジタル信号が右シフト部４２により各サンプルが８ビット右へシフトされ、つまり下位８桁が除去され、振幅語長が１６ビットとされ、その後左シフト部４３で８ビット左へシフトされ、各サンプルの振幅語長が２４ビットで下位８ビットが０の信号とされ、この信号が減算部４４で入力ディジタル信号より差し引かれ、下位８ビット（誤差信号）が出力される。この誤差信号は量子化精度が２４ビット、標本化周波数が９６ｋＨｚであり、２４ｂ，９６ｋＨｚ誤差信号と表示する。以下も同様の表示を用いる。この２４ｂ，９６ｋＨｚ誤差信号は必要に応じて可逆圧縮部５３で可逆圧縮符号化される。右シフト部４２よりの信号はダウンサンプル部４５で標本化周波数が４８ｋＨｚにダウンサンプリングされ、このダウンサンプリングされた信号がアップサンプル部４６で標本化周波数９６ｋＨｚにアップサンプリングされ、このアップサンプリングされた信号と、右シフト部４２よりの信号との誤差信号が減算部４７で生成され、この１６ｂ，９６ｋＨｚ誤差信号が可逆圧縮部４８で可逆圧縮符号化され、１６，９６符号として出力される。
【０００７】
ダウンサンプル部４５より１６ビット４８ｋＨｚのディジタル信号は非可逆符号化部４９で符号化方法ＭＰＥＧ−４により圧縮符号化され、その圧縮符号が主符号として出力される。この圧縮符号は局部復号部５０で復号され、局部復号信号が生成され、この局部復号信号と、ダウンサンプル部４５よりの１６ビット４８ｋＨｚディジタル信号との１６ｂ，４８ｋＨｚ誤差信号が減算部５１で生成され、その誤差信号は可逆圧縮部５２で可逆圧縮符号化され、１６，４８符号として出力される。
【０００８】
【特許文献１】
特開２００１−１４４８４７公報（第６〜８頁、第３図）
【特許文献２】
特許第３１２７０１６号公報
【特許文献３】
特許第３０２５３０１号公報
【０００９】
【発明が解決しようとする課題】
ビット列中の連続する“０”（又は“１”）ビットの数を符号とし、その“０”（又は“１”）ビットを除去して圧縮する。ランレングス符号化は連続する“０”（又は“１”）ビットの数が少ないと圧縮効率が悪くなる。一方、“０”ビットと“１”ビットが混在する場合はエントロピー符号化が適するが、連続する“０”（又は“１”）ビットの数が多い場合はランレングス符号化よりも圧縮効率が劣る。
可逆圧縮符号化としてランレングス符号化のみ、あるいはエントロビー符号化のみ又はこれら両者の組合せよりも効率的に符号化することが出来る符号化方法、復号化方法、その符号器、復号器、これらのプログラムを提供することを、この発明は目的とするものである。
【００１０】
【課題を解決するための手段】
この発明の符号化方法によればディジタル信号を、２以上の整数Ｍビット単位の出現頻度が高いシンボル（以下高頻度シンボルという）の少なくとも１以上の連続する高頻度列と、上記高頻度シンボル以外のＭビット単位のシンボル（以下低頻度シンボルという）の少なくとも１以上の連続する低頻度列とから構成されるグループとして、各グループごとに高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボルとを出力する。
この発明の復号化方法によれば高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボル列とのグループごとに、上記低頻度シンボル列と、予め決められたビット数のビットパターンよりなるシンボルを上記高頻度シンボルの個数だけ連続させたシンボル列とを連続させて出力する。
【００１１】
この発明の符号器によればディジタル信号が入力され、そのディジタル信号を、２以上の整数Ｍビット単位の出現頻度が高いシンボル（以下高頻度シンボルという）の少なくとも１以上の連続する高頻度列と、この高頻度列と連続し、かつ上記高頻度シンボル以外のＭビット単位のシンボル（以下低頻度シンボルという）の少なくとも１以上の連続する低頻度列を１つのグループとして判定するグループ判定部と、上記ディジタル信号が入力され、上記グループごとに、高頻度シンボルの個数を表わす符号と低頻度シンボルの個数を表わす符号及びその低頻度シンボルとを出力する高頻度圧縮部とを具備する。
【００１２】
この発明の復号器によれば、圧縮符号が入力され、その圧縮符号を、低頻度シンボル個数符号、高頻度シンボル個数符号を分離出力する分離部と、上記低頻度シンボル個数符号及び上記高頻度シンボル個数符号が入力され、上記低頻度シンボル個数符号が表わす個数だけ上記圧縮符号から低頻度シンボルの列を分離した低頻度シンボル列を生成し、その低頻度シンボル列と連続し、上記高頻度シンボル個数符号が表わす個数だけ連続する予め決められた高頻度シンボルの列を生成する制御部とを具備する。
この発明の符号化プログラムは前記符号器としてコンピュータを機能させるためのプログラムである。
この発明の復号化プログラムは前記復号器としてコンピュータを機能させるためのプログラムである。
【００１３】
【発明の実施の形態】
符号化
この発明の実施形態を図面を参照して説明する。
この発明による符号器の機能構成例を図４に示す。ディジタル信号源３１０よりのディジタル信号はこの発明による符号器３３０に入力される。符号器３３０においては入力されたディジタル信号を必要に応じてビット分割部３３１において２以上の整数Ｍビットごとに分割され、Ｍビット単位の出現頻度が高いシンボル（以下高頻度シンボルという）の少なくとも１以上の連続する高頻度列とこの高頻度列と連続し、かつ高頻度シンボル以外のＭビット単位のシンボル（以下低頻度シンボルという）の少なくとも１以上の連続する低頻度列とを１つのグループとして、この例では分離・グループ判定部３３２で判定する。その判定されたグループごとに高頻度シンボルの個数Ｎｚを表わす符号と低頻度シンボルの個数Ｎｎを表わす符号及びその低頻度シンボルとを高頻度圧縮部３０３から出力する。この例においては上記Ｎｚを表わす符号及びＮｎを表わす符号を制御符号として制御符号生成部３３４で生成し、これらの数Ｎｚを高頻度計数部３３５で計数し、Ｎｎを低頻度計数部３３６で計数する。低頻度シンボルを低頻度出力部３３７により出力する。
【００１４】
この実施形態ではディジタル信号源３１０として音響信号源３１１からの音響信号をフレーム分割部３１２により所定サンプル、例えば１０２４サンプルごとにフレーム分割し、各分割されたフレームごとに誤差信号生成部３１３で非可逆圧縮符号とその誤差信号とを生成する。つまり例えば図１に示した非可逆量子化部１２０、可逆量子化部１３０、差回路１４０により誤差信号生成部３１３が構成される。
またこの例では図２を参照して説明したように、誤差信号のサンプルの同一ビット位置（桁位置）を連続させたビット列として符号化する場合である。そのビット列の変換はならびかえ部１１４で行われる。この場合図３Ｂにおける上位ビットの領域３１５はすべて“０”となり、中位ビットの領域３１６は例えば一部を枠３１７内に示すように“０”ビットの連続中に“１”ビットが一部混在したものとなり、最下位付近の領域３１８は、その一部を枠３１９内に示すように“０”ビットの連続は著しく少なくなり、つまり“０”ビットと“１”ビットとが混在した状態となっている。ここで枠３１７，３１９内の数値は４ビットずつを０から９、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆまでの１６進表示である。以後“０ｘ”は後続の数値又は記号が１６進であることを示し、例えば、“０ｘＦ”は１０進で１５を意味する。
【００１５】
そこでこの実施形態では分離・グループ判定部３３２で最初はＭビット単位に分割されたものが“０”ビットの連続であり、最初に“０”でないＭビットが現われるまでを特定シンボル圧縮部３３８で符号化する。前記図３Ｂに示した例ではＭビットは８ビットの場合であり、１シンボルが８ビットの場合であり、高頻度シンボルがそのＭビットがすべて“０”ビットの場合であり、低頻度シンボルはそれ以外、つまりそのＭビット中に少なくとも“１”ビットを含むものである。特定シンボル圧縮部３３８では最初から、最初に低頻度シンボルが現われるまでの、高頻度シンボル数を表わす符号を出力する。
【００１６】
次にこの発明の要部である高頻度圧縮部３３３について説明する。この例では高頻度シンボル数Ｎｚを表わす符号ビット数Ｍｚと低頻度シンボル数Ｎｎを表わす符号ビット数Ｍｎとの和が１シンボルのビット数Ｍになるようにした場合である。前記Ｍ＝８（１バイト）の例において上位４ビットで低頻度シンボル、つまり図２の例では非ゼロバイトの数Ｎｎを表わし、下位４ビットで高頻度シンボル数Ｎｚ、つまりゼロバイトの数Ｎｚを表わすようにした。これは低頻度シンボルが連続して現われるのは１５個特に数個以内の場合が多い状態に適用したからであり、また低頻度シンボルの数Ｎｎが小さい方が圧縮効率が向上する。例えば図５Ａ−１に示すディジタル信号を符号化すると図５Ａ−２に示すようになる。つまり先に述べたようにグループごとに符号化するが、そのグループの境界は図中に縦線で示すように高頻度シンボルと低頻度シンボルとの間になり各グループごとに低頻度シンボル数Ｎｎを表わす４ビットを上位ビットとし高頻度シンボル数Ｎｚを表わす４ビットを下位ビットとする制御符号を先頭につけ、図においてこれに影をつけて示している。最初のグループは低頻度シンボル“０ｘ０８”で始まり、低頻度シンボル“０ｘ０４”の前で終わっており、低頻度シンボル数Ｎｎは“０ｘ０８”と“０ｘ２０”の２個であり、高頻度シンボル数Ｎｚは１０個である。従って制御符号は上位４ビット数が“０ｘ２”となり下位４ビットは“０ｘＡ”（１０の１６進表示）となる。この制御信号の後に、このグループの連続する低頻度シンボル“０８”と“２０”が出力される。これに続いて次のグループの制御符号が付け加わり、さらにその後にそのグループの連続する低頻度シンボルが付け加わる。以下同様に圧縮符号化される。
【００１７】
次に高頻度シンボル数Ｎｚが１つの制御符号で表わすことができる数２Ｍｚ−１を越える場合の符号化例を図５のＢ−１とＢ−２を参照して説明する。この例では０ｘＦ＜Ｎｚ＜０ｘＦＦ＋０ｘＦの場合である。第１番目のグループでは低頻度シンボルの後に高頻度シンボルが１７個連続しており先頭の制御符号の上位４ビットには低頻度シンボル数Ｎｎ＝２を表わす“０ｘ２”となり、下位４ビットには高頻度シンボルが１５個連続することを示す符号化“０ｘＦ”を入れる。その次にそのグループの連続する２つの低頻度シンボルをつけ、その後に制御符号をつけてこのグループの終りであることがわかるようにする。この制御符号は上位４ビットは低頻度シンボル数がゼロであることを示し、次の４ビットは先頭の制御符号に示した高頻度シンボル数“０ｘＦ”をそのグループの高頻度シンボル数Ｎｚ＝１７から差し引いた残りの数“０ｘ２”とする。この次には次のグループに対する先頭の制御符号が続くことになる。
【００１８】
高頻度シンボル数Ｎｚが３１以上の例を図５Ｃ−１、Ｃ−２に示す。この場合最初のグループは連続する低頻度シンボルの数Ｎｎが２で、これに連続する高頻度シンボルの数Ｎｚが２７８の場合であり、つまり１６進表示ではＮｚ＝２７８＝１５＋２５６＋７＝０ｘＦ＋０ｘＦＦ＋０ｘ７である。先頭の制御符号には、図５Ｂの場合と同様に“０ｘ２Ｆ”を入れ、次に連続する２個の低頻度シンボルを続け、その次の制御符号として“０ｘＦＦ”を入れ、さらにグループの終わりを示す制御符号として“０ｘ０７”を入れる。このようにして連続する高頻度シンボル数Ｎｚを表わす。このように先頭の制御符号で表わすことができる高頻度の数“０ｘＦ”を実際に連続する高頻度シンボル数Ｎｚから差し引いた残りの数を表わすことができるだけ数の制御符号をグループ符号の最後につける。例えば低頻度シンボル数Ｎｚ＝ｍ×０ｘＦＦ＋０ｘＦ（ｍ＝１，２，３…）の場合も最後には制御符号として“０ｘ００”を入れてこのグループの最後であることを表わす。
【００１９】
これまでの例ではＮｎ≦０ｘＦの場合があったが、Ｎｎ＞０ｘＦの場合、しきい値Ｔを設定して、低頻度シンボル数がしきい値Ｔより大きい場合は、高頻度シンボルの圧縮処理を止めることになる。このしきい値Ｔが小さすぎると、高頻度シンボル圧縮停止後にも、比較的長く連続する高頻度シンボルが生じることがあり、有効な圧縮が出来ず、しきい値Ｔが大きすぎると比較的長く連続する低頻度シンボルを制御符号の多くの情報量を必要とするため圧縮効率が低下する。このしきい値Ｔは入力信号の性質や他の条件によって、あらかじめ決めておく。実際のオーディオディジタル信号を各サンプルについて同一ビット位置について並べた系列では上位の桁はほとんど“０”ビットであるが、中位の桁では少し“０”ビット以外の値が出現し、しだいに“０”ビット以外が多くなり、下位の桁ではほとんど偏りがなくなり“０”ビットだけのシンボル「バイト」はなくなる。先にあげた例ではＴ＝２×０ｘＦ（１０進数で３０）とすることができる。
【００２０】
この例を図５Ｄ−１，Ｄ−２に示す。この場合最初のグループの連続する低頻度シンボル数Ｎｎは１７個であって、その２進数表示は４ビットをこえるため先頭の制御符号は０ｘＦ０としてこれに低頻度シンボルをその最初から１５個つけ、次に制御符号として第１グループの残りの低頻度シンボルの数５とそのグループの連続する高頻度シンボル数Ｎｚ＝１０個、つまり０ｘＡをつける。従って第１グループの２番目の制御符号は“０ｘ５Ａ”となり、このあとに残りの低頻度シンボルの５個をつけて第１グループの符号とする。
以上の説明で明らかな様に制御符号の上位４ビットは長く連続する高頻度シンボル列のために使う以外は０になることはない。これは各グループの先頭は低頻度シンボルであり、低頻度シンボル数Ｎｎが少なくとも１であるためである。また０ｘＦ＜Ｎｎ≦２×０ｘＦとなる場合でも、そのグループの２番目の制御符号の上位４ビットも“０”になることはない。よって制御符号の上位４ビットは低頻度シンボル数Ｎｎから１を引いたものとして、このビット数Ｍｎで低頻度シンボル数を表わすことが出来る値を１だけ多くすることが出来る。
【００２１】
この様にして高頻度圧縮部３３３によって圧縮し、符号器３３０に入力されたシンボル列中の低頻度シンボル数Ｎｎがしきい値Ｔ以上の部分は、分離・グループ判定部３３２で格納部３３９からのしきい値Ｔにもとずいて分離されて、例えば出力バッファ３４１に入力される。特定シンボル圧縮部３３８からの符号、高頻度圧縮部３３３からの符号も出力バッファ３４１に入力され、出力バッファ３４１内のこれら符号は可逆圧縮部３４２でエントロピー符号化が行なわれて出力部３４３へ供給される。誤差信号生成部３１３からの非可逆圧縮符号も出力部３４３へ供給され、出力部３４３から音響信号源３１１の出力信号に対する圧縮符号として出力される。符号器３３０内の各部に対する動作制御は制御部３４４より行なわれる。
【００２２】
次に前述した具体例について符号化処理方法を図６を参照して説明する。入力された誤差信号を必要に応じてならびかえ、またビット分割（シンボル分割）を行ない（Ｓ１）、そのシンボル列について低頻度シンボル（以下前記具体例では“１”ビットを含むシンボルであるから非ゼロシンボルといい、シンボルのビット数Ｍを８ビット、つまり１バイトとする）が現われるまでの高頻度シンボル（以下同様にこれをゼロシンボルという）の数Ｎ０を計数する（Ｓ２）。
次に連続する非ゼロシンボル数Ｎｎとこれに連続するゼロシンボル数Ｎｚを求め（Ｓ３）、その非ゼロシンボル数Ｎｎがしきい値Ｔ以上かを調べ（Ｓ４）、しきい値Ｔ以下であればＮｎ個の非ゼロシンボルを非ゼロバッファへ格納し（Ｓ５）、また各計数値ＮｎとＮｚをグループバッファ内に格納してステップＳ３に戻る（Ｓ６）。このようにしてシンボル列をグループ分けする。ステップＳ４で非ゼロシンボル数Ｎｎがしきい値Ｔより大きければ前記グループ分けしたシンボル列をグループごとに圧縮する（Ｓ７）。そのグループごとの圧縮が終わればこれらグループごとの圧縮符号としきい値Ｔ以上連続する残りの非ゼロシンボル列と必要に応じて最初の連続するゼロシンボル数Ｎ０とをエントロピー符号化等により可逆圧縮符号化する（Ｓ８）。
【００２３】
次に図６のステップＳ７の処理、つまり図４中の高頻度圧縮部３３３の処理の具体例を前述した具体例、つまりしきい値Ｔ＝２×０ｘＦの場合について図７を参照して説明する。非ゼロバッファ読み出し用パラメータｉを０に初期化し（Ｓ１）、非ゼロシンボル数Ｎｎがしきい値Ｔ＋１（１０進数で３３）以下かを調べ（Ｓ２）、Ｔ＋１以下であればＮｎが０ｘＦ＋１（１０進数で１６）以上かを調べ（Ｓ３）、以上であればバッファ読み出し用パラメータＰｎを０ｘＦ＋１とし（Ｓ４）、非ゼロシンボル数Ｎｎから０ｘＦ＋１を引いてＮｎを更新し（Ｓ５）、０ｘＦ０を出力バッファに格納し（Ｓ６）、非ゼロバッファから格納番号ｉから非ゼロシンボルを取り出しｉを＋１し、またその格納番号から非ゼロシンボルを取り出すことを格納番号１５になるまで繰り返し、つまり非ゼロバッファから連続する非ゼロシンボルを順次取り出して出力バッファに格納する（Ｓ７）。
【００２４】
次にゼロシンボル数Ｎｚが０ｘＦ以下であるかを調べる（Ｓ８）。ステップＳ３においてＮｎが０ｘＦ＋１よりも大きくなければパラメータＰｎを０としてステップＳ８に移る（Ｓ９）。ステップＳ８においてＮｚが０ｘＦより小さければ残りゼロパラメータＺＬを０とし、フラグＦｓを０とする（Ｓ１０）。ステップＳ８でＮｚ＜０ｘＦでなければＮｚが０ｘＦと等しいかを調べ（Ｓ１１）、等しければ残りゼロパラメータＺＬを０とし、フラグＦｓを１とする（Ｓ１２）。ステップＳ１１でＮｚが０ｘＦと等しくなければ、つまりＮｚが０ｘＦよりも大きければＮｚから０ｘＦを引き算した値を残りゼロパラメータＺＬとし（Ｓ１３）、Ｎｚを０ｘＦに更新し、フラグＦｓを０とする（Ｓ１４）。
【００２５】
これらステップＳ１０，Ｓ１２，Ｓ１４の後にその時のＮｎを−１してＮｎ′とし（Ｓ１５）、Ｎｎ′、Ｎｚを出力バッファに格納し（Ｓ１６）、これまで読み出されていない非ゼロバッファ内の最初の非ゼロシンボルから連続してＮｎ個の非ゼロシンボルを順次取り出して出力バッファに格納する（Ｓ１７）。つまり非ゼロバッファの格納番号Ｐｎ＋ｉからの読み出しを、ｉを＋１しながらＰｎ＋Ｎｎになるまで非ゼロバッファから非ゼロシンボルを順次取り出せばよい。
次にフラグＦｓが１であるかを調べ（Ｓ１８）、１でなければ、つまりゼロシンボル数Ｎｚが０ｘＦ以上の場合は、残りゼロパラメータＺＬが０ｘＦＦ（１０進数で２５６）より小さいかを調べ（Ｓ１９）、小さくなければＺＬが０ｘＦＦと等しいかを調べ（Ｓ２０）、等しくなければＺＬから０ｘＦＦを引いてＺＬを更新し（Ｓ２１）、０ｘＦＦを出力バッファに格納してステップＳ１９に戻る（Ｓ２２）。ステップＳ２０でＺＬが０ｘＦＦと等しければ０ｘＦＦを出力バッファに格納し（Ｓ２３）、これに続いて０ｘ０を出力バッファに格納し（Ｓ２４）、ＺＬを０として終了する（Ｓ２５）。
【００２６】
ステップＳ１９でＺＬが０ｘＦＦより小さければ０ｘＺＬを出力バッファに格納してステップＳ２５に移る（Ｓ２６）。ステップＳ１８でフラグＦｓが１であればステップＳ２４に移る。なおステップＳ２においてＮｎがＴ＋１より小さくなければ高頻度圧縮を行わない、つまりこのステップＳ２は図６におけるステップＳ４の処理と対応する。
この処理は例えばコンピュータに実行させることができる。その場合は例えば図８に示すように入出力インターフェース部３５１より入力された誤差信号はシンボル列として記憶部３５２に格納され、これに対するグループ分け処理により各グループごとにグループバッファ３５３にＮｎ，Ｎｚが非ゼロシンボルか非ゼロバッファ３５４にそれぞれ順次格納され、パラメータ格納部３５５に図７の処理に用いたＮｎ，Ｎｚ，Ｐｎ，ＺＬ，Ｆｓ，ｉを格納更新しながらＣＰＵを主体とする制御部３５６によりプログラムメモリ３５７のプログラムを実行することにより図７に示した処理を行って、例えば図５に示した圧縮符号列を出力バッファ３５８に得るようにすることができる。
【００２７】
復号化
次にこの発明による復号器をその機能構成を示す図９を参照して説明する。この実施形態は図４に示した符号器と対応するものである。入力端子４００から圧縮符号が符号分離部４１０に入力され、符号分離部４１０においてこの例では非可逆符号が非可逆伸長部４２０に供給されて、非可逆復号伸長が行われる。これは図４中の誤差信号生成部３１３における非可逆圧縮部と対応したものである。
符号分離部４１０から分離された非可逆符号以外の符号は図４の可逆圧縮部３４２と対応する可逆伸長部４３０により可逆復号され、バッファ４４０に一旦格納される。つまりバッファ４４０内には符号器３３０で生成された最初の長く連続するゼロシンボルの数Ｎ０を表わす符号と、グループごとの高頻度圧縮符号列と、この高頻度圧縮が行われなかった低頻度シンボル（非ゼロシンボル）のシンボル列とが格納されることになる。制御部４５０によりまずＮ０を表わす符号を取り出し高頻度シンボル生成部４７０にＮ０だけゼロシンボルを生成させて合成部４６０へ供給させる。前記例ではＭビットの０（図５の例ではＭ＝８）を１つのゼロシンボルとして合成部４６０に供給する。次にバッファ４４０内の符号がグループごとに読み出し復号される。つまり最初のグループの制御符号が読み出され、その上位Ｍｎビットで表わされた非ゼロシンボル数Ｎｎ個の非ゼロシンボルが前記読み出した制御符号に続いてバッファ４４０から読み出されて合成部４６０へ供給される。その後制御部４５０は高頻度シンボル生成部４７０に前記制御符号の下位Ｍｚビットを供給し、高頻度シンボル生成部４７０はそのＭｚビットで表わされた数Ｎｚだけ高頻度シンボル（ゼロシンボル）を生成して合成部４６０へ供給する。
【００２８】
１つのグループ内の途中あるいは終わりの部分に制御符号が存在する場合は、その制御符号の非ゼロシンボル数を示す符号Ｍｎとゼロシンボル数を示す符号Ｍｚの各内容に応じて先に述べた制御符号に対する処理と同様の処理を行って１つのグループに対する復号を終了し、次のグループに対する復号に移ることになる。
制御部４５０はすべてのグループに対する復号が終了するとその圧縮符号に続く非ゼロシンボルをバッファ４４０から順次最後まで取り出して合成部４６０へ供給する。前記図４に示した符号器と対応して合成部４６０からは図４中のビット分割部３３１の出力と対応したシンボル列が得られる。これはならびかえ部４８１で図４のならびかえ部３１４と対応して元のビット列にならびかえ、加算部４８２で非可逆伸長部４２０よりの伸長された信号と加算され、加算部４８２の加算された信号をフレーム合成部４８３でフレームごとに合成して復号ディジタル信号を出力端子４９０に出力する。
【００２９】
制御部４５０によるグループごとの復号処理の手順の例を図１０を参照して説明する。まずバッファ４４０から制御符号、この例ではＭビットを取り込む。ここでは最初のグループの最初（先頭）の制御符号を取り込むことになる。その上位Ｍｎビット、下位Ｍｚビットが表わす数Ｎｎ′，Ｎｚを求める（Ｓ１）。ここで前記例と同様にＭｎ＝Ｍｚ＝４としてある。そのＮｎ′は０ｘＦであるかを調べ（Ｓ２）、そうであれば今、読み出した制御符号に続くシンボル（Ｍビット）を１５個連続して取り出して合成部４６０へ出力してステップＳ１に戻る（Ｓ３）。
【００３０】
ステップＳ２でＮｎ′が０ｘＦと等しくなければ次のＮｎ′個のシンボルをバッファ４４０から順次取り込み、合成部４６０に出力する（Ｓ４）。Ｎｚが０ｘＦと等しいかを調べ（Ｓ５）、等しければ次のＭビット、つまり制御符号をバッファから取り込み、そのＭビットが表わす数Ｎｚを求め（Ｓ６）、そのＮｚが０ｘＦＦであるかを調べ（Ｓ７）、０ｘＦＦであれば高頻度シンボル生成部４７２にゼロシンボルを０ｘＦＦ個生成させて合成部４６０へ供給してステップＳ６に戻る（Ｓ８）。ステップＳ５でＮｚが０ｘＦでない場合、またステップＳ７でＮｚが０ｘＦＦでない場合はいずれも高頻度シンボル生成部４７０に非ゼロシンボルをＮｚ生成させて合成部４６０に供給する（Ｓ９）。これで１グループの復号が終了したことになる。
【００３１】
この復号器も符号器と同様にコンピュータにプログラムを実行させて機能させることもできる。その場合は例えば符号器について述べると、図８中のプログラムメモリ３５７に、図７に示した処理をコンピュータに実行させるための符号化プログラムをＣＤ−ＲＯＭや磁気ディスク等の記録媒体からインストールし、あるいは通信回線を介してダウンロードして制御部３５６に実行させればよい。
上述においてシンボルのビット数Ｍは８に限らず、２以上の整数であればよい。また非ゼロシンボルやゼロシンボルの各数Ｎｎ，Ｎｚを４ビットでそれぞれ表現し、またＭ＝８としたが、現在の電子計算機のデータ構造からすると８ビット又は１６ビット単位とすることが好ましい。制御符号のビット数と１つのシンボルのビット数を異ならせてもよい。図４において可逆圧縮部３４２における可逆圧縮は非ゼロシンボルの連続数がしきい値Ｔを越えたシンボル列に対してのみ行ってもよい。図４中の誤差信号生成部３１３としては非可逆圧縮符号の誤差信号のみならず、例えば図３中における右シフト部４２の出力信号の音源４１よりの信号に対する誤差信号、すなわち減算部４４の出力信号、いい換えると低い量子化精度の信号の高い量子化精度の信号に対する誤差信号でもよい。あるいは図３中におけるダウンサンプル部４５の出力信号の右シフト部４２の出力信号に対する誤差信号、図において減算部４７の出力信号、つまりサンプリング周波数が低い信号の、これよりサンプリング周波数が高い信号に対する誤差信号であってもよい。また誤差信号生成部３１３としては更に図１１に示すようなものでもよい。２以上の整数Ｓチャネルのディジタル信号が端子１００１〜１００Ｓよりフレーム分割部１１０に入力され、それぞれフレーム単位、例えば１０２４サンプルごとに分割される。各分割されたディジタル信号はチャネル混合部３０でＳより少ない１以上の整数Ｒチャネルのディジタル信号に混合される。この混合されたＲチャネルの信号は符号化部１２０で非可逆又は可逆圧縮符号化され、符号Ｉｍとして出力される。符号Ｉｍは局部符号化部１３０で復号され局部復号信号が作られる。この局部復号信号はチャネル拡大部４０でＳチャネルの局部復号信号にチャネル数が増加される。ここでチャネル混合は例えば８チャネルの信号のうち最初の４チャネルの平均を左チャネル信号とし、後の４チャネルの平均を右チャネル信号とする。あるいは２チャネルステレオ信号の平均を１チャネルモノラル信号とすることであり、チャネル拡大は前記チャネル混合と逆に対応する数のチャネル数の信号にする。ここでチャネル数が拡大された局部符号信号は前記チャネル混合によるチャネル数の減少によって入力ディジタル信号に対して情報が失われている。その失われた信号を誤差信号として、フレーム分割部１１０から分岐したＭチャネルディジタル信号とＳチャネル局部復号信号とが誤差算出部１４０に入力されて算出される。上記各種の誤差信号は階層符号化における下位信号の上位信号に対する誤差信号と云える。
【００３２】
更には誤差信号は時間軸上の信号のみならず整数余弦変換などの直交変換した周波数軸上の係数であってもよい。また誤差信号のみならず原音声信号や原音楽信号あるいは画像信号もしくは“０”とそれ以外の値（“１”又はこれと“−１”）との系列のディジタル信号一般、例えば図１中の非可逆量子化部よりの出力インデックスを含む系列などに対して高頻度シンボル圧縮符号化を行い、あるいはこれと低頻度シンボルに対するエントロピー符号化などの可逆符号化との組合せを適用してもよい。
上述において高頻度シンボル圧縮符号化出力をそのまま出力し、つまりこれに対しエントロピー符号化などの再符号化を行わなくてもよい。シンボル列の生成は前述した各サンプルの同一ビット位置のビット列に対して行う場合に限らず、例えば図２Ｂ中に破線方形枠３２１として示すように、１つサンプルの隣接するビット位置の２ビットとそのサンプルと隣接するサンプルの同一のビット位置の２ビットの４ビットの時間軸上における配列を、その各４ビットを予め決めた１ビット列とすることにより８ビット単位のシンボルとするようにシンボル列を構成してもよい。高頻度シンボルとしてはＭビットすべてが“０”の場合のみならずすべてが“１”の場合、あるいは“０”と“１”の混在で同一パターンが高頻度に出現するものでもよい。
【００３３】
実験例
図１２にこの発明の圧縮効果を従来技術と比較した実験例を示す。入力データＡとして、オーディオ信号の数値系列を時間方向にスキャンして作成した系列を用い、このデータＡをエントロピー符号化したビット列Ｘを作成した（従来技術）。またデータＡにこの発明によるゼロシンボル圧縮処理（高頻度シンボル圧縮）に適用してデータＢを作成し、そのあとにそのビット列Ｂにエントロピー符号化を適用してビット列Ｘを作成した（この発明の一形態）。入力データＡとして９種類の音楽データすべてについてＸビット列ＸとＹを作成し、これらの各圧縮比率Ｘ／Ａ、Ｙ／Ａをそれぞれ示した。何れの音楽データについても、この発明を適用したＹのサイズの値が従来技術のＸのサイズの値より小さく、圧縮効果が大きいことがわかる。
【００３４】
図１３に従来技術の圧縮比と、この発明の圧縮比を比較する。信号の各標本化周波数とサンプルのビット幅（振幅分解能、量子化精度と対応）の組ごとに１段目に比較対称（従来技術）、２段目にこの発明のゼロシンボル圧縮を適応したものを、３段目には圧縮比の改善値を示す。１段目、２段目の各数値は原音のファイルサイズを圧縮後のファイルサイズで割り算したもので、数値が大きいほど圧縮比が大きく、好ましい。この比較ではともにサンプリングレートや振幅分解能にスケーラブルな符号化を基本とし、比較対称は最終段階がエントロピー符号化のみであり、この発明の適用例は最終段階がゼロシンボル圧縮とエントロピー符号の組み合わせになる。この比較でも、この発明によれば、すべての条件で従来法より圧縮効果の改善が見られる。
【００３５】
図１４に符号化処理時間の従来技術との比較を示す。比較対称は１回の“０”のランレングス符号とユニバーサルなエントロピー符号を適用した従来技術の処理時間Ｔｏｒｉと、この発明のゼロシンボル圧縮を適用した後、エントロピー符号を適用したこの処理時間Ｔｚｃと、Ｔｚｃ−Ｔｏｒｉと、（Ｔｚｃ−Ｔｏｒｉ）／Ｔｏｒｉとを示す。この結果すべての音楽データの場合に処理時間が短縮できたことがわかる。
【００３６】
【発明の効果】
この発明によればランレングス符号化のみあるいはエントロピー符号化のみ、またはこれらの組合せよりも効率的な符号化が可能となる。しかも処理時間が短い特徴がある。
【図面の簡単な説明】
【図１】従来の可逆圧縮符号化及び復号化の機能構成を示す図。
【図２】図１中のならびかえ部１６０及び２２０の処理を説明するための図。
【図３】誤差信号の態様を説明するための図。
【図４】この発明による符号器の機能構成例を示す図。
【図５】この発明による符号化の具体例を説明するための図。
【図６】図４に示した符号装置の処理手順の例を示す流れ図。
【図７】図４中の高頻度圧縮部３３３における処理手順の具体例を示す流れ図。
【図８】図７に示した処理手順をコンピュータに実行させる場合のコンピュータの機能構成を示す図。
【図９】この発明による復号器の機能構成を示す図。
【図１０】この発明による復号化方法の例を示す流れ図。
【図１１】誤差信号生成部３１３の他の機能構成例を示す図。
【図１２】オーディオ信号にこの発明を直接適用した時の従来技術との効果の比較を示す図。
【図１３】オーディオ信号の可逆スケーラブル符号化にこの発明を適用した時の性能改善例を示す図。
【図１４】符号化の処理時間の従来技術との比較例を示す図。
【図１】
2004247909.tif 000003
【図２】
2004247909.tif 000004
【図３】
2004247909.tif 000005
【図４】
2004247909.tif 000006
【図５】
2004247909.tif 000007
【図６】
2004247909.tif 000008
【図７】
2004247909.tif 000009
【図８】
2004247909.tif 000010
【図９】
2004247909.tif 000011
【図１０】
2004247909.tif 000012
【図１１】
2004247909.tif 000013
【図１２】
2004247909.tif 000014
【図１３】
2004247909.tif 000015
【図１４】
2004247909.tif 000016