(57)【特許請求の範囲】
【請求項１】
複数のディジタルオーディオファイルに対して所定長毎にブロック化を施し、ブロック処理されたディジタルオーディオファイルに対して圧縮処理を施す符号化装置であって、
上記複数のディジタルオーディオファイルの中から圧縮処理を施す２以上のディジタルオーディオファイルを、該圧縮処理を施す順序で選択する第１の選択手段と、
上記第１の選択手段にて選択された上記２以上のディジタルオーディオファイルのうち、上記圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと、上記第１の選択手段にて選択された上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、上記隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第１の符号化手段と、
上記第１の選択手段にて選択された上記２以上のディジタルオーディオファイルのうち、上記圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックまたは上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、上記隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第２の符号化手段と、
上記第１の符号化手段における符号化処理と上記第２の符号化手段における符号化処理との一方を選択する第２の選択手段とを備えてなる符号化装置。
【請求項２】
上記第１の符号化手段は、上記隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと上記隣接する２つのディジタルオーディオファイルに跨がっているブロックと上記第１の選択手段にて選択された上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックに基づいて、上記隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックを符号化処理する請求項１に記載の符号化装置。
【請求項３】
上記第１の符号化手段は、上記隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと上記隣接する２つのディジタルオーディオファイルに跨がっているブロックと上記第１の選択手段にて選択された上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックに基づいて、上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックを符号化処理する請求項１に記載の符号化装置。
【請求項４】
上記第２の符号化手段は、上記隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと、上記隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて、上記隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックを符号化処理する請求項１に記載の符号化装置。
【請求項５】
上記第２の符号化手段による符号化処理は、上記隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックの、該ディジタルオーディオファイルの終端部以降の端数部分にゼロデータを詰めるものである請求項４に記載の符号化装置。
【請求項６】
上記第２の符号化手段は、上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、上記隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて、上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックを符号化処理する請求項１に記載の符号化装置。
【請求項７】
上記第２の符号化手段による符号化処理は、上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックの、該ディジタルオーディオファイルの始端部以前の端数部分にゼロデータを詰めるものである請求項６に記載の符号化装置。
【請求項８】
複数のディジタルオーディオファイルに対して所定長毎にブロック化を施し、ブロック処理されたディジタルオーディオファイルに対して圧縮処理を施す符号化方法であって、
上記複数のディジタルオーディオファイルの中から圧縮処理を施す２以上のディジタルオーディオファイルを、該圧縮処理を施す順序で選択する第１の選択ステップと、
上記第１の選択ステップにて選択された上記２以上のディジタルオーディオファイルのうち、上記圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと、上記第１の選択ステップにて選択された上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、上記隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第１の符号化ステップと、
上記第１の選択ステップにて選択された上記２以上のディジタルオーディオファイルのうち、上記圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックまたは上記隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、上記隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第２の符号化ステップと、
上記第１の符号化ステップにおける符号化処理と上記第２の符号化ステップにおける符号化処理との一方を選択する第２の選択ステップとを備えてなる符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、オーディオデータ等のディジタル信号に係る符号化装置および符号化方法に関する。
【０００２】
【従来の技術】
オーディオ信号の高能率符号化に係る従来技術として、例えば、時間領域のオーディオ信号を単位時間毎にブロック化し、ブロック毎の時間軸上の信号を周波数軸上の信号に変換（直交変換）して複数の周波数帯域に分割し、各帯域毎に符号化するブロック化周波数帯域分割方式の一つである変換符号化方法が知られている。また、時間領域のオーディオ信号を単位時間毎にブロック化せずに、複数の周波数帯域に分割して符号化する非ブロック化周波数帯域分割方法の一つである帯域分割符号化（サブ・バンド・コーディング（ＳＢＣ：Sub Band Coding ））方法が知られている。
【０００３】
さらに、上述の帯域分割符号化と変換符号化とを組み合わせてなる高能率符号化方法も知られている。この方法では、例えば、帯域分割符号化方式によって分割した各帯域毎の信号を、変換符号化方式によって周波数領域の信号に直交変換し、直交変換された各帯域毎に符号化が施される。
【０００４】
ここで、上述した帯域分割符号化方式に使用される帯域分割用フィルタとしては、例えばＱＭＦ(Quadrature Mirror filter)等のフィルタがある。ＱＭＦについては、例えば、 R.E.Crochiere  Digital coding of speech in subbands Bell Syst.Tech. J. Vol.55, No.8(1976)に述べられている。また、ICASSP 83,  BOSTON Polyphase Quadrature filters-A new subband coding technique JosephH. Rothweiler には、ポリフェーズ  クワドラチャ  フィルタ(Polyphase Quadrature filter) などの等バンド幅のフィルタ分割手法および装置が述べられている。
【０００５】
また、直交変換としては、例えば、入力オーディオ信号を所定単位時間（フレーム）でブロック化し、該ブロック毎に高速フーリエ変換（ＦＦＴ）やコサイン変換（ＤＣＴ）、モディファイドＤＣＴ変換（ＭＤＣＴ）等を行うことで時間軸を周波数軸に変換するような方法が知られている。ＭＤＣＴについては、例えば、ICASSP 1987 Subband/Transform Coding Using Filter Bank Designs Based on Time Domain Aliasing Cancellation J.P.Princen  A.B.Bradley Univ. of Surrey Royal Melbourne Inst.of Tech.  に述べられている。
【０００６】
一方、周波数帯域分割された各周波数成分を量子化する際に、人間の聴覚特性を考慮した周波数分割幅を用いる符号化方法が知られている。すなわち、臨界帯域（クリティカルバンド）と呼ばれる、帯域幅が高域程広くなるような帯域幅が広く用いられている。このような臨界帯域を用いてオーディオ信号を複数バンド（例えば２５バンド）の帯域に分割することがある。このような帯域分割方法によれば、各帯域毎のデータを符号化する際に、各帯域毎に所定のビット配分、或いは各帯域毎に適応的なビット配分による符号化が行われる。例えば、ＭＤＣＴ処理によって生成されるＭＤＣＴ係数データを上述したようなビット配分によって符号化する場合には、各ブロック毎に対応して生成される各帯域毎のＭＤＣＴ係数データに対して適応的なビット数が配分され、そのようなビット数配分の下で符号化が行われる。
【０００７】
このようなビット配分方法およびそれを実現する装置についての公知文献として、例えば以下のようなものが挙げられる。まず、例えばIEEE Transactions of Accoustics,Speech,and Signal Processing,vol.ASSP-25,No.4,August(1977)には、各帯域毎の信号の大きさに基づいてビット配分を行う方法が記載されている。また、例えばICASSP 1980 Thecritical band coder--digital encoding of  the perceptual requirements of the auditory system M.A. Kransner MIT には、聴覚マスキングを利用することによって各帯域毎に必要な信号対雑音比を得て固定的なビット配分を行う方法が記載されている。
【０００８】
また、各帯域毎の符号化に際しては、各帯域毎に正規化を行って量子化を行うことにより、より効率的な符号化を実現するいわゆるブロックフローティング処理が行われている。例えば、ＭＤＣＴ処理によって生成されるＭＤＣＴ係数データを符号化する際には、各帯域毎に上述のＭＤＣＴ係数の絶対値の最大値等に対応した正規化を行った上で量子化を行うことにより、より効率的な符号化が行われる。正規化処理は例えば以下のように行われる。すなわち、予め番号付けされた複数種類の値を用意し、それら複数種類の値の内で各ブロックについての正規化に係るものを所定の演算処理によって決定し、決定した値に付されている番号を正規化情報として使用する。複数種類の値に対応する番号付けは、例えば、番号の１の増減に、オーディオレベルの２ｄＢの増減が対応する等の一定の関係の下で行われる。
【０００９】
上述したような方法で生成される高能率符号化データは、次のようにして復号化される。まず、各帯域毎のビット配分情報、正規化情報等を参照して、符号化データに基づいてＭＤＣＴ係数データを生成する処理がなされる。このＭＤＣＴ係数データに基づいていわゆる逆直交変換（ＩＭＤＣＴ）が行われることにより、時間領域のデータが生成される。高能率符号化の過程で帯域分割用フィルタによる帯域分割が行なわれていた場合は、帯域合成フィルタを用いて時間領域のデータを合成する処理がさらになされる。
【００１０】
上述した符号化に用いられている直交変換のＭＤＣＴ処理、並びに復号化に用いられている、逆直交変換のＩＭＤＣＴ処理では、処理を行うフレーム間の不連続性を防止するために、いわゆるオーバーラップ処理が利用されている。ある楽曲を符号化し、また、復号化する時には、当該楽曲の始点および終点については、このオーバーラップおよび変換サイズを考慮した適合処理が行われる。
【００１１】
上述した方法での高能率符号化は、基本的には楽曲単位で行われるが、大量の楽曲を高能率符号化処理するような場合、各楽曲の処理の終了毎に、ユーザが次の楽曲の処理の開始を促すのは非効率的であるため、通常、あらかじめ所望の楽曲を選択して、自動的に選択された楽曲が高能率符号化されるような処理が行われる。より具体的には、電子音楽配信の配信用サーバでは、ハードディスクに大量のＰＣＭファイルを格納し、コンピュータソフトウェア処理によって高速に高能率符号化の処理がなされる。
【００１２】
【発明が解決しようとする課題】
配信用サーバのように、大量の楽曲を自動的に高能率符号化処理する場合、楽曲単位で高能率符号化が行われるので、各楽曲に対して、始点および終点における、直交変換におけるオーバーラップおよび変換サイズを考慮した適合処理を行うことになる。楽曲によっては、他の楽曲との相関関係がある場合、例えば当該楽曲の始点が他の楽曲の終点との連続性を保つような場合がある。具体例としては、ライブ版、リミックス、ダンス系等の音楽では、楽曲同士が無音期間を介することなくつながっていることがある。このような場合でも、上述したような始点および終点における適合処理を楽曲毎に独立して行うと、高能率符号化処理後のデータは、楽曲間の連続性を失ってしまう問題がある。復号化においても同様の問題が発生する。楽曲間に連続性があるものを処理する場合には、始点および終点における適合処理を行わずに、楽曲間データを連続的に処理することが望ましい。
【００１３】
したがって、この発明の目的は、複数の楽曲を符号化または復号化の処理を行う場合、処理の対象の楽曲の連続性を応じて、始点および終点における適合処理を行い、楽曲毎に独立して処理を行うか、または適合処理を行わずに、楽曲間を連続的に処理を行うかの選択を行うことによって、上述した問題を解決することができる符号化装置および符号化方法を提供することにある。
【００１４】
【課題を解決するための手段】
請求項１の発明は、複数のディジタルオーディオファイルに対して所定長毎にブロック化を施し、ブロック処理されたディジタルオーディオファイルに対して圧縮処理を施す符号化装置であって、
複数のディジタルオーディオファイルの中から圧縮処理を施す２以上のディジタルオーディオファイルを、圧縮処理を施す順序で選択する第１の選択手段と、
第１の選択手段にて選択された２以上のディジタルオーディオファイルのうち、圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと、第１の選択手段にて選択された隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第１の符号化手段と、
第１の選択手段にて選択された２以上のディジタルオーディオファイルのうち、圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックまたは隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第２の符号化手段と、
第１の符号化手段における符号化処理と第２の符号化手段における符号化処理との一方を選択する第２の選択手段とを備えてなる符号化装置である。
【００１６】
請求項８の発明は、複数のディジタルオーディオファイルに対して所定長毎にブロック化を施し、ブロック処理されたディジタルオーディオファイルに対して圧縮処理を施す符号化方法であって、
複数のディジタルオーディオファイルの中から圧縮処理を施す２以上のディジタルオーディオファイルを、圧縮処理を施す順序で選択する第１の選択ステップと、
第１の選択ステップにて選択された２以上のディジタルオーディオファイルのうち、圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックと、第１の選択ステップにて選択された隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第１の符号化ステップと、
第１の選択ステップにて選択された２以上のディジタルオーディオファイルのうち、圧縮処理を施す順序で隣接するディジタルオーディオファイルの前方に位置するディジタルオーディオファイルの終端部近傍のブロックまたは隣接するディジタルオーディオファイルの後方に位置するディジタルオーディオファイルの始端部近傍のブロックと、隣接する２つのディジタルオーディオファイルに跨がっているブロックとに基づいて符号化処理を施す第２の符号化ステップと、
第１の符号化ステップにおける符号化処理と第２の符号化ステップにおける符号化処理との一方を選択する第２の選択ステップとを備えてなる符号化方法である。
【００２０】
以上のような発明によれば、連続性を考慮した処理と、連続性を考慮しない処理とを選択することが可能となり、元々のデータの特徴に応じた処理が可能となる。
【００２１】
【発明の実施の形態】
この発明の一実施形態について、以下、図面を参照して説明する。一実施形態では、オーディオＰＣＭ信号等の入力ディジタル信号を、帯域分割符号化（ＳＢＣ）、適応変換符号化（ＡＴＣ）および適応ビット割当の技術を用いて高能率符号化する。この高能率符号化技術について、図１を参照して説明する。
【００２２】
図１に示す高能率符号化装置では、入力ディジタル信号を複数の周波数帯域に分割すると共に、各周波数帯域毎に直交変換を行って、得られた周波数軸のスペクトルデータを、低域では、後述する人間の視覚特性を考慮したいわゆる臨界帯域幅（クリティカルバンド）毎に、中高域では、ブロックフローティング効率を考慮して臨界帯域幅を細分化した帯域毎に、適応的にビット割当して符号化している。通常このブロックが量子化雑音発生ブロックとなる。さらに、一実施形態においては、直交変換の前に入力信号に応じて適応的にブロックサイズ（ブロック長）を変化させている。
【００２３】
例えばサンプリング周波数が４４．１ｋＨｚの場合、入力端子１００を介して０〜２２ｋＨｚのオーディオＰＣＭ信号がＱＭＦフィルタ等の帯域分割フィルタ１０１に供給される。帯域分割フィルタ１０１は、供給される信号を０〜１１ｋＨｚ帯域と１１ｋＨｚ〜２２ｋＨｚ帯域とに分割する。１１〜２２ｋＨｚ帯域の信号はＭＤＣＴ(Modified Discrete Cosine Transform)回路１０３およびブロック決定回路１０９、１１０、１１１に供給される。
【００２４】
また、０ｋＨｚ〜１１ｋＨｚ帯域の信号は帯域分割フィルタ１０２に供給される。帯域分割フィルタ１０２は、供給される信号を５. ５ｋＨｚ〜１１ｋＨｚ帯域と０〜５. ５ｋＨｚ帯域とに分割する。５．５〜１１ｋＨｚ帯域の信号はＭＤＣＴ回路１０４およびブロック決定回路１０９、１１０、１１１に供給される。また、０〜５. ５ｋＨｚ帯域の信号は、ＭＤＣＴ回路１０５およびブロック決定回路１０９、１１０、１１１に供給される。帯域分割フィルタ１０１、１０２は、例えばＱＭＦフィルタ等を用いて構成することができる。ブロック決定回路１０９は、供給される信号に基づいてブロックサイズを決定し、決定したブロックサイズを示す情報をＭＤＣＴ回路１０３および出力端子１１３に供給する。
【００２５】
ブロック決定回路１１０は、供給される信号に基づいてブロックサイズを決定し、決定したブロックサイズを示す情報をＭＤＣＴ回路１０４および出力端子１１５に供給する。ブロック決定回路１１１は、供給される信号に基づいてブロックサイズを決定し、決定したブロックサイズを示す情報をＭＤＣＴ回路１０５お。よび出力端子１１７に供給する。ブロックサイズブロック決定回路１１０、１１１、１１２は、供給される信号の時間特性、周波数分布に応じて適応的にブロックサイズ（ブロック長）を設定する。
【００２６】
ＭＤＣＴ回路１０３、１０４、１０５は、供給される信号に基づいてＭＤＣＴ処理を行い、ＭＤＣＴ係数データまたは周波数軸上のスペクトルデータを生成する。ＭＤＣＴ回路１０３が生成する高域のＭＤＣＴ係数データまたは周波数軸上のスペクトルデータは、ブロックフローティングの有効性を考慮して臨界帯域幅を細分化する処理を施された後に適応ビット割当符号化回路１０６およびビット割当算出回路１１８に供給される。ＭＤＣＴ回路１０４が生成する中域のＭＤＣＴ係数データまたは周波数軸上のスペクトルデータは、ブロックフローティングの有効性を考慮して臨界帯域幅を細分化する処理を施された後に適応ビット割当符号化回路１０７およびビット割当算出回路１１８に供給される。
【００２７】
ＭＤＣＴ回路１０５が生成する低域のＭＤＣＴ係数データまたは周波数軸上のスペクトルデータは、臨界帯域（クリティカルバンド）毎にまとめる処理を施された後に適応ビット割当符号化回路１０８およびビット割当算出回路１１８に供給される。ここで、臨界帯域とは、人間の聴覚特性を考慮して分割された周波数帯域であり、ある純音の周波数近傍の同じ強さの狭帯域バンドノイズによって当該純音がマスクされる時に、当該狭帯域バンドノイズの帯域のことである。臨界帯域は、高域ほど帯域幅が広くなるという性質がある。０〜２２ｋＨｚの全周波数帯域は、例えば２５のクリティカルバンドに分割されている。
【００２８】
ビット割当算出回路１１８は、供給されるＭＤＣＴ係数データまたは周波数軸上のスペクトルデータ、およびブロックサイズ情報に基づいて、後述するようなマスキング効果等を考慮して上述の臨界帯域およびブロックフローティングを考慮した各分割帯域毎のマスキング量、エネルギーおよび或いはピーク値等を計算し、計算結果に基づいて各帯域毎にブロックフロ−ティングの状態を示すスケ−ルファクタ、および割当てビット数を計算する。計算された割当てビット数は、適応ビット割当符号化回路１０６、１０７、１０８に供給される。以下の説明において、ビット割当の単位とされる各分割帯域を単位ブロックと表記する。
【００２９】
適応ビット割当符号化回路１０６は、ブロック決定回路１０９から供給されるブロックサイズ情報、ビット割当算出回路１１８から供給される割当ビット数および正規化情報としてのスケールファクタ情報に応じて、ＭＤＣＴ回路１０３から供給されるスペクトルデータまたはＭＤＣＴ係数データを再量子化（正規化して量子化）する処理を行う。かかる処理の結果として、高能率符号化データが生成される。この高能率符号化は演算器１２０に供給される。適応ビット割当符号化回路１０７は、ブロック決定回路１１０から供給されるブロックサイズ情報、ビット割当算出回路１１８から供給される割当ビット数およびスケールファクタ情報に応じて、ＭＤＣＴ回路１０４から供給されるスペクトルデータまたはＭＤＣＴ係数データを再量子化する処理を行う。かかる処理の結果として、高能率符号化データが生成される。この高能率符号化データが演算器１２１に供給される。
【００３０】
適応ビット割当符号化回路１０８は、ブロック決定回路１１０から供給されるブロックサイズ情報、ビット割り当て算出回路１１８から供給される割当ビット数およびスケールファクタ情報に応じて、ＭＤＣＴ回路１０５から供給されるスペクトルデータまたはＭＤＣＴ係数データを再量子化する。かかる処理の結果として、高能率符号化データが生成される。この高能率符号化データは演算器１２２に供給される。正規化情報変更回路１１９、および演算器１２０、１２１、１２２については後述する。
【００３１】
図２に、ＭＤＣＴ回路１０３，１０４，１０５に供給される、各帯域毎のデータの例を示す。ブロック決定回路１０９，１１０，１１１の動作により、帯域分割フィルタ１０１、１０２から出力される計３個のデータについて、各帯域毎について独立に直交変換ブロックサイズを設定することができると共に、信号の時間特性、周波数分布等により時間分解能を切り換えることが可能とされている。すなわち、信号が時間的に準定常的である場合には、図２Ａに示すような、直交変換ブロックサイズを例えば１１．６ｍｓと大きくするＬｏｎｇ  Ｍｏｄｅが用いられる。
【００３２】
一方、信号が非定常的である場合には、直交変換ブロックサイズをＬｏｎｇ  Ｍｏｄｅ時に比べて２分割または４分割とするモードが用いられる。より具体的には、全てを４分割して例えば２．９ｍｓとするＳｈｏｒｔ  Ｍｏｄｅ（図２Ｂ参照）、或いは、一部を２分割して例えば５．８ｍｓとし、他の一部を４分割して例えば２．９ｍｓとするＭｉｄｄｌｅＭｏｄｅ−ａ（図２Ｃ参照）または、Ｍｉｄｄｌｅ  Ｍｏｄｅ−ｂ（図２Ｄ参照）が用いられる。このように時間分解能を様々に設定することにより、実際の複雑な入力信号に適応できるようになされる。
【００３３】
回路規模等に係る制約が小さい場合には、直交変換ブロックサイズの分割をさらに複雑なものとすることにより、実際の入力信号をより適切に処理できることは明白である。上述したようなブロックサイズは、ブロック決定回路１０９，１１０，１１１によって決定され、決定されたブロックサイズの情報はＭＤＣＴ回路１０３，１０４，１０５およびビット割り当て算出回路１１８に供給されると共に、出力端子１１３、１１５、１１７を介して出力される。
【００３４】
次に、図３を参照して、ビット割当て算出回路１１８について詳細に説明する。入力端子３０１を介して、ＭＤＣＴ回路１０３、１０４、１０５からの周波数軸上のスペクトルデータまたはＭＤＣＴ係数、およびブロック決定回路１０９、１１０、１１１からのブロックサイズ情報がエネルギー算出回路３０２に供給される。エネルギー算出回路３０２は、例えば当該単位ブロック内での各振幅値の総和を計算する等の方法で単位ブロック毎のエネルギーを計算する。なお、エネルギー算出回路３０２の代わりに振幅値のピーク値、平均値等を計算する構成を設け、振幅値のピーク値、平均値等の計算値に基づいてビット割当て処理を行うようしても良い。
【００３５】
エネルギー算出回路３０２の出力の一例を図４に示す。図４では、各バンド毎の総和値のスペクトルＳＢを、先端に丸を付した縦方向の線分によって示す。ここで、横軸が周波数、縦軸が信号強度をそれぞれ示す。なお、図示が煩雑となるのを避けるため、図４では、単位ブロックによる分割数を１２ブロック（Ｂ１〜Ｂ１２）とし、Ｂ１２のスペクトルのみに符号「ＳＢ」を付した。
【００３６】
また、エネルギー算出回路３０２は、単位ブロックのブロックフローティングの状態を示す正規化情報であるスケールファクタ値を決定する処理を行う。具体的には、例えばあらかじめスケールファクタ値の候補として幾つかの正の値を用意し、それらの内、単位ブロック内のスペクトルデータ又はＭＤＣＴ係数の絶対値の最大値以上の値をとるものの中で最小のものを当該単位ブロックのスケールファクタ値として採用する。スケールファクタ値の候補は、実際の値と対応した形で、例えば数ビットを用いて番号付けを行ない、その番号を図示しないＲＯＭ（Read Only Memory) 等に記憶させておけば良い。この際に、スケールファクタ値の候補は、番号順に例えば２ｄＢの間隔での値を持つように規定しておく。ある単位ブロックについて採用されたスケールファクタ値に付される番号がサブ情報として用いられ、当該単位ブロックについてのスケールファクタ情報とされる。
【００３７】
エネルギー算出回路３０２の出力、すなわち、スペクトルＳＢの各値は、畳込みフイルタ回路３０３に送られる。畳込みフイルタ回路３０３は、例えば、入力データを順次遅延させる複数の遅延素子と、これら遅延素子からの出力にフイルタ係数（重み付け関数）を乗算する複数の乗算器と、各乗算器出力の総和をとる総和加算器とから構成することができる。畳込みフイルタ回路３０３は、スペクトルＳＢのマスキングにおける影響を考慮するための、スペクトルＳＢに所定の重み付け関数を掛けて加算するような畳込み（コンボリユーション）処理を施す。この畳込み処理により、図４中で点線で示す部分の総和が計算される。
【００３８】
図３に戻り、畳込みフイルタ回路３０３の出力は演算器３０４に供給される。演算器３０４には、さらに、許容関数（マスキングレベルを表現する関数）が（ｎ−ａｉ）関数発生回路３０５から供給される。演算器３０４は、許容関数に従って、畳込みフイルタ回路３０３によって畳み込まれた領域における、許容可能なノイズレベルに対応するレベルαを計算する。ここで、許容可能なノイズレベル（許容ノイズレベル）に対応するレベルαとは、後述するように、逆コンボリユーション処理を行うことによって、クリテイカルバンドの各バンド毎の許容ノイズレベルとなるようなレベルである。レベルαの算出値は、許容関数を増減させることによって制御される。
【００３９】
すなわち、許容ノイズレベルに対応するレベルαは、クリテイカルバンドのバンドの低域から順に与えられる番号をｉとすると、次の式（１）で求めることができる。
【００４０】
α＝Ｓ−（ｎ−ａｉ）    （１）
【００４１】
式（１）において、ｎ，ａは定数でａ＞０、Ｓは畳込み処理されたスペクトルの強度であり、式（１）中（ｎ−ａｉ）が許容関数となる。一例としてｎ＝３８，ａ＝１とすることができる。
【００４２】
演算器３０４によって計算されるレベルαが割算器３０６に伝送される。割算器３０６は、レベルαを逆コンボリユーションする処理を行い、その結果としてレベルαからマスキングスペクトルを生成する。このマスキングスペクトルが許容ノイズスペクトルとなる。なお、逆コンボリユーション処理を行う場合、一般的には複雑な演算が行われる必要があるが、この発明の一実施形態では、簡略化した割算器３０６を用いて逆コンボリユーションを行っている。マスキングスペクトルは、合成回路３０７に供給される。合成回路３０７には、さらに、後述するような最小可聴カーブＲＣを示すデータが最小可聴カーブ発生回路３１２から供給される。
【００４３】
合成回路３０７は、割算器３０６の出力であるマスキングスペクトルと最小可聴カーブＲＣのデータとを合成することにより、マスキングスペクトルを生成する。生成されるマスキングスペクトルが減算器３０８に供給される。減算器３０８には、さらに、エネルギー検出回路３０２の出力、すなわち帯域毎のスペクトルＳＢが遅延回路３０９によってタイミングを調整された上で供給される。減算器３０８は、マスキングスペクトルとスペクトルＳＢとに基づく減算処理を行う。
【００４４】
かかる処理の結果として、ブロック毎のスペクトルＳＢの、マスキングスペクトルのレベル以下の部分がマスキングされる。図５に、マスキングの一例を示す。スペクトルＳＢにおける、マスキングスペクトルのレベル（ＭＳと表記する）以下の部分がマスキングされていることがわかる。なお、図示が煩雑となるのを避けるため、図５中ではＢ１２においてのみ、スペクトルに符号「ＳＢ」を付すと共にマスキングスペクトルのレベルに符号「ＭＳ」を付した。
【００４５】
雑音絶対レベルが最小可聴カーブＲＣ以下ならばその雑音は人間には聞こえないことになる。最小可聴カーブは、コーデイングが同じであっても例えば再生時の再生ボリユームの違いによって異なる。但し、実際のデジタルシステムでは、例えば１６ビットダイナミックレンジへの音楽データの入り方にはさほど違いがないので、例えば４ｋＨｚ付近の最も耳に聞こえやすい周波数帯域の量子化雑音が聞こえないとすれば、他の周波数帯域ではこの最小可聴カーブのレベル以下の量子化雑音は聞こえないと考えられる。
【００４６】
従って、例えばシステムの持つワードレングスの４ｋＨｚ付近の雑音が聞こえないような使い方をする場合、最小可聴カーブＲＣとマスキングスペクトルＭＳとを合成することによって許容ノイズレベルを得るようにすれば、この場合の許容ノイズレベルは図６中の斜線で示す部分となる。なお、ここでは、最小可聴カーブの４ｋＨｚのレベルを例えば２０ビット相当の最低レベルに合わせている。図６では、各ブロック内の水平方向の実線としてＳＢ、各ブロック内の水平方向の点線としてＭＳをそれぞれ示した。但し、図示が煩雑となるのを避けるため、図６ではＢ１２のスペクトルのみについて符号「ＳＢ」、「ＭＳ」を付した。また、図６では、信号スペクトルＳＳを一点鎖線で示した。
【００４７】
図３に戻り、減算器３０８の出力は許容雑音補正回路３１０に供給される。許容雑音補正回路３１０は、例えば等ラウドネスカーブのデータ等に基づいて、減算器３０８の出力における許容雑音レベルを補正する。すなわち、許容雑音補正回路３１０は、上述したマスキング、聴覚特性等の様々なパラメータに基いて、各単位ブロックに対する割当ビットを算出する。許容雑音補正回路３１０の出力は、出力端子３１１を介して、ビット割当算出回路１１８の最終的な出力データとして出力される。ここで、等ラウドネスカーブとは、人間の聴覚特性に関する特性曲線であり、例えば１ｋＨｚの純音と同じ大きさに聞こえる各周波数での音の音圧を求めて曲線で結んだもので、ラウドネスの等感度曲線とも呼ばれる。
【００４８】
また、この等ラウドネスカーブは、図６に示した最小可聴カーブＲＣと同じ曲線を描く。この等ラウドネスカーブにおいては、例えば４ｋＨｚ付近では１ｋＨｚのところより音圧が８〜１０ｄＢ下がっても１ｋＨｚと同じ大きさに聞こえ、逆に、５０Ｈｚ付近では１ｋＨｚでの音圧よりも約１５ｄＢ高くないと同じ大きさに聞こえない。このため、最小可聴カーブＲＣのレベルを越える雑音（許容ノイズレベル）が等ラウドネスカーブに沿った周波数特性を持つようにすれば、その雑音が人間に聞こえないようにすることができる。
【００４９】
等ラウドネスカーブを考慮して許容ノイズレベルを補正することは、人間の聴覚特性に適合していることがわかる。以上のように、ビット割当算出回路１１８では、メイン情報としての直交変換出力スペクトルをサブ情報によって処理したデータと、サブ情報としてのブロックフローティングの状態を示すスケールファクタおよび語調を示すワードレンクスが得られる。これらの情報に基づいて、図１中の適応ビット符号化回路１０６、１０７、１０８が再量子化を行って、符号化フォーマットに従う高能率符号化データを生成する。
【００５０】
図１に戻り、正規化情報変更回路１１９について説明する。上述したように、エネルギー算出回路３０２によって決定されるスケールファクタ情報を操作することにより、例えば２ｄＢ毎のレベル調整を行うことができる。正規化情報変更回路１１９は、スケールファクタ情報の変更に係る値を生成し、生成した値をそれぞれ、演算器１２０、１２１、１２２に供給する。演算器１２０は、１２１、１２２は、それぞれ、適応ビット割当符号化回路１０６、１０７、１０８から供給される符号化データ中のスケールファクタ情報に、正規化情報変更回路１１９から供給される値を加算する。但し、正規化情報変更回路１１９から出力される値が負の場合は、演算器１２０、１２１、１２２は減算器として作用するものとする。この際の加算結果については、フォーマットで定められたスケールファクタの数値の範囲内に収まるような制限を行う。
【００５１】
なお、スケールファクタ情報に加算すべき値として、正規化情報変更回路１１９が全単位ブロックに対して同一の値を出力する場合にはレベル調整処理が行われるが、正規化情報変更回路１１９が単位ブロック毎に異なる値を出力するようにすれば、例えばフィルタ処理等を実現できる。フィルタ処理等を行う場合には、正規化情報変更回路１１９は、スケールファクタ情報に加算すべき値と、その値が加算されるべきスケールファクタ情報をに係る単位ブロックの番号との組を出力する。以上のような正規化情報調整処理は、後述する復号化の場合に実現することも可能である。
【００５２】
次に、高能率符号化データの符号化フォーマットについて、図７を参照して説明する。左側に示した数値０，１，２，‥‥，２１１はバイト数を表しており、この一例では２１２バイトを１フレームの単位としている。先頭の０バイト目の位置には、図１中のブロック決定回路１０９、１１０、１１１において決定された、各帯域のブロックサイズ情報を記録する。次の１バイト目の位置には、記録する単位ブロックの個数の情報を記録する。例えば高域側になる程、ビット割当算出回路１１８によってビット割当が０とされて記録が不必要となる場合が多いため、このような状況に対応するように単位ブロックの個数を設定することにより、聴感上の影響が大きい中低域に多くのビットを配分するようになされている。それと共に、かかる１バイト目の位置にはビット割当情報の２重書きを行なっている単位ブロックの個数、及びスケールファクタ情報の２重書きを行なっている単位ブロックの個数が記録される。
【００５３】
２重書きとは、エラー訂正用に、あるバイト位置に記録されたデータと同一のデータを他の場所に記録する方法である。２重書きされるデータの量を多くする程、エラーに対する強度が向上するが、２重書きされるデータの量を少なくする程、スペクトラムデータに使用できるデータ容量が多くなる。この符号化フォーマットの一例では、ビット割当情報、スケールファクタ情報のそれぞれについて独立に２重書きを行なう単位ブロックの個数を設定することにより、エラーに対する強度と、スペクトラムデータを記録するために使用されるビット数とを適切なものとするようにしている。なお、それぞれの情報について、規定されたビット内でのコードと単位ブロックとの個数の対応は、あらかじめフォーマットとして定めている。
【００５４】
１バイト目の位置の８ビットにおける記録内容の一例を図８に示す。ここでは、最初の３ビットを実際に記録される単位ブロックの個数の情報とし、後続の２ビットをビット割当情報の２重書きを行なっている単位ブロックの個数の情報とし、最後の３ビットをスケールファクタ情報の２重書きを行なっている単位ブロックの個数の情報とする。
【００５５】
図８において、２バイト目からの位置には、単位ブロックのビット割当情報が記録される。ビット割当情報の記録のために、単位ブロック１個当たり例えば４ビットが使用される。これにより、０番目の単位ブロックから順番に記録される単位ブロックの個数分のビット割当情報が記録されることになる。ビット割当情報のデータの後に、各単位ブロックのスケールファクタ情報が記録される。スケールファクタ情報の記録のために、単位ブロック１個当たり例えば６ビットが使用される。これにより、０番目の単位ブロックから順番に記録される単位ブロックの個数分のスケールファクタ情報が記録される。
【００５６】
スケールファクタ情報の後に、単位ブロック内のスペクトラムデータが記録される。スペクトラムデータは、０番目の単位ブロックより順番に、実際に記録させる単位ブロックの個数分記録される。各単位ブロック毎に何本のスペクトラムデータが存在するかは、あらかじめフォーマットで定められているので、上述したビット割当情報によりデータの対応をとることが可能となる。なお、ビット割当が０の単位ブロックについては記録を行なわない。
【００５７】
このスペクトラム情報の後に、上述したスケールファクタ情報の２重書き、およびビット割当情報の２重書きを行なう。この２重書きの記録方法は、個数の対応を図８に示した２重書きの情報に対応させるだけで、その他の点については上述のスケールファクタ情報、およびビット割当情報の記録と同様である。最後のバイトすなわち２１１バイト目、およびその１バイト前の位置すなわち２１０バイト目には、それぞれ、０バイト目と１バイト目の情報が２重書きされる。これら２バイト分の２重書きはフォーマットとして定められており、スケールファクタ情報の２重書きやビット割当情報の２重書きのように、２重書き記録量の可変の設定はできない。
【００５８】
次に、高能率符号化データを復号化する復号化処理について説明する。復号化処理系の構成の一例を図９に示す。高能率符号化データは、入力端子７０７を介して演算器７１０に供給される。また、符号化処理において使用されたブロックサイズ情報、すなわち図１中の出力端子１１３、１１５、１１７の出力信号と等価のデータが入力端子７０８に供給される。また、正規化情報変更回路７０９は、各単位ブロックのスケールファクタ情報に加算または減算すべき値を生成する。
【００５９】
演算器７１０は、さらに、正規化情報変更回路７０９から数値データを供給される。演算器７１０は、供給される高能率符号化データ中のスケールファクタ情報に対して、正規化情報変更回路７０９から供給される数値データを加算する。但し、正規化情報変更回路７０９から供給される数値データが負の数の場合は、演算器７１０は減算器として作用するものとする。演算器７１０の出力は、適応ビット割当復号化回路７０６、および出力端子７１１に供給される。
【００６０】
適応ビット割当復号化回路７０６は、適応ビット割当情報を参照してビット割当てを解除する処理を、高域、中域、低域の各帯域について行う。高域、中域、低域のそれぞれに対する適応ビット割当て復号化回路７０６の出力は、逆直交変換回路７０３、７０４、７０５に供給される。逆直交変換回路７０３、７０４、７０５は、供給されるデータを逆直交変換処理する。これにより、周波数軸上の信号が時間軸上の信号に変換される。逆直交変換回路７０３、７０４、７０５の出力である、部分帯域の時間軸上信号は、帯域合成フィルタ７０１、７０２によって合成され、全帯域信号に復号化される。帯域合成フィルタ７０１、７０２としては、例えばＩＱＭＦ(Inverse Quadrature Mirror filter)等を使用することができる。
【００６１】
演算器７１０による加算または減算によってスケールファクタ情報を操作することにより、再生データについて例えば２ｄＢ毎のレベル調整を行うことができる。例えば、正規化情報変更回路７０９から全て同じ数値を出力し、その数値を全単位ブロックのスケールファクタ情報に一律に加算または減算する処理により、全単位ブロックに対して２ｄＢを単位とするレベル調整を行うことが可能とされる。
【００６２】
また、例えば、正規化情報変更回路７０９から単位ブロック毎に独立な数値を出力し、それらの数値を各単位ブロックのスケールファクタ情報に加算または減算する処理によって単位ブロック毎のレベル調整を行うことができ、その結果としてフィルタ機能を実現することができる。より具体的には、正規化情報変更回路７０９が単位ブロックの番号と、当該単位ブロックのスケールファクタ情報に加算または減算すべき値との組を出力させる等の方法で、単位ブロックと当該単位ブロックのスケールファクタ情報に加算または減算すべき値とが対応付けられるようにする。なお、演算器７１０による加算または減算の結果として生成されるスケールファクタ情報は、対応するスケールファクタ値が高能率符号化データのフォーマットで定められた範囲に収まるように制限される。
【００６３】
演算器７１０によって単位ブロックのレベル調整が行われたスケールファクタ値については、適応ビット割当復号化回路７０６の復号化の行程に使用されることにより、復号化信号のレベル調整を行うのみに利用することが可能であると共に、例えば符号化情報が記録された記録媒体よりスケールファクタ値を読み込み、調整が行われたスケールファクタ値を出力端子７１１に出力させ、記録媒体に記録されたスケールファクタ値を調整された値に変更することも可能である。記録媒体の情報の変更については、必要に応じて行えるものとする。これによって、非常に簡単なシステムで、記録媒体のレベル情報を変更することが可能となる。
【００６４】
上述の説明では、符号化回路、復号化回路の双方においてスケールファクタ情報の変更処理を行うものとした。これに対して、復号化回路のみにおいてスケールファクタ情報の変更処理を行うようにした場合にも、変更処理の結果として、レベル調整、フィルタ処理等の機能を充分に得ることができる。
【００６５】
次に、上述した高能率符号化における処理を行う時間単位について説明する。図１における入力端子１００には、オーディオのＰＣＭサンプルが供給されるが、入力後に行われるＭＤＣＴ回路１０３，１０４，１０５によるＭＤＣＴ処理においては、いわゆる直交変換処理を行うためのサンプル数が規定され、それが一つの単位となり、繰り返し処理がなされる。
【００６６】
ここでは、入力端子１００から入力された１０２４サンプルのＰＣＭサンプルが５１２本のＭＤＣＴ係数、またはスペクトラムデータとして、ＭＤＣＴ回路１０３，１０４，１０５より出力される。具体的には、入力端子１００から入力された１０２４個のＰＣＭサンプルが帯域分割フィルタ１０１によって、５１２個の高域サンプルと５１２個の低域サンプルと２５６個の中域サンプルとなる。その後に、帯域分割フィルタ１０２からの２５６個の低域サンプルは、ＭＤＣＴ回路１０５によって、１２８個の低域スペクトラムデータとなり、帯域分割フィルタ１０２からの２５６個の中域サンプルは、ＭＤＣＴ回路１０４によって、１２８個の中域スペクトラムデータとなり、帯域分割フィルタ１０１からの５１２個の高域サンプルは、ＭＤＣＴ回路１０３によって、２５６個の高域スペクトラムデータとなる。このように、合計５１２個のスペクトラムデータが１０２４個のＰＣＭサンプルから作成される。この１０２４個のＰＣＭサンプルが上述した高能率符号化の１回の処理を行う時間単位となり、図７に示した２１２バイトの高能率符号化データ、すなわち、１フレームとなる。
【００６７】
上述したように、１フレームは、例えば１０２４個のＰＣＭサンプルからなるが、図１中のＭＤＣＴ回路１０３，１０４，１０５によるＭＤＣＴ処理においては、通常、順次処理されていく各フレームにおいてオーバーラップ部分が生じる。ＰＣＭサンプルとフレームの関係を図１０を用いて説明する。図１０に示すように、例えば、ｎ番目からｎ＋１０２３番目までの１０２４個のＰＣＭサンプルがＮ番目のフレームで処理される場合に、Ｎ＋１番目のフレームでは、ｎ＋５１２番目からｎ＋１５３５番目までの１０２４個のＰＣＭサンプルが処理され、Ｎ＋２番目のフレームでは、ｎ＋１０２４番目からｎ＋２０４７番目までの１０２４個のＰＣＭサンプルが処理される。このように、一つのフレームは、隣接するサウンドフレームと、５１２個のＰＣＭサンプルのオーバーラップを持つ形となる。つまり、このような形で処理を行うと、高能率符号化情報の１フレームは、１０２４個のＰＣＭサンプルを処理したものであるが、隣接フレームとのオーバーラップを考慮すると、５１２個のＰＣＭサンプル相当ということになる。
【００６８】
図１０は、ＰＣＭサンプルの途中でのフレームとの対応を示しているが、ＰＣＭサンプルの始点については、例えば始点より以前の段階に５１２個の０データのＰＣＭサンプルを想定して、これらの５１２個の０データのＰＣＭサンプルを、最初のフレーム以前の仮想的なフレームとオーバーラップして処理するものとする。また、最後のフレームでは、サンプル列終了時点以後に５１２個の０データのＰＣＭサンプルを想定して、それら５１２個の０データのＰＣＭサンプルを、最後のフレーム以後の仮想的なフレームとオーバーラップして処理するものとする。
【００６９】
次に、上述した符号化または復号化方法について、いわゆるパソコン上のソフトウエアとして処理する方法について説明する。パソコン上での処理としては、主にハードディスク上のＰＣＭのデータファイルを高能率符号化することにより、ハードディスク上に高能率符号化データファイルを作成する、またはハードディスク上の高能率符号化データファイルを復号化処理することによりハードディスク上にＰＣＭのデータファイルを作成することが考えられる。この時、通常一つの楽曲が一つのファイルに対応される。
【００７０】
具体例として、いわゆるパソコンにおける、ＧＵＩ(Graphical User Interface)を利用したソフトウエアでの画面表示、操作方法、処理行程等について、図１１を用いて説明する。図１１は、符号化および復号化のソフトウエアのパソコン上での画面表示の一例を示すものである。このソフトウエアは、まずＰＣＭデータと高能率符号化データのためのディレクトリを選択する。８０１は、ＰＣＭデータファイルのディレクトリパスの表示部であり、現在この例ではＣドライブのＰＣＭＤＡＴＡという名のディレクトリが選択されていることが示されている。８０３は、表示部８０１にて示されたディレクトリ内のファイル構成を表示すると共に、ディレクトリ移動、ドライブ移動、ファイル選択等を行える表示操作部である。この例では、現在の表示部８０１で示されたディレクトリの下には更にｔｍｐという名称のディレクトリが存在していることが分かる。
【００７１】
また、「・・」の表示は、一つ上の階層のディレクトリを示しているものとする。また、ｔｍｐ以下６つのファイルはＰＣＭデータファイルを示している。また、その下の［−ｃ−］［−ｄ−］は、移動可能なドライブを示している。表示されているものが、ディレクトリか、ドライブか、ＰＣＭデータかの判断は、表示されている文字列や、文字列の横に付加されている、いわゆるアイコンにより、判断することが可能である。
【００７２】
ディレクトリとドライブの表示部は、その文字列位置にマウスポインタを対応させ、ダブルクリックすることで、現行ディレクトリ位置を、ダブルクリックした場所に移動させることが可能である。この例では、例えばｔｍｐの場所でダブルクリックを行うと、表示部８０１の表示は、Ｃ：￥ＰＣＭＤＡＴＡ￥ｔｍｐとなり、表示操作部８０３では、ｔｍｐの下のファイルの状態、および移動可能ドライブが示されるようになる。このように、ドライブ名やディレクトリ名をダブルクリックを繰り返すことにより、ＰＣＭデータファイル用の所望のディレクトリ位置に移動することができる。
【００７３】
８０２は、高能率符号化データ用のディレクトリ位置を表示する表示部であり、図示の例では、ＣドライブのＥＮＣＯＤＥＤＡＴＡという名のディレクトリが選択されていることが示されている。８０４は、表示部８０２にて示されたディレクトリ内のファイル構成を表示すると共に、ディレクトリ移動、ドライブ移動、ファイル選択等を行える表示操作部である。この例では、表示部８０２で示された現在のディレクトリの下には、ファイル、ディレクトリが共に存在していないことが示されている。表示操作部８０４における操作、および表示部８０２との対応については、表示操作部８０３、表示部８０１におけるものと同様であり、表示操作部８０４にて高能率符号化データ用のディレクトリを選択することができる。
【００７４】
８０５は、高能率符号化を実行するボタンであり、ここをクリックすることで、表示操作部８０３にて選択されたＰＣＭデータファイルが順に高能率符号化され、表示部８０２で示されたディレクトリの下に高能率符号化ファイルが作成される。この実際の処理の流れについて図１２を用いて説明する。
【００７５】
図１２Ａに示す状態では、図１１における表示操作部８０３にて、ｄａｔａ２．ｐｃｍ、ｄａｔａＡ．ｐｃｍ、ｄａｔａＢ．ｐｃｍの３つのＰＣＭファイルが選択され、反転表示されている。ここで図１１におけるボタン８０５をクリックすることにより、これらの３つのファイルがそれぞれ順に高能率符号化される。通常の高能率符号化処理の場合、処理を行うファイルの順序は特に問題とならない。
【００７６】
図１２Ｂに示す状態では、高能率符号化処理実行中の表示画面を示すものであり、符号化処理行程の進行状況が、棒グラフのような形で認識できるようになっている。ここでは図示していないが、ボタンの形で処理を途中で中止するような手段を設けても良い。図１２Ｃは、選択された全てのファイルの高能率符号化処理が終了した状態を示すものである。図１１における操作表示部８０４には、処理により作成された３つの高能率符号化データファイル、ｄａｔａ２ｅｎｃ．ｄａｔ、ｄａｔａＡｅｎｃ．ｄａｔ、ｄａｔａＢｅｎｃ．ｄａｔが表示されている。処理後の、高能率符号化データファイルのファイル名については任意性があるが、ここでは処理を行うＰＣＭファイル名の、いわゆる拡張子部分となる．ｐｃｍを取り除いた部分の名称にｅｎｃ．ｄａｔが自動的に付加されたファイル名を採用するようにしている。
【００７７】
次にボタン８０７について説明する。このボタン８０７がクリックされると、複数のファイルの高能率符号化処理を、データ列として連続に扱うようになされる。図１２Ｂを参照して説明したように、ファイルを連続して処理する場合、一づつのファイルについて、図１による行程と、図１０で示したデータ関係による処理を行うこととなる。このため、処理を行う全てのファイルについて、上述したように、始点での５１２個の０データのＰＣＭサンプルの想定、および終点についての０データのＰＣＭサンプルの想定を考慮した処理を行うこととなる。通常、楽曲がファイル毎に独立している場合はこの方法で問題とならないが、楽曲としては別であるがＰＣＭデータとして連続となっているような場合、高能率符号化処理を行うことで、連続性が失われてしまうこととなる。
【００７８】
この例を、先に示した図１２におけるｄａｔａＡ．ｐｃｍ、ｄａｔａＢ．ｐｃｍが連続したＰＣＭデータである場合を想定し、図１３Ａ、図１３Ｂ、および図１３Ｃを用いて説明する。図１３Ａでは、分割点を境にして、ｄａｔａＡ．ｐｃｍの終点のＰＣＭデータとｄａｔａＢ．ｐｃｍの始点のＰＣＭデータが連続しているものである様子を示している。
【００７９】
また、先に図１０等を用いて説明した高能率符号化処理を行うフレーム割りの最終部分については、図１３ＡにおけるＮとＮ＋１のような状態となったものとする。この時、ｄａｔａＡ．ｐｃｍの最終部の処理を示したものが図１３Ｂである。すなわち、Ｎ＋１番目のフレームが最終フレームとなるが、図１３Ａにおける分割点以降のデータについては別ファイルのデータであるので、分割点以降のデータを使用せず端数分となった部分については０データを詰め込んで処理を行う。
【００８０】
これに対して、ｄａｔａＢ．ｐｃｍの始点のデータについては、図１３Ｃに示した形の処理を行う。すなわち、図１３Ａにおける分割点以前のデータについては別ファイルのデータであるので、分割点以前のデータを使用せず、先頭フレームの１０２４個のＰＣＭデータは、５１２個のゼロデータと５１２個のｄａｔａＢ．ｐｃｍの始点のデータから構成される。
【００８１】
この時、図１３Ｂで示したｄａｔａＡ．ｐｃｍを処理するフレーム割りと、図１３Ｃで示したｄａｔａＢ．ｐｃｍを処理するフレーム割りが異なったものとなる。また、それぞれが端数分としてゼロデータを挿入しているため、連続性も失われた状態となっている。すなわち、ｄａｔａＡ．ｐｃｍとｄａｔａＢ．ｐｃｍを連続再生した場合は、連続した音となるが、ｄａｔａＡｅｎｃ．ｄａｔとｄａｔａＢｅｎｃ．ｄａｔを復号化して連続再生した場合は、音切れのような形となってしまう。
【００８２】
これに対して、図１１におけるボタン８０７をクリックして、データ列を連続した形で処理する場合の例を図１４Ａ、図１４Ｂおよび図１４Ｃを用いて説明する。図１４Ａに示すように、ファイルの分割点、およびｄａｔａＡ．ｐｃｍの処理フレーム割り等は、図１３Ａと同様の状態となっている。図１４Ｂは、ｄａｔａＡ．ｐｃｍの最終フレームの様子を示すものであるが、図１３Ｂとは異なり、分割点より外側のデータに０データを埋めるのではなく、ｄａｔａＢ．ｐｃｍのデータを採用している。
【００８３】
また、図１４Ｃは、ｄａｔａＢ．ｐｃｍの先頭のフレーム割りを示しているが、図１３Ｃのように、ファイルの始点にフレームをあわせて０データを埋めるのではなく、ｄａｔａＡ．ｐｃｍのフレーム割りと連続性を保つようなフレーム割り処理として、ｄａｔａＢ．ｐｃｍの始点より外側のデータについては、ｄａｔａＡ．ｐｃｍのデータを採用するようにしている。つまり図１４Ａでのフレーム割りで考えた場合の、Ｎ＋２というのがｄａｔａＢ．ｐｃｍの先頭フレームということになる。このように処理することにより、高能率符号化処理データにおいても、二つのファイル間で連続性が保たれることとなり、ｄａｔａＡｅｎｃ．ｄａｔとｄａｔａＢｅｎｃ．ｄａｔを復号化して連続再生した場合の音切れが起こらないこととなる。
【００８４】
上述した図１３Ａ、図１３Ｂ、図１３Ｃに示したように、符号化処理を行う場合の処理を図１５のフローチャートに示し、図１４Ａ、図１４Ｂ、図１４Ｃに示したように、符号化処理を行う場合の処理を図１６のフローチャートに示す。
【００８５】
図１５の最初のステップＳ１では、１０２４ポイント分の読み込みバッファを用意する。次に、処理の対象のファイルの番号ｉを０に設定する（ステップＳ２）。ステップＳ３では、処理すべきｉ番目のファイルがあるかどうかが決定される。ファイルがなければ、処理は、終了する（ステップＳ４）。
【００８６】
ｉ番目のファイルがある場合に、ステップＳ５において、読み込みバッファの前半５１２ポイント分データとしてゼロデータを詰める処理を行う。次に、ｉ番目の読み込みファイル（ＰＣＭファイル）をオープンし（ステップＳ６）、そして、ｉ番目の書き込みファイル（符号化ファイル）をオープンする（ステップＳ７）。読み込んだ符号化からバッファの後半５１２ポイントにデータを読み込む（ステップＳ８）。
【００８７】
ステップＳ９では、読み込みデータ量が取得され、読み込み位置が更新される。ステップＳ１０では、読み込みデータ量が５１２ポイントに満たないかどうかが決定される。読み込みデータ量が５１２ポイントに満たない場合には、ステップＳ１１において、読み込みバッファの５１２ポイントと、読み込みデータ量の差分量のデータとしてゼロデータが詰められる。
【００８８】
ステップＳ１０で読み込みデータ量が５１２ポイントある場合、またはステップＳ１１（ゼロデータの詰め込み）に続いて、ステップＳ１２において、１フレーム分の符号化処理がなされる。ステップＳ１３では、符号化データを書き込みファイルに書き込む。
【００８９】
ステップＳ１０の決定の結果が肯定の場合（読み込みデータ量が５１２ポイントに満たない場合）では、ステップＳ１４で、ｉ番目の読み込みファイルをクローズし、ステップＳ１５でｉ番目の書き込みファイルをクローズし、ステップＳ１６でｉのインクリメント処理がなされる。そして、処理がステップＳ３（ｉ番目のファイルの有無の決定）に戻る。
【００９０】
ステップＳ１０の決定の結果が否定の場合（読み込みデータ量が５１２ポイントある場合）では、ステップＳ１３に続いてステップＳ１７の処理がなされる。ステップＳ１７では、読み込みバッファの後半５１２ポイント分のデータをその前半５１２ポイントにシフトする。そして、処理がステップＳ９（読み込みデータ量の取得、および読み込み位置の更新）に戻る。
【００９１】
このようにして、図１３に示すように、楽曲がファイル毎に独立している場合に適用される処理がなされる。また、楽曲としては別であるが、ＰＣＭデータとして連続となっているような場合に適用される処理（図１４）を図１６のフローチャートを参照して説明する。
【００９２】
最初のステップＳ２１で、１０２４ポイント分の読み込みバッファが用意される。ステップＳ２２では、ｉが０に初期化される。ステップＳ２３では、最初のファイル（ｉ==０）であるか否かが決定される。最初のファイルの場合には、ステップＳ２４において、読み込みバッファの前半５１２ポイント分のデータとしてゼロデータが詰められる。そして、ｉ番目の読み込み（ＰＣＭ）ファイルをオープンし（ステップＳ２５）、ｉ番目の書き込み（符号化）ファイルをオープンする（ステップＳ２６）。ステップＳ２７では、読み込みファイルからバッファの後半の５１２ポイントにデータを読み込む。
【００９３】
ステップＳ２８では、読み込みデータ量が取得され、読み込み位置が更新される。ステップＳ２９では、読み込みデータ量が５１２ポイントに満たないかどうかが決定される。読み込みデータ量が５１２ポイントに満たない場合には、ステップＳ３０において、処理すべきｉ＋１番目のファイルがあるかどうかが決定される。
【００９４】
ステップＳ３０において、処理すべきｉ＋１番目のファイルがないと決定されると、ステップＳ３１では、読み込みバッファの５１２ポイントと、読み込みデータ量の差分量のデータとしてゼロデータが詰められる。
【００９５】
ステップＳ３０において、処理すべきｉ＋１番目のファイルがあると決定されると、ステップＳ３２において、ｉ＋１番目の読み込みファイルのオープンがなされる。そして、ステップＳ３３では、読み込みバッファの５１２ポイントと、読み込みデータ量の差分量のデータがｉ＋１番目のファイルから読み込まれ、読み込み位置が更新される。
【００９６】
ステップＳ２９で読み込みデータ量が５１２ポイントある場合、ステップＳ３１（ゼロデータの詰め込み）、またはステップＳ３３（ｉ＋１番目のファイルからのデータの読み込みと、読み込み位置の更新）に続いて、ステップＳ３４において、１フレーム分の符号化処理がなされる。ステップＳ３５では、符号化データを書き込みファイルに書き込む。
【００９７】
ステップＳ２９の決定の結果が否定の場合（読み込みデータ量が５１２ポイントある場合）では、ステップＳ３５に続いてステップＳ３６の処理がなされる。ステップＳ３６では、読み込みバッファの後半５１２ポイント分のデータをその前半５１２ポイントにシフトする。そして、処理がステップＳ２７（読み込みファイルからバッファの後半５１２ポイントにデータを読み込む）に戻る。
【００９８】
ステップＳ２９の決定の結果が肯定の場合（読み込みデータ量が５１２ポイントに満たない場合）では、ステップＳ３７で、ｉ番目の読み込みファイルをクローズし、ステップＳ３８でｉ番目の書き込みファイルをクローズする。そして、ステップＳ３０の決定の結果が否定（すなわち、ｉ＋１番目のファイルがない）場合に、処理が終了する（ステップＳ４０）。一方、ステップＳ３０の決定の結果が肯定（すなわち、ｉ＋１番目のファイルがある）場合に、ステップＳ３９でｉのインクリメント処理がなされ、ステップＳ３６の処理がなされる。そして、処理がステップＳ２３（最初のファイルか否かの決定）に戻る。
【００９９】
実際の符号化処理を行う場合、上述したように、図１１中のボタン８０７によって、図１３に示した形で処理を行うか、図１４に示した形で処理を行うかが選択される。なお、連続させるファイルの数が二つ以上の場合も同様である。連続処理させるファイルの選択については、図１７で示した方法で割り出される。
【０１００】
図１７は、連続させるファイルを実際に設定する方法の一例を示す。図１７は、図１１にてボタン８０７をクリックした場合に現れる操作表示画面であり、操作表示画面上で連続処理させるファイルが選択される。９０１で示す表示部には、連続処理を行うファイルを表示している。ここではｄａｔａ２．ｐｃｍと、ｄａｔａ３．ｐｃｍを連続処理する例が示されている。表示部９０１には、直接ファイル名を入力することが可能であるが、ボタン９０５を使って、いわゆるファイル構造をグラフィカルに検索し、ファイルを選択することも可能である。このとき、ファイルを選択した順序が、連続処理に反映されることとなるが、表示部９０１内で順序を変更することも可能である。
【０１０１】
また、９０２を使用することで、複数のファイルの連続処理に対応することも可能である。表示部９０３は、表示部９０１と同様に、その他の組みで連続処理をさせるファイルについて設定するものである。この例ではｄａｔａＡ．ｐｃｍ、ｄａｔａＢ．ｐｃｍ、ｄａｔａＣ．ｐｃｍを連続処理させる設定が示されている。ここではｄａｔａ２．ｐｃｍと、ｄａｔａ３．ｐｃｍの連続処理を一組目、ｄａｔａＡ．ｐｃｍ、ｄａｔａＢ．ｐｃｍ、ｄａｔａＣ．ｐｃｍを二組目としているが、とくにこの組の数値については、直接処理結果には関わらない。９０４については、一組目の９０２に相当するものである。また、ここでは二組を表示しているが、９０６を使用することで、このような組を、更に設定することも可能である。最後にＯＫボタン９０７をクリックすることで設定が完了する。
【０１０２】
再び図１１について説明する。８０６は、表示操作部８０４にて選択された高能率符号化データファイルを復号化する時に押されるボタンである。その処理方法、表示内容の対応等については、高能率符号化時のボタン８０５によるものと同様である。また復号化時においても、上述した高能率符号化の連続処理の場合と同様に、ボタン８０７を使用することで、連続復号化処理を設定することが可能である。復号化の連続処理の場合は、ある高能率符号化データファイルの最終フレームと、他の高能率符号化データファイルの先頭フレームを連続フレームとして復号化処理する形に設定を行うようにすればよい。８０８は、プログラムを終了させるためのボタンである。
【０１０３】
上述した方法で、複数ファイルの符号化、復号化の際に、各ファイル独立に処理を行うか、または、異なるファイル間にまたがった連続性を考慮した処理を行うかを選択して、所望の形で処理ファイルを作成することが可能となる。
【０１０４】
【発明の効果】
上述したこの発明は、所望の複数ファイルを符号化処理または復号化処理を行う時に、異なるファイル間の始点、終点の連続性を考慮した符号化と、考慮しない符号化を選択することができる。それによって、処理後に元々存在していた連続性が失われることを防止することができる。
【図面の簡単な説明】
【図１】高能率符号化データの生成に係る構成の一例を示すブロック図である。
【図２】各帯域毎の直交変換ブロックサイズについて説明するための略線図である。
【図３】図１中の一部の構成について詳細に示すブロック図である。
【図４】臨界帯域、ブロックフローティング等を考慮して分割された帯域のスペクトルの一例を示す略線図である。
【図５】マスキングスペクトルの一例を示す略線図である。
【図６】最小可聴カーブ、マスキングスペクトルの合成について説明するための略線図である。
【図７】この発明の一実施形態における符号化データフォーマットの一例を示す略線図である。
【図８】図７中の１バイト目のデータの詳細を示した略線図である。
【図９】ディジタル信号復号化処理に係る構成の一例を示すブロック図である。
【図１０】符号化データ内の各フレームにおけるオーバーラップについて説明するための略線図である。
【図１１】パソコン上で高能率符号化処理、および復号化処理を行うシステムの操作表示画面の一具体例を示す略線図である。
【図１２】上記図１１のシステムにより複数のファイルについて高能率符号化をおこなう処理を示す略線図である。
【図１３】二つのファイルの連続性を考慮せずに高能率符号化を行う場合のフレーム対応を示す略線図である。
【図１４】二つのファイルの連続性を考慮して高能率符号化を行う場合のフレーム対応を示す略線図である。
【図１５】二つのファイルの連続性を考慮せずに高能率符号化を行う場合の処理工程を示すフローチャートである。
【図１６】二つのファイルの連続性を考慮して高能率符号化を行う場合の処理工程を示すフローチャートである。
【図１７】連続性を考慮した処理を行うファイルの組合せを選択するための操作表示画面の一具体例を示す略線図である。
【符号の説明】
１０１、１０２・・・帯域分割フィルタ、１０３、１０４、１０５・・・直交変換回路（ＭＤＣＴ）、１０９、１１０、１１１・・・ブロック決定回路、１１８・・・ビット割り当て算出回路、１０６、１０７、１０８・・・適応ビット割当符号化回路、１１９・・・正規化情報変更回路、１２０、１２１、１２２・・・加算器、３０２・・・帯域毎エネルギー算出器、３０３・・・畳込みフィルタ、３０４・・・加算器、３０５・・・関数発生器、３０６・・・割り算器、３０７・・・合成器、３０８・・・減算器、３０９・・・遅延回路、３１０・・・許容雑音補正器、７０１、７０２・・・帯域合成フィルタ（ＩＱＭＦ）、７０３、７０４、７０５・・・逆直交変換回路（ＩＭＤＣＴ）、７０６・・・適応ビット割当復号化回路、７０９・・・正規化情報変更回路、７１０・・・加算器、８０３・・・ＰＣＭデータファイルに関する表示操作部、８０４・・・符号化データファイルに関する表示操作部、８０７・・・複数のファイルの高能率符号化時の処理を選択するボタン
【図１】
0004441988.tif 000002
【図２】
0004441988.tif 000003
【図３】
0004441988.tif 000004
【図４】
0004441988.tif 000005
【図５】
0004441988.tif 000006
【図６】
0004441988.tif 000007
【図７】
0004441988.tif 000008
【図８】
0004441988.tif 000009
【図９】
0004441988.tif 000010
【図１０】
0004441988.tif 000011
【図１１】
0004441988.tif 000012
【図１２】
0004441988.tif 000013
【図１３】
0004441988.tif 000014
【図１４】
0004441988.tif 000015
【図１５】
0004441988.tif 000016
【図１６】
0004441988.tif 000017
【図１７】
0004441988.tif 000018