(57)【要約】【課題】オーディオデータのエンコード処理と他の処理とを動的に割り当てながら、効率的にオーディオデータのエンコード処理を行うことができるオーディオデータ処理装置を提供する。【解決手段】ＰＣＭオーディオデータを複数の分割データに分割し、分割データ単位でエンコード処理を行う。複数のＤＳＰはオーディオ信号をクライアント装置に供給するために、ＭＰ３データのデコード処理を実行するものであるが、このデコード処理の空き時間を利用して前記分割データのエンコード処理を行う。分割データ単位のエンコード処理はＤＳＰを占有する時間が短いため、メインの処理であるデコード処理の妨げになりにくい。【選択図】　図１
2004117985.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣＭオーディオデータのエンコード処理およびその他の処理を実行する複数のプロセッサと、
ＰＣＭオーディオデータを複数の分割データに分割する分割手段と、
全ての分割データがエンコードされたとき、エンコードされた各分割データを結合して１つのデータに再結合する結合手段と、
前記複数のプロセッサの動作状態を監視し、処理を実行していない処理なしのプロセッサが生じたとき、このプロセッサに対して前記分割データを供給してエンコード処理を行わせる管理手段と、
を備えたオーディオデータ処理装置であって、
前記分割手段は、各分割データにその前後の分割データとオーバーラップするオーバーラップ区間を持たせて分割し、前記結合手段は、エンコードされた各分割データが重なり合うことなく再結合できる結合箇所を、各分割データの前記オーバーラップ区間のなかで決定するオーディオデータ処理装置。
【請求項２】
前記管理手段は、前記その他の処理の要求が発生したときに処理なしのプロセッサが無かったとき、前記エンコード処理を実行しているプロセッサの処理を中止させて、このプロセッサに前記その他の処理を実行させる請求項１に記載のオーディオデータ処理装置。
【請求項３】
前記複数のプロセッサが実行するその他の処理は、エンコードされたデータのデコード処理である請求項１または請求項２に記載のオーディオデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＰＣＭオーディオデータをＭＰ３などの形式にエンコードするオーディオデータ処理装置に関する。
【０００２】
【発明が解決しようとする課題】
ＰＣＭオーディオデータを高品質のＭＰ３データにエンコードする処理は、相応の時間を要する処理であり、プロセッサがこの処理に占用されている間は他の処理を実行することができない。このためエンコード処理の途中に他の処理の要求が発生しても、エンコード処理が終了するまでこれに対応することができなかった。さらに、従来は曲データ（ＰＣＭオーディオデータ）をＭＰ３データにエンコードする場合、１曲分のデータをそのままエンコード対象としていたため、１回のエンコード処理に要する時間が長く、上記他処理の待ち時間が長くなってしまうという問題点があった。
【０００３】
また、ＭＰ３のエンコード処理は、エンコードするデータの前後にあるデータも参照しながらエンコードを行ってゆくため、エンコード処理が途中で中止されると、それまでのエンコード処理が無駄になり、再度最初からエンコード処理をやりなおさなければならなかった。このため、他の処理の要求に応じてエンコード処理を途中で中止すると、それまでのエンコード処理が無駄になってしまうという問題点があった。
【０００４】
また、複数のプロセッサを用いれば、ＭＰ３エンコード処理を効率的に行うことができるが、各プロセッサに別々の曲データを１曲分ずつエンコード処理させる方式では、曲データのエンコードが終了するまで他処理要求に応じられないという上記課題が解決されない。また、複数のプロセッサをパイプライン接続して、パイプライン処理を行わせれば、１曲分のエンコード処理時間は大幅に短縮されるが、全てのプロセッサがエンコード処理に占用されるため、他処理の要求が発生したとき、一部のプロセッサにこの処理を実行させるという動的な割り当てができないという欠点がある。
【０００５】
この発明は、オーディオデータのエンコード処理と他の処理とを動的に割り当てながら、効率的にオーディオデータのエンコード処理を行うことができるオーディオデータ処理装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
この発明は、ＰＣＭオーディオデータのエンコード処理およびその他の処理を実行する複数のプロセッサと、ＰＣＭオーディオデータを複数の分割データに分割する分割手段と、全ての分割データがエンコードされたときエンコードされた各分割データを結合して１つのデータに再結合する結合手段と、前記複数のプロセッサの動作状態を監視し、処理を実行していない処理なしのプロセッサが生じたとき、このプロセッサに対して前記分割データを供給してエンコード処理を行わせる管理手段と、を備えたオーディオデータ処理装置であって、
前記分割手段は、各分割データにその前後の分割データとオーバーラップするオーバーラップ区間を持たせて分割し、前記結合手段は、エンコードされた各分割データが重なり合うことなく再結合できる結合箇所を、各分割データの前記オーバーラップ区間のなかで決定することを特徴とする。
【０００７】
この発明では、ＰＣＭオーディオデータを分割して複数の分割データとし、複数のプロセッサのうち処理なしとなっているプロセッサがあったとき、その空き時間を利用して各分割データ毎のエンコードを行う。このように、複数のプロセッサの空き時間を利用することにより、プロセッサをエンコード処理とその他の処理とに併用することができ、プロセッサの効率的な利用およびエンコード処理の効率化を図ることができ、且つ、分割されたデータは１曲全体のデータに比べて（当然に）短いため、その他の処理の要求が発生した場合でも、待ち時間を短くすることができる。
【０００８】
ただし、上述したように、ＰＣＭオーディオデータからＭＰ３へエンコードするとき、エンコードするデータだけでなくその前後のデータも参照してエンコード処理を行うため、分割データの両端をエンコードした場合、分割しないでエンコードした場合とではエンコードされたデータの内容が異なってしまう。そこで、各分割データに互いに重なり合う部分（オーバーラップ）を持たせてＰＣＭオーディオデータを分割し、この分割データを別々にＭＰ３エンコードする。そして、エンコードしたのち、オーバーラップ区間を重ね合わせて端のデータを捨てて再結合し、データを分割しないでエンコードした場合と同じデータを作成する。これにより、分割して処理した場合でも連続して処理した場合と同様のエンコードデータを得ることができるとともに、１回のエンコード処理を小さく分けることができるため、他の処理の要求が発生した場合でもその待ち時間を短くすることができる。
【０００９】
この発明は、上記発明において、前記管理手段は、前記その他の処理の要求が発生したときに処理なしのプロセッサが無かったとき、前記エンコード処理を実行しているプロセッサの処理を中止させて、このプロセッサに前記その他の処理を実行させることを特徴とする。
【００１０】
この発明では、その他の処理をエンコード処理よりも優先させている。すなわち、エンコード処理途中にその他の処理の要求が発生した場合には、エンコード処理を中止して、プロセッサにその他の処理を実行させるようにしている。これにより、「その他の処理」を実行するために設けられたプロセッサを利用し、その他の処理の実行の邪魔にならないように空き時間を利用してエンコード処理をすることができ、プロセッサの利用効率を向上させることができる。
なお、エンコード処理を中止しても分割データは短いため処理時間の無駄は僅かである。また、エンコード途中のデータについてエンコード処理が終了した部分と未処理の部分とを再度分割するようにしてもよい。
【００１１】
この発明は、上記発明において、前記複数のプロセッサが実行するその他の処理は、エンコードされたデータのデコード処理であることを特徴とする。
【００１２】
この発明では、エンコードされたオーディオデータをデコードするプロセッサを利用してＰＣＭオーディオデータのエンコードをすることにより、プロセッサのリソースを効率的に利用することができる。
【００１３】
【発明の実施の形態】
図面を参照してこの発明の実施形態について説明する。図１はこの発明の実施形態であるオーディオサーバ装置のブロック図である。オーディオサーバ装置は、それぞれ別の部屋に設置されている複数のクライアント装置（不図示）からの再生要求に基づいてオーディオ信号を一括して供給する装置であり、各クライアント装置からリクエストされた曲を各クライアント装置に対して個別に配信する。各クライアント装置は、オーディオサーバ装置に対するリクエスト機能およびアナログオーディオ信号の再生機能を備えた装置である。
【００１４】
オーディオサーバ装置は、クライアント装置から曲がリクエストされると、このリクエストされた曲のＭＰ３データをＨＤＤ１１から読み出し、プロセッサであるＤＳＰ１５でデコードするとともにアナログ回路１７でアナログ信号に変換してリクエストのあったクライアント装置に配信する。
【００１５】
複数のクライアント装置からのリクエストに対応するためにＤＳＰ１５は複数設けられている。ＤＳＰ１５の個数は、各クライアント装置の稼働率を勘案して、クライアント装置の台数よりも少ない個数（ｎ個）設けられる。一方、ＤＡコンバータ・アンプを含むアナログ回路１７は、クライアント装置の台数の同数設けられ、それぞれクライアント装置と１対１に対応している。これら複数のＤＳＰ１５とアナログ回路１７はパッチベイ１６によって接続される。パッチベイ１６は、リクエストのあったクライアント装置に接続されるアナログ回路１７とそのリクエストされた曲のＭＰ３データをデコードするＤＳＰ１５とを接続する。
【００１６】
このオーディオサーバ装置を制御するＣＰＵ１０は、図示しない通信機能により各クライアント装置からリクエストを受信する。ＣＰＵ１０が、リクエストを受信すると、ＤＳＰ１５（１５−１〜１５−ｎ）のうちの１つをこのリクエストの曲データ（ＭＰ３データ）をデコードするＤＳＰに割り当て、このＤＳＰとリクエストのあったクライアント装置のアナログ回路１７とを接続するようにパッチベイ１６を制御する。
【００１７】
クライアント装置からのリクエストに対応できるように、ＨＤＤ１１には複数の曲のＭＰ３データが記憶されている。このオーディオサーバ装置は、ＣＤ−ＲＯＭドライブ１２にセットされたオーディオＣＤからＰＣＭオーディオデータを読み込んでＭＰ３データにエンコードし、このエンコードしたＭＰ３データをＨＤＤ１１に蓄積記憶する。このエンコード処理は、上記ＤＳＰ１５（１５−１〜ｎ）が行う。すなわち、ＤＳＰ１５（１５−１〜ｎ）のなかに、ＭＰ３データのデコード処理をしていない空きのＤＳＰがあるとき、このＤＳＰの空き時間を利用して、上記ＰＣＭオーディオデータからＭＰ３データへのエンコードを行わせるようにしている。
【００１８】
ＤＳＰ１５−１〜ｎの各ＤＳＰのステータス（動作状態）を管理するために、ＨＤＤ１１上にプロセッサ管理テーブルが設定されている。ＣＰＵ１０は、各ＤＳＰの動作状態を監視し、この処理状態に応じて「他処理中」、「符号化処理中」、「処理なし（空き）」のいずれかのステータス情報をプロセッサ管理テーブルに書き込む。「他処理中」は、ＭＰ３データのデコード処理中であることを示し、「符号化処理中」は、ＰＣＭオーディオデータのエンコード処理中であることを示し、「処理なし」は、いずれの処理もしておらず動作指示待ちであることを示している。
【００１９】
また、ＤＳＰが１曲分のＰＣＭオーディオデータをエンコードするには相応の時間を要する。もし、エンコード処理中にリクエストがあった場合に、１曲分のＰＣＭオーディオデータ全部のエンコードが終了するまでリクエストを待ち状態にしておくと、クライアント装置の待ち時間が長くなってクライアント装置の稼働効率の低下、顧客に対するサービスの低下を招くことになる。そこで、このオーディオサーバ装置では、１曲分のＰＣＭオーディオデータを複数の分割データに分割し、各分割データ毎に別々にエンコード処理するようにしている。このように、１回の処理量を少なくして処理時間を短くすることにより、全てのＤＳＰが処理を実行中で「処理なし」のＤＳＰがないときにリクエストが発生した場合であっても、そのリクエストの待ち時間を短くすることができる。
【００２０】
曲データを複数の分割データに分割したとき、ＨＤＤ１１上に分割データ管理テーブルが作成され、各分割データの曲中の位置、大きさ、エンコード済か否かなどが記憶される。分割データ管理テーブルでは、各分割データにレコードが作成され各レコードには、その分割データの先頭フレーム番号、サイズ（フレーム数）、ステータスのデータが含まれている。先頭フレーム番号は、この分割データの先頭フレームが、曲全体の何番目のフレームに当たるかの番号であり、これでこの分割データの位置を知ることができる。サイズはフレーム数で表される。ステータスは、この分割データの処理状態を表す情報であり「未処理」、「符号化中」、「符号化完了」の３つのステータスを持っている。「未処理」は、エンコード処理が開始されていない状態を示し、「符号化中」は現在ＤＳＰでＭＰ３エンコード処理が行われている状態を示し、「符号化完了」はエンコード処理が完了した状態を示している。
【００２１】
ＣＰＵ１０は、ＰＣＭオーディオデータである曲データを複数の分割データに分割するとともに、ＭＰ３にエンコードされた複数の分割データを再結合し、１曲のＭＰ３データに編集する。この１曲に編集されたＭＰ３データが、リクエストに応じて再生されるデータとしてＨＤＤ１１に記憶される。
【００２２】
ここで、ＰＣＭオーディオデータの分割および結合の方式について説明する。オーディオデータの分割は、ＭＰ３のフレームサイズを単位として行われ、各分割データには、前後の分割データと数フレームずつオーバーラップするオーバーラップ区間が設けられる。ＭＰ３にエンコードされた各分割データは、オーバーラップ区間の解析により、どのフレームで前後の分割データと結合するかが決定される。この決定された結合フレームで前後の分割データを結合（順番に接続）することにより、ＭＰ３にエンコードされた形式でもとの１曲のオーディオデータが復元される。
【００２３】
図２はＭＰ３データのデータ構成を示す図である。ＭＰ３データは、ＰＣＭオーディオデータの１１５２サンプルで１フレームを構成する。各フレームの構成は同図（ｂ）に示すように、ヘッダ、サイドインフォメーション、メインデータなどからなり、ヘッダ内の情報のうち、サンプルレート、ビットレート、パディングの有無の情報によりフレームサイズを割り出すことができる。すなわち、１フレームの大きさ（ｂｙｔｅ数）は、１４４×（ビットレート）÷（サンプルレート）で決定される。たとえは、ビットレート：１２８ｋｂｐｓ、サンプルレート（サンプリング周波数ｆｓ）：４４．１ｋＨｚの場合；
１４４×１２８０００／４４１００＝４１７ｂｙｔｅ
であり、小数点以下は切り捨てられるが、ＭＰ３データ全体としての伝送ビットレートを合わせるために数フレームに１つの割合で１ｂｙｔｅを加算（パディング）したフレームが構成される。数フレームに１つの割合で４１８バイトのフレーム（パディングフレーム）を作成する。
【００２４】
また、サイドインフォメーションには、メインデータビギンというデータが書き込まれている。このデータは、ＭＰ３エンコードされた上記１１５２サンプルの符号化データ部（メインデータ）がどこから始まるかを示すデータである。ここで、ＭＰ３フォーマットの１フレームは、上記のように１１５２サンプルを対象としたものであるが、この１１５２サンプル分の符号化データ部（メインデータ）を、このフレーム以外の複数の隣接フレームのメインデータエリアにまたがって配置することを許容している。すなわち、１１５２サンプルのＰＣＭデータをエンコードしたときのデータサイズはそのＰＣＭデータの状態に応じて変化させることができる。これにより、単調な音の区間ではデータ量を少なく、複雑で変化に富んだ区間にはデータ量を多く割り振ることで、音質を考慮したデータ配分を行うことができる。また、このとき生じるフレーム毎のデータ配分量の差異は、複数の隣接フレーム間でそれぞれのメインデータサイズを調節することで吸収し、データ量が多い区間に多くのメインデータエリアを配分できるようにする。その結果として、データ量の少ない区間では、メインデータエリアの後ろの部分に余白ができることで、次のフレーム以降のデータ量の多い区間により多くのデータを配分するための余裕分が生じることになる（ビット貯蔵）。
【００２５】
そして、次のフレームのメインデータは、そのフレームのメインデータエリアからでなく、このビット貯蔵されている前のフレームのメインデータエリアの途中から書きはじめる。これによって、配信のビットレートを変更することがなくなるうえ、その分のメインデータエリアのエリアを節約している。そして、なかには、エンコードしたメインデータのサイズが１フレームのメインデータエリアの大きさよりも大きい場合があるが、上記のように他のフレームでビット貯蔵しているため、このようなデータを書き込んでも、全体としてフレーム数に対応したメインデータエリアのデータ量に対応するデータ量に収めることができる。
【００２６】
図２（Ｃ）にビット貯蔵の例を示す。これは曲の途中のフレームを示す図であり、フレーム（１）　のメインデータエリアにはフレーム（２）　のメインデータの後半部、フレーム（３）　のメインデータおよびフレーム（４）　のメインデータの先頭部分が書き込まれている。そして、フレーム（４）　のメインデータの残りの部分は、フレーム（２）　のメインデータエリアに書き込まれている。このように、メインデータがフレームの範囲を越えて書き込まれるため、ＰＣＭオーディオデータの内容に応じて、ビット数を節約できるフレームではメインデータを小さくしてビット貯蔵し、複雑なＰＣＭデータのフレームでは、貯蔵されているビットを借りて１フレームを超える大きさのデータを書き込むことができ、全体としてのデータ量を増加させることなく高音質のエンコードをすることができる。
【００２７】
ＭＰ３エンコードにおいては、処理対象フレームとその前後の隣接フレームの半分にわたったフィルタ処理を行う。このため、データを分割してしまうと、その分割点付近のフレームでは隣接フレームの有無による影響が生じてしまう。また、ＭＰ３データにはビット貯蔵によるメインデータの移動があるため、オーディオデータを時間軸上でオーバーラップ無しに切断した分割データを単純に結合するのみでは再結合されたデータが不連続になってしまう。
そこで、ＰＣＭオーディオデータを分割するときに前後の分割データに重なり合うオーバーラップ区間を設け、ＭＰ３にエンコードしたのち、このオーバーラップ区間内で最適な結合フレームを割り出し、メインデータの連続性を維持しつつ前記割り出された結合フレームで分割データを結合（連結）するようにしている。
【００２８】
図３は、ＰＣＭオーディオデータの分割処理を説明する図である。オーディオデータを分割する場合、各分割データがＭＰ３の１フレームのサンプル数（この実施形態では１１５２サンプル）の整数倍になるように分割する。さらに、各分割データが前後の分割データと数フレーム分のオーバーラップ区間を共有するように、このオーバーラップ区間を両方に重複させて分割データを作成する。オーバーラップ区間のフレーム数は、上記のフィルタ処理で必要な隣接フレームをカバーできるフレーム数およびビット貯蔵が適合するフレームを検索するためのフレーム数を加算したフレーム数とする。
【００２９】
同図では、１曲のオーディオデータを４分割し、各分割データが均等に同じ長さになるように調節している。このため、各分割データの長さ（フレーム数）をｂａｓｅ＋ｏｖｌのフレーム数にしている。なお、基本分割フレーム数ｂａｓｅは、総データフレーム数；ｓｉｚｅ、分割数；Ｎ、オーバーラップフレーム数；ｏｖｌとすると、（ｓｉｚｅ−ｏｖｌ）／Ｎで求めることができる。したがって、最初の分割データおよび最後の分割データは、隣の分割データとオーバーラップするのは片方のみであるため、両方ともオーバーラップする中間の分割データに比べてオーバーラップしない区間がｏｖｌ／２だけ長くなっている。
【００３０】
なお、元々のＰＣＭオーディオデータのデータ長（サンプル数）がＭＰ３の１フレームのサンプル数（１１５２サンプル）の整数倍でない場合には、最後の１フレームは短いフレームとなる。また、ＰＣＭオーディオデータのフレーム数が分割数Ｎで割り切れる数でなかった場合には、最後（Ｎ番目）の分割データは他の分割データよりも短い分割データとなる。上記のように分割された各分割データはＨＤＤ１１に仮記憶され、ＤＳＰ１５−１〜ｎのいずれかによってＭＰ３データにエンコードされる。ＤＳＰ１５−１〜ｎは、クライアント装置のリクエストに応じたデコード処理の合間に上記分割データをエンコード処理する。
【００３１】
１曲分の複数の分割データが全てＭＰ３データにエンコードされると、このＭＰ３エンコードされた分割データを結合して１曲のＭＰ３データに再編集する。図４および図５は、結合フレーム検索処理を説明する図である。図４（Ａ）は、分割データＭＰ３（１）　と分割データＭＰ３（２）　とを結合する場合について説明している。分割データＭＰ３（１）　のうちオーバーラップ区間の最後の２フレームは、終了点差などの影響を受ける区間であるため、それ以前のフレームの品質を確保するためのダミーフレームとして捨てることとする。また同様に、分割データＭＰ３（２）　のうちオーバーラップ区間の最初の２フレームは、フィルタリング遅延や開始点差などの影響を受ける区間であるため、それ以後のフレームの品質を確保するためのダミーフレームとして捨てることとする。したがって、オーバーラップ区間のうち両端の２フレームずつを除いた中央のフレームのどれかを結合フレームとするため、この区間の分割データＭＰ３（１）　、分割データＭＰ３（２）　の対応する各フレームのメインデータビギン（ビット貯蔵値）の適合性をチェックする。
【００３２】
すなわち、同図（Ｂ）に示すように、前のデータである分割データＭＰ３（１）　のメインデータビギンが、後のデータである分割データＭＰ３（２）　のメインデータビギンと同じか、または、それよりも手前にあれば、分割データＭＰ３（１）　のメインデータと分割データＭＰ３（２）　のメインデータを重なり合うことなく結合することができる。
【００３３】
なお、ビット貯蔵に応じて複数の隣接フレーム間でデータ配分を調節するときは、エンコードを行うＰＣＭデータの聴覚的情報量とその時点のビット貯蔵値によって配分量を決定する。このため、ＤＳＰ１５−１〜ｎがそれぞれ別々に実行するＭＰ３エンコード処理を同じものとし、オーバーラップ領域について同じＰＣＭデータに対してエンコードを行ったとしても、オーバーラップ領域の始端からエンコードを開始したものと、その前からエンコードをしてきたものとでは、オーバーラップ領域に至るまでのエンコード過程が異なるため、それぞれのビット貯蔵値が異なる。したがって、結果として、それぞれのオーバーラップ領域のビット貯蔵値とメインデータビギン値は異なるものになる。このため、図４（Ａ）に示すオーバーラップ領域のうち両端を除く全域にわたってメインデータビギンを比較し、メインデータが重ならない範囲でＭＰ３（１）　のメインデータビギンとＭＰ３（２）　のメインデータビギンが近いフレームを検索して、それを結合フレームとする。
【００３４】
メインデータが重ならない範囲で、ＭＰ３（１）　のメインデータビギンとＭＰ３（２）　のメインデータビギンが近いフレームで両分割データを結合すると、図４（Ｂ）の下段に示す結合後のメインデータのマージン（空白エリア）が少なくなり、空白を埋めるためのダミーデータを少なくしてメインデータエリアを有効に使うことができる。
【００３５】
図５は、ＣＰＵ１０が実行する結合フレーム検索動作を示すフローチャートである。まず、ｓ１で検索範囲およびレジスタのリセットを行う。結合する分割データＭＰ３（１）　、ＭＰ３（２）　のオーバーラップ区間のうち、両端のデータを除いた検索範囲の先頭フレームの番号をそれぞれｉ、ｊにセットし、検索範囲の最終フレームの番号をそれぞれｅｎｄ＿ｉ、ｅｎｄ＿ｊにセットする。また、メインデータビギンの差が最小のフレーム番号を記憶するレジスタｍｉｎ＿ｉ、ｍｉｎ＿ｊにダミーデータとして−１をセットする。
【００３６】
以下、検索範囲の先頭フレームから最終フレームまでメインデータビギンを比較してゆく。分割データＭＰ３（１）　のフレームｉのメインデータビギンを読み出してレジスタＡに書き込み（ｓ２）、分割データＭＰ３（２）　のフレームｊのメインデータビギンを読み出してレジスタＢに書き込む（ｓ３）。このレジスタＡ、Ｂの内容を比較して結合条件（Ａ≧Ｂ）を満たし（ｓ４）、且つ、その差（Ａ−Ｂ）が今まで比較したフレームのうち最も小さい場合には（ｓ５）、これを結合フレームとするため（Ａ−Ｂ）をｍｉｎレジスタに書き込むとともに、そのフレーム番号ｉ、ｊをｍｉｎ＿ｉ、ｍｉｎ＿ｊに書き込む（ｓ６）。上記の処理をｉ、ｊに１を加算しながら（ｓ７）、最終フレームｅｎｄ＿ｉ、ｅｎｄ＿ｊについて処理するまで繰り返し実行する（ｓ８）。
【００３７】
全てのフレームについて上記の処理を行ったのち、ｍｉｎ＿ｉ、ｍｉｎ＿ｊを結合フレームと決定して、結合処理に進む（ｓ１０）。このとき、もしフレーム番号ｍｉｎ＿ｉがダミーデータ（−１）のままであれば、Ａ≧Ｂを満たすフレームが無かったものとして、結合処理に進まずにエラー処理（ｓ１１）に進む。
【００３８】
図６はＭＰ３エンコードされた分割データの結合処理を説明する図である。この処理では、上記の処理で決定された結合フレームで分割データＭＰ３（１）　と分割データＭＰ３（２）　を結合する。同図では、ＭＰ３（１）　の結合フレームｍｉｎ＿ｉのメインデータビギン（ビット貯蔵値）が１６０であり、ＭＰ３（２）　の結合フレームｍｉｎ＿ｊのメインデータビギン（ビット貯蔵値）が１５０の場合を示している。
【００３９】
まず、分割データＭＰ３（２）　において、結合フレームｍｉｎ＿ｊより前に繰り上げられている１５０サンプルのメインデータを読み出して蓄積しておく。次に、分割データＭＰ３（１）　において、結合フレームｍｉｎ＿ｉのメインデータビギンが存在するフレームから結合フレームの直前（ｍｉｎ＿ｉ−１）のフレームまでを合成対象フレームとする。この合成対象フレームにおいて、ヘッダ、サイドインフォメーション、フレームサイズ、および、結合フレームｍｉｎ＿ｉのメインデータビギン以前のメインデータについては、分割データＭＰ３（１）　のものを用いる。そして、そのメインデータにつづけて上記（Ａ−Ｂ＝ｍｉｎ）のサイズのダミーデータを挿入したのち、上記蓄積しておいた結合フレームｍｉｎ＿ｊ以後の分割データＭＰ３（２）　のメインデータをＭＰ３（１）　のメインデータエリアに書き込む。
そして、上記合成対象フレームより後の（結合フレームｍｉｎ＿ｊを含む）フレームは分割データＭＰ３（２）　のものを結合する。
【００４０】
図７（Ａ）は、複数の分割データおよび複数のプロセッサ（ＤＳＰ１５−１〜ｎ）を管理するＣＰＵ１０の動作を示すフローチャートである。また、同図（Ｂ）は、分割データ管理テーブル、プロセッサ管理テーブルの更新内容を説明する図である。
同図（Ａ）において、曲データ（ＰＣＭオーディオデータ）が読み込まれると、この曲データを図３に示したような方式で特定サイズ毎に切り出して分割データを作成し、ＨＤＤ１１に仮記憶する（ｓ２１）。このとき各分割データにはそれぞれ属性情報が付与され、この曲データに対応する分割データ管理テーブルが作成される。この分割データ管理テーブルでは、各分割データに対して同図（Ｂ）の１０１のようなレコードが設定される。ｓ２１で曲データから分割データが切り出されたときは、全ての分割データのステータスは「未処理」である。
【００４１】
データの分割後、ステータスが「未処理」の分割データが無くなったことをｓ２２で判断するまで、ｓ２３、ｓ２４の処理を実行する。ｓ２３ではステータスが「処理なし」のＤＳＰがＤＳＰ１５−１〜ｎ中にあるか否かを検索する。「処理なし」のＤＳＰがない場合には、「処理なし」のＤＳＰが生じるまでｓ２２、ｓ２３で待機する。「処理なし」のＤＳＰがある場合にはｓ２３からｓ２４に進み、この「処理なし」のＤＳＰに対して「未処理」の分割データを転送してＭＰ３のエンコード処理を行わせる（ｓ２４）。
同時に、このＤＳＰのステータスを「符号化処理中」に書き換えてプロセッサ管理テーブルを更新し（１１２）、この分割データのステータスを「符号化中」に書き換えて分割データ管理テーブルを更新する（１０２）。
【００４２】
ＤＳＰは、ＣＰＵ１０から転送された分割データのＭＰ３エンコード処理を終了すると、ＣＰＵ１０に返送する。ＣＰＵ１０は、このＭＰ３エンコードされた分割データをＨＤＤ１１に書き込んで仮に記憶するとともに、分割データ管理テーブルのこの分割データのステータスを１０３に示すように「符号化終了」に書き換え、プロセッサ管理テーブルのこのＤＳＰのステータスを「空き」に書き換えて１１１の状態にもどす。
【００４３】
全ての分割データについて上記処理が実行され、「未処理」の分割データが無くなるとともに、全ての分割データの処理が終了して「符号化処理終了」になると、ｓ２５の判断で、上記図４〜図６に示した合成処理に進む。
【００４４】
図７の処理手順では、「処理なし」のＤＳＰに対して分割データのエンコードを実行させているときに、クライアント装置からリクエストがあった場合でも、このＤＳＰまたは他のＤＳＰが「処理なし」になるまで、リクエストに対応するデコード処理（他処理）を受け付けることができないが、デコード処理（他処理）をエンコード処理に優先させ、リクエストがあったときに「処理なし」のＤＳＰがない場合には、エンコード処理を実行しているＤＳＰの処理を中止して、このリクエストに対応するデコード処理を実行させるようにしてもよい。
【００４５】
このような場合の処理を図８に示す。この図では、エンコード途中にリクエストが発生した場合には、分割データのエンコード処理を途中で中止し、その途中の位置で分割データを処理済部分と未処理部分にさらに分割してＣＰＵ１０に返送するようにしている。ＣＰＵ１０は、処理済部分を「符号化終了」の分割データとして扱い、未処理部分を「未処理」の分割データとして扱えばよい。
【００４６】
図８（Ａ）は、クライアント装置からリクエストが発生した場合、すなわち他処理動作要求が発生した場合の動作を示すフローチャートである。他処理動作要求が発生すると、ステータスが「空き」のＤＳＰがあるかをプロセッサ管理テーブルから検索する（ｓ３１）。「空き」のＤＳＰがある場合には、他のＤＳＰの処理を中止させる必要がないため、この「処理なし」のＤＳＰに対してこの他処理動作を割り当てるとともに（ｓ３４）、このＤＳＰのステータスを「他処理中」にする。
【００４７】
一方、他処理動作要求が発生したときに「処理なし」のＤＳＰが存在しなかった場合には、現在分割データをＭＰ３にエンコードしているＤＳＰ、すなわちステータスが「符号化中」のＤＳＰがあるかを検索する。「符号化中」のＤＳＰもない場合には、いずれかのＤＳＰが他処理（デコード処理）を終了して「処理なし」になるまでｓ３１で待機する。
【００４８】
「符号化中」のＤＳＰがあった場合には、そのＤＳＰ（複数のＤＳＰがエンコード（符号化）を行っている場合には、そのうちの１つ）のエンコード処理を中止し、ＤＳＰからデータを回収する。そして、同図（Ｃ）に示すように、この中止までにエンコードしたフレームを境界として、データを再分割する。この再分割は、未処理データを新たな分割データとすることで行う。
【００４９】
そして、同図（Ｂ）に示すように、分割データ管理テーブルの内容を更新する。エンコード終了分のデータについては「符号化終了」の分割データとしてＨＤＤ１１に仮記憶するとともに、分割データ管理テーブルの元の分割データのレコードをこれに合わせて書き換える。すなわち、サイズをエンコード済のフレーム数ｍに書き換え、ステータスを「符号化終了」に書き換える。そして、新たな分割データをＨＤＤ１１上に生成するとともに、先頭フレーム番号が「元のデータのスタートフレーム番号（ｆｒａｍｅ　ＮＯ）＋ｍ−ｏｖｌ」、サイズが「元のデータのサイズ（ｓｉｚｅ）−ｍ＋ｏｖｌ」、ステータスが「未処理」のレコードをこの分割データのレコードとして分割データ管理テーブルに生成する。
【００５０】
なお、エンコード済のフレーム数がオーバーラップフレーム数ｏｖｌよりも少ない場合には、分割しても非効率であるため、上記分割処理は行わず、エンコードデータを破棄して、この処理は無かったことにする。
そして、上記処理を中止したＤＳＰについては、そのステータスを「処理なし」に書き換える。こののち、ｓ３４に進む。
【００５１】
これにより、クライアント装置からのリクエストを内部的な処理であるＭＰ３エンコードに優先させて実行することができ、オーディオサーバ装置としての機能を低下させることがない。
【００５２】
なお、この実施形態では、ＰＣＭオーディオデータをＭＰ３データにエンコードする場合の処理について説明したが、これ以外の形式であっても、エンコード時にエンコード箇所よりも前または後のデータが必要なエンコード方式であれば全て適用可能である。
【００５３】
また、この実施形態では、オーディオサーバ装置を例にあげて説明したが、この発明はどのような装置にも適用することができる。すなわち、他処理はＭＰ３データのデコードに限定されない。
【００５４】
【発明の効果】
以上のようにこの発明によれば、ＰＣＭオーディオデータを複数の分割データに分割し、各分割データを複数のプロセッサの空き時間を利用してエンコードするようにしたことにより、プロセッサの利用効率を向上することができるとともに、分割データ単位のエンコード処理であるため、プロセッサの占有時間が短く、その他の処理の妨げになることが少ない。
【００５５】
【図面の簡単な説明】
【図１】この発明の実施形態であるオーディオサーバ装置のブロック図
【図２】ＭＰ３データのフォーマットを説明する図
【図３】オーディオサーバ装置のＣＰＵの分割処理を説明する図
【図４】同ＣＰＵの結合フレーム解析処理を説明する図
【図５】同ＣＰＵの結合フレーム解析処理動作を示すフローチャート
【図６】同ＣＰＵの結合処理を説明する図
【図７】同ＣＰＵのＤＳＰおよび分割データ管理動作を示すフローチャート
【図８】同ＣＰＵのＤＳＰおよび分割データ管理動作を示すフローチャート
【符号の説明】
１０…ＣＰＵ、１１…ＨＤＤ、１２…ＣＤ−ＲＯＭドライブ、１３…ＤＭＡコントローラ、１４…ＲＡＭ、１５（１５−１〜ｎ）…ＤＳＰ（プロセッサ）、１６…パッチベイ、１７…アナログ回路
【図１】
2004117985.tif 000003
【図２】
2004117985.tif 000004
【図３】
2004117985.tif 000005
【図４】
2004117985.tif 000006
【図５】
2004117985.tif 000007
【図６】
2004117985.tif 000008
【図７】
2004117985.tif 000009
【図８】
2004117985.tif 000010