JP2004247909A - ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム - Google Patents
ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム Download PDFInfo
- Publication number
- JP2004247909A JP2004247909A JP2003034918A JP2003034918A JP2004247909A JP 2004247909 A JP2004247909 A JP 2004247909A JP 2003034918 A JP2003034918 A JP 2003034918A JP 2003034918 A JP2003034918 A JP 2003034918A JP 2004247909 A JP2004247909 A JP 2004247909A
- Authority
- JP
- Japan
- Prior art keywords
- frequency
- symbols
- low
- symbol
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【解決手段】音声信号を非可逆圧縮符号化した誤差信号について、そのフレームごとに各サンプルの同一ビット位置のビット系列を1バイトずつのシンボルとし(図ではその4ビットずつを16進数で表わしている)、その最初の非ゼロシンボルの連続から次に非ゼロシンボルが現われる前までをグループとしグループごとにその非ゼロシンボルの数Nnとそのゼロシンボルの数Nzを1バイトの制御符号(図中影を付してある)とし、これにそのグループの非ゼロシンボルを連続させてそのグループの符号とする。各グループ毎に同様の符号化を行う。
【選択図】 図5
Description
【発明の属する技術分野】
この発明は1と0の2値で表現されたディジタル信号、特に好ましくは音声信号、音楽などの音響信号や画像信号を可逆に圧縮し、伸張する符号化方法、復号化方法、符号器、復号器、それらのプログラムに関する。
【0002】
【従来の技術】
歪を許さない符号化はシンボルの生起確率に基づく圧縮技術が多く知られている。ハフマン符号や算術符号、ランレングス符号などが代表的な方法である。いずれも統計的性質が正確にわかるほど圧縮効率があがるが、圧縮すべきデータをどのように処理するか、分類するかは多くの自由度がある。特にオーディオ信号の振幅のデータを統計的性質が近い集合に分割して、集合ごとに個別の圧縮符号を適用する手法は特許文献1に示唆されている。時間軸方向に上位の“0”が多い部分だけを集め、下位のランダムに近い部分だけを集めることになるので、個別の最適化が可能である。
【0003】
図1に示すように、符号器では、入力端子100よりのディジタル入力信号の時系列(以下「ディジタル入力信号系列」と称する)が、フレーム分割部110で、例えば1024個のディジタル入力信号(即ち、1024点のサンプル)からなるフレーム単位に順次分割され、このフレーム単位ごとにディジタル信号が非可逆量子化部120で非可逆圧縮符号化される。この符号化は、復号化時に元のディジタル入力信号をある程度再現できる方式であれば、入力信号に適した如何なる方式でもよい。例えば、上記ディジタル入力信号が音声であればITU−Tの音声符号化などが利用でき、音楽であればMPEGまたはTwinVQなどが利用でき、映像信号であればMPEGなどを用いることができる。この非可逆圧縮符号I(n)は逆量子化部130で局部復号され、この局部復号信号と元のディジタル信号との誤差信号が差回路140で生成される。この誤差信号の振幅は通常は元のディジタル信号の振幅よりもかなり小さい。よって、ディジタル信号を直接可逆圧縮符号化するよりも、誤差信号を可逆圧縮符号化する方が情報量を小さくできる。
【0004】
この可逆圧縮符号化の効率を上げるために、誤差信号即ち、ディジタルのサンプル列をならびかえ部160でビット列を変換する。即ちこの誤差信号を、2の補数表現によるサンプル列から、符号絶対値表現(極性と絶対値の2進数)によるサンプル列へ変換し、その各サンプルのビット(桁)位置、つまりMSB,第2MSB,…,LSB毎に、サンプルを跨いだ、フレーム内のビットからなるビット列として、可逆符号化部150で可逆圧縮符号化して符号I(e)を出力する。つまり誤差信号の各サンプルV(k)は例えば図2Aに示すように、LSB〜極性ビットの例えば24ビットであり、サンプルV(k)の数は1024個であり、同一ビット位置をサンプルを跨いだフレーム内のビットからなるビット列の1つDH(i)は図2Bに示すように、図2Aの各サンプルの同一桁位置のビットよりなり、そのビット数は1024個である。誤差信号は振幅が小さいので、上位のビットは全て“0”となることが多く、その結果、変換されたビット列は“0”が連続することによって、誤差信号の可逆圧縮符号化効率を上げることができる。この可逆圧縮符号化としては、例えば、同一符号(1又は0)が連続する系列がある場合や頻繁に出現する系列がある場合を利用した、ハフマン符号化や算術符号化などのエントロピィ符号化などを用いることができる。
【0005】
復号器では、可逆復号化部210で可逆圧縮符号I(e)が復号化され、その復号信号に対し、ならびかえ部220でならびかえ部160と逆の処理が行われ、誤差信号がフレーム単位で順次再生される。また、逆量子化部230で、非可逆圧縮符号I(n)が復号化され、この復号信号と再生された誤差信号とが加算部240で加算され、最後に、フレーム合成部250でフレームごとの各加算信号が順次連結されて、元のディジタル信号系列が再生される。
このような可逆圧縮符号化法は特許文献2にも示されている。更に文字の繰り返し情報を用いて可逆圧縮する方法が特許文献3に示されている。
【0006】
次にこの発明の実施形態に用いられる誤差信号生成部となり得る従来技術(例えばT.Moriya他4名著“Sampling Rate Scalable Lossless Audio coding”2002 IEEE Speech Coding Workshop proceedings 2002,10月参照)を図3を参照して説明する。
これは各種品質の情報が得られるようにオーディオ信号について標本化周波数に基づく階層的符号化であって、又音源41よりの振幅語長(量子化精度)が24ビット、標本化周波数が96kHzのディジタル信号が右シフト部42により各サンプルが8ビット右へシフトされ、つまり下位8桁が除去され、振幅語長が16ビットとされ、その後左シフト部43で8ビット左へシフトされ、各サンプルの振幅語長が24ビットで下位8ビットが0の信号とされ、この信号が減算部44で入力ディジタル信号より差し引かれ、下位8ビット(誤差信号)が出力される。この誤差信号は量子化精度が24ビット、標本化周波数が96kHzであり、24b,96kHz誤差信号と表示する。以下も同様の表示を用いる。この24b,96kHz誤差信号は必要に応じて可逆圧縮部53で可逆圧縮符号化される。右シフト部42よりの信号はダウンサンプル部45で標本化周波数が48kHzにダウンサンプリングされ、このダウンサンプリングされた信号がアップサンプル部46で標本化周波数96kHzにアップサンプリングされ、このアップサンプリングされた信号と、右シフト部42よりの信号との誤差信号が減算部47で生成され、この16b,96kHz誤差信号が可逆圧縮部48で可逆圧縮符号化され、16,96符号として出力される。
【0007】
ダウンサンプル部45より16ビット48kHzのディジタル信号は非可逆符号化部49で符号化方法MPEG−4により圧縮符号化され、その圧縮符号が主符号として出力される。この圧縮符号は局部復号部50で復号され、局部復号信号が生成され、この局部復号信号と、ダウンサンプル部45よりの16ビット48kHzディジタル信号との16b,48kHz誤差信号が減算部51で生成され、その誤差信号は可逆圧縮部52で可逆圧縮符号化され、16,48符号として出力される。
【0008】
【特許文献1】
特開2001−144847公報(第6〜8頁、第3図)
【特許文献2】
特許第3127016号公報
【特許文献3】
特許第3025301号公報
【0009】
【発明が解決しようとする課題】
ビット列中の連続する“0”(又は“1”)ビットの数を符号とし、その“0”(又は“1”)ビットを除去して圧縮する。ランレングス符号化は連続する“0”(又は“1”)ビットの数が少ないと圧縮効率が悪くなる。一方、“0”ビットと“1”ビットが混在する場合はエントロピー符号化が適するが、連続する“0”(又は“1”)ビットの数が多い場合はランレングス符号化よりも圧縮効率が劣る。
可逆圧縮符号化としてランレングス符号化のみ、あるいはエントロビー符号化のみ又はこれら両者の組合せよりも効率的に符号化することが出来る符号化方法、復号化方法、その符号器、復号器、これらのプログラムを提供することを、この発明は目的とするものである。
【0010】
【課題を解決するための手段】
この発明の符号化方法によればディジタル信号を、2以上の整数Mビット単位の出現頻度が高いシンボル(以下高頻度シンボルという)の少なくとも1以上の連続する高頻度列と、上記高頻度シンボル以外のMビット単位のシンボル(以下低頻度シンボルという)の少なくとも1以上の連続する低頻度列とから構成されるグループとして、各グループごとに高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボルとを出力する。
この発明の復号化方法によれば高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボル列とのグループごとに、上記低頻度シンボル列と、予め決められたビット数のビットパターンよりなるシンボルを上記高頻度シンボルの個数だけ連続させたシンボル列とを連続させて出力する。
【0011】
この発明の符号器によればディジタル信号が入力され、そのディジタル信号を、2以上の整数Mビット単位の出現頻度が高いシンボル(以下高頻度シンボルという)の少なくとも1以上の連続する高頻度列と、この高頻度列と連続し、かつ上記高頻度シンボル以外のMビット単位のシンボル(以下低頻度シンボルという)の少なくとも1以上の連続する低頻度列を1つのグループとして判定するグループ判定部と、上記ディジタル信号が入力され、上記グループごとに、高頻度シンボルの個数を表わす符号と低頻度シンボルの個数を表わす符号及びその低頻度シンボルとを出力する高頻度圧縮部とを具備する。
【0012】
この発明の復号器によれば、圧縮符号が入力され、その圧縮符号を、低頻度シンボル個数符号、高頻度シンボル個数符号を分離出力する分離部と、上記低頻度シンボル個数符号及び上記高頻度シンボル個数符号が入力され、上記低頻度シンボル個数符号が表わす個数だけ上記圧縮符号から低頻度シンボルの列を分離した低頻度シンボル列を生成し、その低頻度シンボル列と連続し、上記高頻度シンボル個数符号が表わす個数だけ連続する予め決められた高頻度シンボルの列を生成する制御部とを具備する。
この発明の符号化プログラムは前記符号器としてコンピュータを機能させるためのプログラムである。
この発明の復号化プログラムは前記復号器としてコンピュータを機能させるためのプログラムである。
【0013】
【発明の実施の形態】
符号化
この発明の実施形態を図面を参照して説明する。
この発明による符号器の機能構成例を図4に示す。ディジタル信号源310よりのディジタル信号はこの発明による符号器330に入力される。符号器330においては入力されたディジタル信号を必要に応じてビット分割部331において2以上の整数Mビットごとに分割され、Mビット単位の出現頻度が高いシンボル(以下高頻度シンボルという)の少なくとも1以上の連続する高頻度列とこの高頻度列と連続し、かつ高頻度シンボル以外のMビット単位のシンボル(以下低頻度シンボルという)の少なくとも1以上の連続する低頻度列とを1つのグループとして、この例では分離・グループ判定部332で判定する。その判定されたグループごとに高頻度シンボルの個数Nzを表わす符号と低頻度シンボルの個数Nnを表わす符号及びその低頻度シンボルとを高頻度圧縮部303から出力する。この例においては上記Nzを表わす符号及びNnを表わす符号を制御符号として制御符号生成部334で生成し、これらの数Nzを高頻度計数部335で計数し、Nnを低頻度計数部336で計数する。低頻度シンボルを低頻度出力部337により出力する。
【0014】
この実施形態ではディジタル信号源310として音響信号源311からの音響信号をフレーム分割部312により所定サンプル、例えば1024サンプルごとにフレーム分割し、各分割されたフレームごとに誤差信号生成部313で非可逆圧縮符号とその誤差信号とを生成する。つまり例えば図1に示した非可逆量子化部120、可逆量子化部130、差回路140により誤差信号生成部313が構成される。
またこの例では図2を参照して説明したように、誤差信号のサンプルの同一ビット位置(桁位置)を連続させたビット列として符号化する場合である。そのビット列の変換はならびかえ部114で行われる。この場合図3Bにおける上位ビットの領域315はすべて“0”となり、中位ビットの領域316は例えば一部を枠317内に示すように“0”ビットの連続中に“1”ビットが一部混在したものとなり、最下位付近の領域318は、その一部を枠319内に示すように“0”ビットの連続は著しく少なくなり、つまり“0”ビットと“1”ビットとが混在した状態となっている。ここで枠317,319内の数値は4ビットずつを0から9、A,B,C,D,E,Fまでの16進表示である。以後“0x”は後続の数値又は記号が16進であることを示し、例えば、“0xF”は10進で15を意味する。
【0015】
そこでこの実施形態では分離・グループ判定部332で最初はMビット単位に分割されたものが“0”ビットの連続であり、最初に“0”でないMビットが現われるまでを特定シンボル圧縮部338で符号化する。前記図3Bに示した例ではMビットは8ビットの場合であり、1シンボルが8ビットの場合であり、高頻度シンボルがそのMビットがすべて“0”ビットの場合であり、低頻度シンボルはそれ以外、つまりそのMビット中に少なくとも“1”ビットを含むものである。特定シンボル圧縮部338では最初から、最初に低頻度シンボルが現われるまでの、高頻度シンボル数を表わす符号を出力する。
【0016】
次にこの発明の要部である高頻度圧縮部333について説明する。この例では高頻度シンボル数Nzを表わす符号ビット数Mzと低頻度シンボル数Nnを表わす符号ビット数Mnとの和が1シンボルのビット数Mになるようにした場合である。前記M=8(1バイト)の例において上位4ビットで低頻度シンボル、つまり図2の例では非ゼロバイトの数Nnを表わし、下位4ビットで高頻度シンボル数Nz、つまりゼロバイトの数Nzを表わすようにした。これは低頻度シンボルが連続して現われるのは15個特に数個以内の場合が多い状態に適用したからであり、また低頻度シンボルの数Nnが小さい方が圧縮効率が向上する。例えば図5A−1に示すディジタル信号を符号化すると図5A−2に示すようになる。つまり先に述べたようにグループごとに符号化するが、そのグループの境界は図中に縦線で示すように高頻度シンボルと低頻度シンボルとの間になり各グループごとに低頻度シンボル数Nnを表わす4ビットを上位ビットとし高頻度シンボル数Nzを表わす4ビットを下位ビットとする制御符号を先頭につけ、図においてこれに影をつけて示している。最初のグループは低頻度シンボル“0x08”で始まり、低頻度シンボル“0x04”の前で終わっており、低頻度シンボル数Nnは“0x08”と“0x20”の2個であり、高頻度シンボル数Nzは10個である。従って制御符号は上位4ビット数が“0x2”となり下位4ビットは“0xA”(10の16進表示)となる。この制御信号の後に、このグループの連続する低頻度シンボル“08”と“20”が出力される。これに続いて次のグループの制御符号が付け加わり、さらにその後にそのグループの連続する低頻度シンボルが付け加わる。以下同様に圧縮符号化される。
【0017】
次に高頻度シンボル数Nzが1つの制御符号で表わすことができる数2Mz−1を越える場合の符号化例を図5のB−1とB−2を参照して説明する。この例では0xF<Nz<0xFF+0xFの場合である。第1番目のグループでは低頻度シンボルの後に高頻度シンボルが17個連続しており先頭の制御符号の上位4ビットには低頻度シンボル数Nn=2を表わす“0x2”となり、下位4ビットには高頻度シンボルが15個連続することを示す符号化“0xF”を入れる。その次にそのグループの連続する2つの低頻度シンボルをつけ、その後に制御符号をつけてこのグループの終りであることがわかるようにする。この制御符号は上位4ビットは低頻度シンボル数がゼロであることを示し、次の4ビットは先頭の制御符号に示した高頻度シンボル数“0xF”をそのグループの高頻度シンボル数Nz=17から差し引いた残りの数“0x2”とする。この次には次のグループに対する先頭の制御符号が続くことになる。
【0018】
高頻度シンボル数Nzが31以上の例を図5C−1、C−2に示す。この場合最初のグループは連続する低頻度シンボルの数Nnが2で、これに連続する高頻度シンボルの数Nzが278の場合であり、つまり16進表示ではNz=278=15+256+7=0xF+0xFF+0x7である。先頭の制御符号には、図5Bの場合と同様に“0x2F”を入れ、次に連続する2個の低頻度シンボルを続け、その次の制御符号として“0xFF”を入れ、さらにグループの終わりを示す制御符号として“0x07”を入れる。このようにして連続する高頻度シンボル数Nzを表わす。このように先頭の制御符号で表わすことができる高頻度の数“0xF”を実際に連続する高頻度シンボル数Nzから差し引いた残りの数を表わすことができるだけ数の制御符号をグループ符号の最後につける。例えば低頻度シンボル数Nz=m×0xFF+0xF(m=1,2,3…)の場合も最後には制御符号として“0x00”を入れてこのグループの最後であることを表わす。
【0019】
これまでの例ではNn≦0xFの場合があったが、Nn>0xFの場合、しきい値Tを設定して、低頻度シンボル数がしきい値Tより大きい場合は、高頻度シンボルの圧縮処理を止めることになる。このしきい値Tが小さすぎると、高頻度シンボル圧縮停止後にも、比較的長く連続する高頻度シンボルが生じることがあり、有効な圧縮が出来ず、しきい値Tが大きすぎると比較的長く連続する低頻度シンボルを制御符号の多くの情報量を必要とするため圧縮効率が低下する。このしきい値Tは入力信号の性質や他の条件によって、あらかじめ決めておく。実際のオーディオディジタル信号を各サンプルについて同一ビット位置について並べた系列では上位の桁はほとんど“0”ビットであるが、中位の桁では少し“0”ビット以外の値が出現し、しだいに“0”ビット以外が多くなり、下位の桁ではほとんど偏りがなくなり“0”ビットだけのシンボル「バイト」はなくなる。先にあげた例ではT=2×0xF(10進数で30)とすることができる。
【0020】
この例を図5D−1,D−2に示す。この場合最初のグループの連続する低頻度シンボル数Nnは17個であって、その2進数表示は4ビットをこえるため先頭の制御符号は0xF0としてこれに低頻度シンボルをその最初から15個つけ、次に制御符号として第1グループの残りの低頻度シンボルの数5とそのグループの連続する高頻度シンボル数Nz=10個、つまり0xAをつける。従って第1グループの2番目の制御符号は“0x5A”となり、このあとに残りの低頻度シンボルの5個をつけて第1グループの符号とする。
以上の説明で明らかな様に制御符号の上位4ビットは長く連続する高頻度シンボル列のために使う以外は0になることはない。これは各グループの先頭は低頻度シンボルであり、低頻度シンボル数Nnが少なくとも1であるためである。また0xF<Nn≦2×0xFとなる場合でも、そのグループの2番目の制御符号の上位4ビットも“0”になることはない。よって制御符号の上位4ビットは低頻度シンボル数Nnから1を引いたものとして、このビット数Mnで低頻度シンボル数を表わすことが出来る値を1だけ多くすることが出来る。
【0021】
この様にして高頻度圧縮部333によって圧縮し、符号器330に入力されたシンボル列中の低頻度シンボル数Nnがしきい値T以上の部分は、分離・グループ判定部332で格納部339からのしきい値Tにもとずいて分離されて、例えば出力バッファ341に入力される。特定シンボル圧縮部338からの符号、高頻度圧縮部333からの符号も出力バッファ341に入力され、出力バッファ341内のこれら符号は可逆圧縮部342でエントロピー符号化が行なわれて出力部343へ供給される。誤差信号生成部313からの非可逆圧縮符号も出力部343へ供給され、出力部343から音響信号源311の出力信号に対する圧縮符号として出力される。符号器330内の各部に対する動作制御は制御部344より行なわれる。
【0022】
次に前述した具体例について符号化処理方法を図6を参照して説明する。入力された誤差信号を必要に応じてならびかえ、またビット分割(シンボル分割)を行ない(S1)、そのシンボル列について低頻度シンボル(以下前記具体例では“1”ビットを含むシンボルであるから非ゼロシンボルといい、シンボルのビット数Mを8ビット、つまり1バイトとする)が現われるまでの高頻度シンボル(以下同様にこれをゼロシンボルという)の数N0を計数する(S2)。
次に連続する非ゼロシンボル数Nnとこれに連続するゼロシンボル数Nzを求め(S3)、その非ゼロシンボル数Nnがしきい値T以上かを調べ(S4)、しきい値T以下であればNn個の非ゼロシンボルを非ゼロバッファへ格納し(S5)、また各計数値NnとNzをグループバッファ内に格納してステップS3に戻る(S6)。このようにしてシンボル列をグループ分けする。ステップS4で非ゼロシンボル数Nnがしきい値Tより大きければ前記グループ分けしたシンボル列をグループごとに圧縮する(S7)。そのグループごとの圧縮が終わればこれらグループごとの圧縮符号としきい値T以上連続する残りの非ゼロシンボル列と必要に応じて最初の連続するゼロシンボル数N0とをエントロピー符号化等により可逆圧縮符号化する(S8)。
【0023】
次に図6のステップS7の処理、つまり図4中の高頻度圧縮部333の処理の具体例を前述した具体例、つまりしきい値T=2×0xFの場合について図7を参照して説明する。非ゼロバッファ読み出し用パラメータiを0に初期化し(S1)、非ゼロシンボル数Nnがしきい値T+1(10進数で33)以下かを調べ(S2)、T+1以下であればNnが0xF+1(10進数で16)以上かを調べ(S3)、以上であればバッファ読み出し用パラメータPnを0xF+1とし(S4)、非ゼロシンボル数Nnから0xF+1を引いてNnを更新し(S5)、0xF0を出力バッファに格納し(S6)、非ゼロバッファから格納番号iから非ゼロシンボルを取り出しiを+1し、またその格納番号から非ゼロシンボルを取り出すことを格納番号15になるまで繰り返し、つまり非ゼロバッファから連続する非ゼロシンボルを順次取り出して出力バッファに格納する(S7)。
【0024】
次にゼロシンボル数Nzが0xF以下であるかを調べる(S8)。ステップS3においてNnが0xF+1よりも大きくなければパラメータPnを0としてステップS8に移る(S9)。ステップS8においてNzが0xFより小さければ残りゼロパラメータZLを0とし、フラグFsを0とする(S10)。ステップS8でNz<0xFでなければNzが0xFと等しいかを調べ(S11)、等しければ残りゼロパラメータZLを0とし、フラグFsを1とする(S12)。ステップS11でNzが0xFと等しくなければ、つまりNzが0xFよりも大きければNzから0xFを引き算した値を残りゼロパラメータZLとし(S13)、Nzを0xFに更新し、フラグFsを0とする(S14)。
【0025】
これらステップS10,S12,S14の後にその時のNnを−1してNn′とし(S15)、Nn′、Nzを出力バッファに格納し(S16)、これまで読み出されていない非ゼロバッファ内の最初の非ゼロシンボルから連続してNn個の非ゼロシンボルを順次取り出して出力バッファに格納する(S17)。つまり非ゼロバッファの格納番号Pn+iからの読み出しを、iを+1しながらPn+Nnになるまで非ゼロバッファから非ゼロシンボルを順次取り出せばよい。
次にフラグFsが1であるかを調べ(S18)、1でなければ、つまりゼロシンボル数Nzが0xF以上の場合は、残りゼロパラメータZLが0xFF(10進数で256)より小さいかを調べ(S19)、小さくなければZLが0xFFと等しいかを調べ(S20)、等しくなければZLから0xFFを引いてZLを更新し(S21)、0xFFを出力バッファに格納してステップS19に戻る(S22)。ステップS20でZLが0xFFと等しければ0xFFを出力バッファに格納し(S23)、これに続いて0x0を出力バッファに格納し(S24)、ZLを0として終了する(S25)。
【0026】
ステップS19でZLが0xFFより小さければ0xZLを出力バッファに格納してステップS25に移る(S26)。ステップS18でフラグFsが1であればステップS24に移る。なおステップS2においてNnがT+1より小さくなければ高頻度圧縮を行わない、つまりこのステップS2は図6におけるステップS4の処理と対応する。
この処理は例えばコンピュータに実行させることができる。その場合は例えば図8に示すように入出力インターフェース部351より入力された誤差信号はシンボル列として記憶部352に格納され、これに対するグループ分け処理により各グループごとにグループバッファ353にNn,Nzが非ゼロシンボルか非ゼロバッファ354にそれぞれ順次格納され、パラメータ格納部355に図7の処理に用いたNn,Nz,Pn,ZL,Fs,iを格納更新しながらCPUを主体とする制御部356によりプログラムメモリ357のプログラムを実行することにより図7に示した処理を行って、例えば図5に示した圧縮符号列を出力バッファ358に得るようにすることができる。
【0027】
復号化
次にこの発明による復号器をその機能構成を示す図9を参照して説明する。この実施形態は図4に示した符号器と対応するものである。入力端子400から圧縮符号が符号分離部410に入力され、符号分離部410においてこの例では非可逆符号が非可逆伸長部420に供給されて、非可逆復号伸長が行われる。これは図4中の誤差信号生成部313における非可逆圧縮部と対応したものである。
符号分離部410から分離された非可逆符号以外の符号は図4の可逆圧縮部342と対応する可逆伸長部430により可逆復号され、バッファ440に一旦格納される。つまりバッファ440内には符号器330で生成された最初の長く連続するゼロシンボルの数N0を表わす符号と、グループごとの高頻度圧縮符号列と、この高頻度圧縮が行われなかった低頻度シンボル(非ゼロシンボル)のシンボル列とが格納されることになる。制御部450によりまずN0を表わす符号を取り出し高頻度シンボル生成部470にN0だけゼロシンボルを生成させて合成部460へ供給させる。前記例ではMビットの0(図5の例ではM=8)を1つのゼロシンボルとして合成部460に供給する。次にバッファ440内の符号がグループごとに読み出し復号される。つまり最初のグループの制御符号が読み出され、その上位Mnビットで表わされた非ゼロシンボル数Nn個の非ゼロシンボルが前記読み出した制御符号に続いてバッファ440から読み出されて合成部460へ供給される。その後制御部450は高頻度シンボル生成部470に前記制御符号の下位Mzビットを供給し、高頻度シンボル生成部470はそのMzビットで表わされた数Nzだけ高頻度シンボル(ゼロシンボル)を生成して合成部460へ供給する。
【0028】
1つのグループ内の途中あるいは終わりの部分に制御符号が存在する場合は、その制御符号の非ゼロシンボル数を示す符号Mnとゼロシンボル数を示す符号Mzの各内容に応じて先に述べた制御符号に対する処理と同様の処理を行って1つのグループに対する復号を終了し、次のグループに対する復号に移ることになる。
制御部450はすべてのグループに対する復号が終了するとその圧縮符号に続く非ゼロシンボルをバッファ440から順次最後まで取り出して合成部460へ供給する。前記図4に示した符号器と対応して合成部460からは図4中のビット分割部331の出力と対応したシンボル列が得られる。これはならびかえ部481で図4のならびかえ部314と対応して元のビット列にならびかえ、加算部482で非可逆伸長部420よりの伸長された信号と加算され、加算部482の加算された信号をフレーム合成部483でフレームごとに合成して復号ディジタル信号を出力端子490に出力する。
【0029】
制御部450によるグループごとの復号処理の手順の例を図10を参照して説明する。まずバッファ440から制御符号、この例ではMビットを取り込む。ここでは最初のグループの最初(先頭)の制御符号を取り込むことになる。その上位Mnビット、下位Mzビットが表わす数Nn′,Nzを求める(S1)。ここで前記例と同様にMn=Mz=4としてある。そのNn′は0xFであるかを調べ(S2)、そうであれば今、読み出した制御符号に続くシンボル(Mビット)を15個連続して取り出して合成部460へ出力してステップS1に戻る(S3)。
【0030】
ステップS2でNn′が0xFと等しくなければ次のNn′個のシンボルをバッファ440から順次取り込み、合成部460に出力する(S4)。Nzが0xFと等しいかを調べ(S5)、等しければ次のMビット、つまり制御符号をバッファから取り込み、そのMビットが表わす数Nzを求め(S6)、そのNzが0xFFであるかを調べ(S7)、0xFFであれば高頻度シンボル生成部472にゼロシンボルを0xFF個生成させて合成部460へ供給してステップS6に戻る(S8)。ステップS5でNzが0xFでない場合、またステップS7でNzが0xFFでない場合はいずれも高頻度シンボル生成部470に非ゼロシンボルをNz生成させて合成部460に供給する(S9)。これで1グループの復号が終了したことになる。
【0031】
この復号器も符号器と同様にコンピュータにプログラムを実行させて機能させることもできる。その場合は例えば符号器について述べると、図8中のプログラムメモリ357に、図7に示した処理をコンピュータに実行させるための符号化プログラムをCD−ROMや磁気ディスク等の記録媒体からインストールし、あるいは通信回線を介してダウンロードして制御部356に実行させればよい。
上述においてシンボルのビット数Mは8に限らず、2以上の整数であればよい。また非ゼロシンボルやゼロシンボルの各数Nn,Nzを4ビットでそれぞれ表現し、またM=8としたが、現在の電子計算機のデータ構造からすると8ビット又は16ビット単位とすることが好ましい。制御符号のビット数と1つのシンボルのビット数を異ならせてもよい。図4において可逆圧縮部342における可逆圧縮は非ゼロシンボルの連続数がしきい値Tを越えたシンボル列に対してのみ行ってもよい。図4中の誤差信号生成部313としては非可逆圧縮符号の誤差信号のみならず、例えば図3中における右シフト部42の出力信号の音源41よりの信号に対する誤差信号、すなわち減算部44の出力信号、いい換えると低い量子化精度の信号の高い量子化精度の信号に対する誤差信号でもよい。あるいは図3中におけるダウンサンプル部45の出力信号の右シフト部42の出力信号に対する誤差信号、図において減算部47の出力信号、つまりサンプリング周波数が低い信号の、これよりサンプリング周波数が高い信号に対する誤差信号であってもよい。また誤差信号生成部313としては更に図11に示すようなものでもよい。2以上の整数Sチャネルのディジタル信号が端子1001〜100Sよりフレーム分割部110に入力され、それぞれフレーム単位、例えば1024サンプルごとに分割される。各分割されたディジタル信号はチャネル混合部30でSより少ない1以上の整数Rチャネルのディジタル信号に混合される。この混合されたRチャネルの信号は符号化部120で非可逆又は可逆圧縮符号化され、符号Imとして出力される。符号Imは局部符号化部130で復号され局部復号信号が作られる。この局部復号信号はチャネル拡大部40でSチャネルの局部復号信号にチャネル数が増加される。ここでチャネル混合は例えば8チャネルの信号のうち最初の4チャネルの平均を左チャネル信号とし、後の4チャネルの平均を右チャネル信号とする。あるいは2チャネルステレオ信号の平均を1チャネルモノラル信号とすることであり、チャネル拡大は前記チャネル混合と逆に対応する数のチャネル数の信号にする。ここでチャネル数が拡大された局部符号信号は前記チャネル混合によるチャネル数の減少によって入力ディジタル信号に対して情報が失われている。その失われた信号を誤差信号として、フレーム分割部110から分岐したMチャネルディジタル信号とSチャネル局部復号信号とが誤差算出部140に入力されて算出される。上記各種の誤差信号は階層符号化における下位信号の上位信号に対する誤差信号と云える。
【0032】
更には誤差信号は時間軸上の信号のみならず整数余弦変換などの直交変換した周波数軸上の係数であってもよい。また誤差信号のみならず原音声信号や原音楽信号あるいは画像信号もしくは“0”とそれ以外の値(“1”又はこれと“−1”)との系列のディジタル信号一般、例えば図1中の非可逆量子化部よりの出力インデックスを含む系列などに対して高頻度シンボル圧縮符号化を行い、あるいはこれと低頻度シンボルに対するエントロピー符号化などの可逆符号化との組合せを適用してもよい。
上述において高頻度シンボル圧縮符号化出力をそのまま出力し、つまりこれに対しエントロピー符号化などの再符号化を行わなくてもよい。シンボル列の生成は前述した各サンプルの同一ビット位置のビット列に対して行う場合に限らず、例えば図2B中に破線方形枠321として示すように、1つサンプルの隣接するビット位置の2ビットとそのサンプルと隣接するサンプルの同一のビット位置の2ビットの4ビットの時間軸上における配列を、その各4ビットを予め決めた1ビット列とすることにより8ビット単位のシンボルとするようにシンボル列を構成してもよい。高頻度シンボルとしてはMビットすべてが“0”の場合のみならずすべてが“1”の場合、あるいは“0”と“1”の混在で同一パターンが高頻度に出現するものでもよい。
【0033】
実験例
図12にこの発明の圧縮効果を従来技術と比較した実験例を示す。入力データAとして、オーディオ信号の数値系列を時間方向にスキャンして作成した系列を用い、このデータAをエントロピー符号化したビット列Xを作成した(従来技術)。またデータAにこの発明によるゼロシンボル圧縮処理(高頻度シンボル圧縮)に適用してデータBを作成し、そのあとにそのビット列Bにエントロピー符号化を適用してビット列Xを作成した(この発明の一形態)。入力データAとして9種類の音楽データすべてについてXビット列XとYを作成し、これらの各圧縮比率X/A、Y/Aをそれぞれ示した。何れの音楽データについても、この発明を適用したYのサイズの値が従来技術のXのサイズの値より小さく、圧縮効果が大きいことがわかる。
【0034】
図13に従来技術の圧縮比と、この発明の圧縮比を比較する。信号の各標本化周波数とサンプルのビット幅(振幅分解能、量子化精度と対応)の組ごとに1段目に比較対称(従来技術)、2段目にこの発明のゼロシンボル圧縮を適応したものを、3段目には圧縮比の改善値を示す。1段目、2段目の各数値は原音のファイルサイズを圧縮後のファイルサイズで割り算したもので、数値が大きいほど圧縮比が大きく、好ましい。この比較ではともにサンプリングレートや振幅分解能にスケーラブルな符号化を基本とし、比較対称は最終段階がエントロピー符号化のみであり、この発明の適用例は最終段階がゼロシンボル圧縮とエントロピー符号の組み合わせになる。この比較でも、この発明によれば、すべての条件で従来法より圧縮効果の改善が見られる。
【0035】
図14に符号化処理時間の従来技術との比較を示す。比較対称は1回の“0”のランレングス符号とユニバーサルなエントロピー符号を適用した従来技術の処理時間Toriと、この発明のゼロシンボル圧縮を適用した後、エントロピー符号を適用したこの処理時間Tzcと、Tzc−Toriと、(Tzc−Tori)/Toriとを示す。この結果すべての音楽データの場合に処理時間が短縮できたことがわかる。
【0036】
【発明の効果】
この発明によればランレングス符号化のみあるいはエントロピー符号化のみ、またはこれらの組合せよりも効率的な符号化が可能となる。しかも処理時間が短い特徴がある。
【図面の簡単な説明】
【図1】従来の可逆圧縮符号化及び復号化の機能構成を示す図。
【図2】図1中のならびかえ部160及び220の処理を説明するための図。
【図3】誤差信号の態様を説明するための図。
【図4】この発明による符号器の機能構成例を示す図。
【図5】この発明による符号化の具体例を説明するための図。
【図6】図4に示した符号装置の処理手順の例を示す流れ図。
【図7】図4中の高頻度圧縮部333における処理手順の具体例を示す流れ図。
【図8】図7に示した処理手順をコンピュータに実行させる場合のコンピュータの機能構成を示す図。
【図9】この発明による復号器の機能構成を示す図。
【図10】この発明による復号化方法の例を示す流れ図。
【図11】誤差信号生成部313の他の機能構成例を示す図。
【図12】オーディオ信号にこの発明を直接適用した時の従来技術との効果の比較を示す図。
【図13】オーディオ信号の可逆スケーラブル符号化にこの発明を適用した時の性能改善例を示す図。
【図14】符号化の処理時間の従来技術との比較例を示す図。
Claims (6)
- ディジタル信号を、2以上の整数Mビット単位の出現頻度の高いシンボル(以下高頻度シンボルという)の少なくとも1以上の連続する高頻度列と、上記高頻度シンボル以外のMビット単位のシンボル(以下低頻度シンボルという)の少なくとも1以上の連続する低頻度列とから構成されるグループとして、
各グループごとに高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボルとを出力することを特徴とするディジタル信号符号化方法。 - 高頻度シンボルの個数と低頻度シンボルの個数及びその低頻度シンボル列とのグループごとに、上記低頻度シンボル列と、予め決められたビット数のビットパターンよりなるシンボルを上記高頻度シンボルの個数だけ連続させたシンボル列とを連続させて出力することを特徴とするディジタル信号復号化方法。
- ディジタル信号が入力され、そのディジタル信号を、2以上の整数Mビット単位の出現頻度が高いシンボル(以下高頻度シンボルという)の少なくとも1以上の連続する高頻度列と、この高頻度列と連続し、かつ上記高頻度シンボル以外のMビット単位のシンボル(以下低頻度シンボルという)の少なくとも1以上の連続する低頻度列を1つのグループとして判定するグループ判定部と、
上記ディジタル信号が入力され、上記グループごとに、高頻度シンボルの個数を表わす符号と低頻度シンボルの個数を表わす符号及びその低頻度シンボルとを出力する高頻度圧縮部と
を具備するディジタル信号符号器。 - 圧縮符号が入力され、その圧縮符号を、低頻度シンボル個数符号、高頻度シンボル個数符号を分離出力する分離部と、
上記低頻度シンボル個数符号及び上記高頻度シンボル個数符号が入力され、上記低頻度シンボル個数符号が表わす個数だけ上記圧縮符号から低頻度シンボルの列を分離した低頻度シンボル列を生成し、その低頻度シンボル列と連続し、上記高頻度シンボル個数符号が表わす個数だけ連続する予め決められた高頻度シンボルの列を生成する制御部と
を具備するディジタル信号復号器。 - 請求項3記載の符号器としてコンピュータを機能させるための符号化プログラム。
- 請求項4記載の復号器としてコンピュータを機能させるための復号化プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003034918A JP3791793B2 (ja) | 2003-02-13 | 2003-02-13 | ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003034918A JP3791793B2 (ja) | 2003-02-13 | 2003-02-13 | ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004247909A true JP2004247909A (ja) | 2004-09-02 |
JP3791793B2 JP3791793B2 (ja) | 2006-06-28 |
Family
ID=33020480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003034918A Expired - Fee Related JP3791793B2 (ja) | 2003-02-13 | 2003-02-13 | ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3791793B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019528027A (ja) * | 2016-07-29 | 2019-10-03 | フー チャン、カム | Chanフレームワーク、chanコーディング及びchanコード |
-
2003
- 2003-02-13 JP JP2003034918A patent/JP3791793B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019528027A (ja) * | 2016-07-29 | 2019-10-03 | フー チャン、カム | Chanフレームワーク、chanコーディング及びchanコード |
JP7268271B2 (ja) | 2016-07-29 | 2023-05-08 | フー チャン、カム | Chanフレームワーク、chanコーディング及びchanコード |
Also Published As
Publication number | Publication date |
---|---|
JP3791793B2 (ja) | 2006-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4049792B2 (ja) | 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム | |
JP5372886B2 (ja) | 無損失オーディオ復号化方法および記録媒体 | |
Acharya et al. | JPEG2000 standard for image compression: concepts, algorithms and VLSI architectures | |
JP4049793B2 (ja) | 浮動小数点信号可逆符号化方法、復号化方法、及びそれらの装置、プログラム及びその記録媒体 | |
JP5384780B2 (ja) | 無損失オーディオ符号化方法、無損失オーディオ符号化装置、無損失オーディオ復号化方法、無損失オーディオ復号化装置及び記録媒体 | |
JP4482237B2 (ja) | 無損失エンコーダにおけるサイド情報の効率的な符号化 | |
JP4049791B2 (ja) | 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム | |
Fitriya et al. | A review of data compression techniques | |
CN107135004B (zh) | 一种对地震数据流的自适应实时无损压缩方法 | |
US6225922B1 (en) | System and method for compressing data using adaptive field encoding | |
JPH10285048A (ja) | デジタルデータの符号化/復号化方法及び装置 | |
TWI815936B (zh) | 在顯示介面壓縮技術中形成熵編碼組的方法和系統 | |
JPH08204577A (ja) | データ符号化装置、データ復号化装置、データ符号化方法、および、データ復号化方法 | |
Mathpal et al. | A research paper on lossless data compression techniques | |
JP3791793B2 (ja) | ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム | |
JP2006287862A (ja) | 復号化装置 | |
JP2003332914A (ja) | ディジタル信号符号化方法、復号化方法、これらの装置及びプログラム | |
JP2004165776A (ja) | 符号送信方法、符号受信方法、これらの装置及びその各プログラム | |
JP2001211082A (ja) | Pcm信号符号化方法及び復号化方法 | |
TW200937942A (en) | Coding system and method for a bit-plane | |
JP2004226742A (ja) | 量子化装置及び逆量子化装置、並びにそれらの装置を利用可能なオーディオ及び画像の符号化装置及び復号装置 | |
KR100947065B1 (ko) | 무손실 오디오 부호화/복호화 방법 및 장치 | |
JP2934603B2 (ja) | 可変長さコードの復号化方法及びその装置 | |
JP3239664B2 (ja) | 可変長符号復号方法 | |
JP2001339313A (ja) | Pcm信号符号化装置及び復号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060223 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20060223 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060330 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140414 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |