(57)【特許請求の範囲】
【請求項１】
符号化処理単位としてフレーム毎に符号化された符号化データに基づいて生成された検査データが各フレームに対応する符号化データに付加された符号列が供給され、供給された前記符号列から、フレームを検出する符号列検査装置であって、
前記符号列の任意の位置をフレームの先頭候補と決定し、当該位置から所定ビットの仮検査データを取得する仮検査データ取得部と、
前記供給された符号列から、前記仮検査データ取得部が取得した前記仮検査データに連接するデータ列をデータ長を異ならせながら順次取得するデータ列取得部と、
前記データ列取得部が取得した前記データ長の異なるデータ列に基づいて順次検査データを生成する検査データ生成部と、
前記仮検査データ取得部が取得した前記仮検査データと前記検査データ生成部が順次生成した前記検査データとを比較して一致が得られたときの検査データの基となった長さのデータ列をフレームであると判別する符号化データ判別部と、を備えた、
ことを特徴とする符号列検査装置。
【請求項２】
前記符号化データ判別部がフレームであると判別したデータ列の長さが、前記フレームの目標データレートから定まる最大フレーム長を超えたか否かを判定するフレーム長判定部を備え、
前記仮検査データ取得部は、前記フレーム長判定部が最大フレーム長を超えたと判定した場合は、前記フレームの先頭候補の位置を変更して、供給された前記符号列のうちから、再度、仮検査データを取得し、
前記データ列取得部、前記検査データ生成部及び前記符号化データ判別部は、前記仮検査データ取得部が取得した前記仮検査データに基づいて、夫々の処理を再度実行する、
ことを特徴とする請求項１に記載の符号列検査装置。
【請求項３】
前記符号化データ判別部がフレームであると判別したデータ列の復号化が可能か否かを判定する復号化可能判定部を備え、
前記仮検査データ取得部は、前記復号化可能判定部が前記符号化データの復号化が不能と判定した場合は、前記フレームの先頭候補の位置を変更して、供給された前記符号列のうちから、再度、仮検査データを取得し、
前記データ列取得部、前記検査データ生成部及び前記符号化データ判別部は、前記仮検査データ取得部が取得した前記仮検査データに基づいて、夫々の処理を再度実行する、
ことを特徴とする請求項１又は２に記載の符号列検査装置。
【請求項４】
前記復号化可能判定部が前記符号化データの復号化が可能であることを所定数の連続するフレームについて判定したときに正しいフレームであると判定する第２の復号化可能判定部を備えたことを特徴とする、
請求項３に記載の符号列検査装置。
【請求項５】
符号化処理単位としてフレーム毎に符号化された符号化データに基づいて生成された検査データが各フレームに対応する符号化データに付加された符号列が供給され、供給された前記符号列から、フレームを検出する符号列検査方法であって、
前記符号列の任意の位置をフレームの先頭候補と決定し、当該位置から所定ビットの仮検査データを取得する仮検査データ取得ステップと、
前記供給された符号列から、前記仮検査データ取得ステップで取得した前記仮検査データに連接するデータ列をデータ長を異ならせながら順次取得するデータ列取得ステップと、
前記データ列取得ステップで取得した前記データ長の異なるデータ列に基づいて順次検査データを生成する検査データ生成ステップと、
前記仮検査データ取得ステップで取得した前記仮検査データと前記検査データ生成ステップで順次生成した前記検査データとを比較して一致が得られたときの検査データの基となった長さのデータ列をフレームであると判別する符号化データ判別ステップと、を備えた、
ことを特徴とする符号列検査方法。
【請求項６】
符号化処理単位としてフレーム毎に符号化された符号化データに基づいて生成された検査データが各フレームに対応する符号化データに付加された符号列が供給され、供給された前記符号列から、フレームを検出する符号列検査装置に用いられるコンピュータを、
前記符号列の任意の位置をフレームの先頭候補と決定し、当該位置から所定ビットの仮検査データを取得する仮検査データ取得手段と、
前記供給された符号列から、前記仮検査データ取得手段が取得した前記仮検査データに連接するデータ列をデータ長を異ならせながら順次取得するデータ列取得手段と、
前記データ列取得手段が取得した前記データ長の異なるデータ列に基づいて順次検査データを生成する検査データ生成手段と、
前記仮検査データ取得手段が取得した前記仮検査データと前記検査データ生成手段が順次生成した前記検査データとを比較して一致が得られたときの検査データの基となった長さのデータ列をフレームであると判別する符号化データ判別手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号列検査装置、符号列検査方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来、人間の聴覚の特性に基づいて音声符号化を行い、この符号化データを復号化する音声処理装置がある（例えば、特許文献１参照）。
【０００３】
音声処理装置は、録音時にデジタル音声信号を符号化し、再生時に符号化されて生成された符号列を復号化する。尚、符号化時、デジタル音声信号は、フレームに分割され、符号化は、フレーム毎に行われる。
【０００４】
このような音声処理装置は、電子辞書装置の電子辞書のような語学辞書において発音される単語の音声用としても利用される。語学辞書用の音声処理装置では、十分な音質を確保しつつ、16kbps程度のデータレートを確保しなければならない。このため、語学辞書用の音声処理装置では、フレーム毎に生成された符号列に、フレームの検出が可能な長いヘッダを付加することができない。
【０００５】
語学辞書では、１つ１つの単語の音声のデータストリームがあまり長くないため、符号列にヘッダが付加されていなくても、データストリームの先頭から再生すれば、音声は、問題なく再生される。
【特許文献１】特開２００５−１２８４０４号公報（第４−１０頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、例えば、語学辞書の例文のようにデータストリームが長くなった場合、データストリームの途中から音声を再生しようとしても、符号列にヘッダがなければ、フレームを検出することができず、音声を再生することはできない。従って、ヘッダがなくてもフレームを判別できるようにした方が好ましい。
【０００７】
本発明は、このような従来の問題点に鑑みてなされたもので、符号化処理単位としてのフレームの判別が可能な符号列検査装置、符号列検査方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するため、本発明の第１の観点に係る符号列検査装置は、
符号化処理単位としてフレーム毎に符号化された符号化データに基づいて生成された検査データが各フレームに対応する符号化データに付加された符号列が供給され、供給された前記符号列から、フレームを検出する符号列検査装置であって、
前記符号列の任意の位置をフレームの先頭候補と決定し、当該位置から所定ビットの仮検査データを取得する仮検査データ取得部と、
前記供給された符号列から、前記仮検査データ取得部が取得した前記仮検査データに連接するデータ列をデータ長を異ならせながら順次取得するデータ列取得部と、
前記データ列取得部が取得した前記データ長の異なるデータ列に基づいて順次検査データを生成する検査データ生成部と、
前記仮検査データ取得部が取得した前記仮検査データと前記検査データ生成部が順次生成した前記検査データとを比較して一致が得られたときの検査データの基となった長さのデータ列をフレームであると判別する符号化データ判別部と、を備えたことを特徴とする。
【００１４】
本発明の第２の観点に係る符号列検査方法は、
符号化処理単位としてフレーム毎に符号化された符号化データに基づいて生成された検査データが各フレームに対応する符号化データに付加された符号列が供給され、供給された前記符号列から、フレームを検出する符号列検査方法であって、
前記符号列の任意の位置をフレームの先頭候補と決定し、当該位置から所定ビットの仮検査データを取得する仮検査データ取得ステップと、
前記供給された符号列から、前記仮検査データ取得ステップで取得した前記仮検査データに連接するデータ列をデータ長を異ならせながら順次取得するデータ列取得ステップと、
前記データ列取得ステップで取得した前記データ長の異なるデータ列に基づいて順次検査データを生成する検査データ生成ステップと、
前記仮検査データ取得ステップで取得した前記仮検査データと前記検査データ生成ステップで順次生成した前記検査データとを比較して一致が得られたときの検査データの基となった長さのデータ列をフレームであると判別する符号化データ判別ステップと、を備えたことを特徴とする。
【００１５】
本発明の第３の観点に係るプログラムは、
符号化処理単位としてフレーム毎に符号化された符号化データに基づいて生成された検査データが各フレームに対応する符号化データに付加された符号列が供給され、供給された前記符号列から、フレームを検出する符号列検査装置に用いられるコンピュータを、
前記符号列の任意の位置をフレームの先頭候補と決定し、当該位置から所定ビットの仮検査データを取得する仮検査データ取得手段と、
前記供給された符号列から、前記仮検査データ取得手段が取得した前記仮検査データに連接するデータ列をデータ長を異ならせながら順次取得するデータ列取得手段と、
前記データ列取得手段が取得した前記データ長の異なるデータ列に基づいて順次検査データを生成する検査データ生成手段と、
前記仮検査データ取得手段が取得した前記仮検査データと前記検査データ生成手段が順次生成した前記検査データとを比較して一致が得られたときの検査データの基となった長さのデータ列をフレームであると判別する符号化データ判別手段、
として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、フレームを判別することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態に係る符号列検査装置を図面を参照して説明する。尚、本実施形態では、符号列検査装置を音声処理装置に適用した場合について説明する。
【００１８】
本実施形態に係る音声処理装置の構成を図１に示す。
本実施形態に係る音声処理装置１は、音声入力装置１１と、記憶装置１２と、ＲＯＭ１３と、ＲＡＭ１４と、ＣＰＵ１５と、を備える。これらのものは、バスを介して接続される。
【００１９】
この音声処理装置１は、例えば、語学辞書用のものであり、16kbps程度のデータレートを確保するようにしている。また、この音声処理装置１は、各フレームデータの先頭にＣＲＣ（Cyclic Redundancy Check；巡回冗長検査）データを格納して符号化し、復号化する際に、このＣＲＣデータを利用してフレームデータの先頭を検出するように構成されている。
【００２０】
音声入力装置１１は、入力された音声をデジタル音声信号に変換するものである。音声入力装置１１は、例えば、入力音声をサンプリング周波数１６ｋＨｚでサンプリングし、１６ビットで量子化してデジタル音声信号に変換する。
【００２１】
記憶装置１２は、音声入力装置１１が変換したデジタル音声信号を記憶するとともに、このデジタル音声信号の符号化処理に必要なデータを記憶するものである。
【００２２】
ＲＯＭ１３は、ＣＰＵ１５が音声処理に必要なプログラムのデータ等を記憶するものである。ＲＡＭ１４は、ＣＰＵ１５が処理に必要なデータを記憶するものである。
【００２３】
ＣＰＵ１５は、ＲＯＭ１３に記憶されたプログラムデータに従って、各処理を実行するものであり、符号化部１５−１と復号化部１５−２とを備える。
【００２４】
符号化部１５−１は、音声入力装置１１が変換したデジタル音声信号の符号化を行うものであり、図２に示すように、ＤＣ削除部２１と、フレーム（frame）化部２２と、レベル（Level）調整部２３と、ＭＤＣＴ（Modified Descrete Cosine Transform, 修正離散コサイン変換）部２４と、帯域分割部２５と、最大値検索部２６と、シフト数算出部２７と、シフト処理部２８と、帯域別量子化部２９と、符号量比較部３０と、符号化帯域選択部３１と、エントロピー符号化部３２と、ＣＲＣ算出部３３と、によって構成される。
【００２５】
ＤＣ削除部２１は、音声入力装置１１が変換したデジタル音声信号から、直流成分を削除するものである。直流成分を削除するのは、直流成分が音質に関係しないためである。ＤＣ削除部２１は、例えば、次の式（１）によって表される高域通過フィルタによって構成される。
【数１】
0005040689.tif 000002
・・・（１）
【００２６】
フレーム化部２２は、ＤＣ削除部２１が直流成分を削除したデジタル音声信号を、ＭＤＣＴ部２４が行う圧縮の処理単位であるフレームに分割するものである。フレーム化部２２は、ＭＤＣＴを行う処理単位を１ブロックとして、１フレームにｍ個（ｍ≧１）のブロックが含まれるように、フレーム長を設定する。尚、１ブロックは、ＭＤＣＴ係数の次数分の長さを有している。
【００２７】
レベル調整部２３は、入力されたデジタル音声信号のレベル（振幅）を、フレーム化部２２が分割したフレーム毎に調整するものである。レベル調整部２３は、フレーム中に含まれる信号の振幅の最大値が、指定されたビット（以下、制圧目標ビット）数に収まるように、レベル調整を行う。
【００２８】
例えば、１フレーム中の信号の最大振幅がｎビットのデータで表されるものとして、制圧目標ビット数をＮとすると、レベル調整部２３は、次の式（２）に従い、フレーム中の信号のビットをＬＳＢ（Least Significant Bit）側にシフトすることにより、デジタル音声信号のレベル調整を行う。
【数２】
0005040689.tif 000003
・・・（２）
尚、デジタル音声信号の場合、制圧目標ビット数Ｎは、例えば、１０ビット程度とされる。
【００２９】
ＭＤＣＴ部２４は、レベル調整部２３がレベル調整したデジタル音声信号に対して、ブロック毎に周波数変換を行い、ＭＤＣＴ係数を算出するものである。ＭＤＣＴ部２４は、次の式（３）に従い、ＭＤＣＴ係数を算出する。
【数３】
0005040689.tif 000004
・・・（３）
尚、ＭＤＣＴ係数のタップ長Ｍは５１２タップが理想的である。
【００３０】
帯域分割部２５は、ＭＤＣＴ部２４が算出したＭＤＣＴ係数を各周波数帯域に分割する（区分けする）ものである。帯域分割部２５は、人間の聴覚の特性に合わせて、ＭＤＣＴ係数を、低域（低周波数帯域）ほど狭く、高域（高周波数帯域）ほど広くなるように分割する。
【００３１】
サンプリング周波数が16kHzの場合、帯域分割部２５は、分割するスレッシュ周波数を187.5Hz，437.5Hz，687.5Hz，987.5Hz，1312.5Hz，2312.5Hz，3250Hz，4625Hz，6500Hzとして、ＭＤＣＴ係数を１１帯域に分割する。
【００３２】
最大値検索部２６は、帯域分割部２５が分割した各帯域毎に、ＭＤＣＴ係数の絶対値の最大値を検索するものである。
【００３３】
シフト数算出部２７は、最大値検索部２６が各分割帯域毎に検索したＭＤＣＴ係数の絶対値の最大値が、各帯域で予め与えられた量子化ビット数以下の値になるように、シフトするビット数（以下、シフトビット数と記す。）を算出するものである。
【００３４】
この量子化ビット数は、人間の聴覚の特性に基づいて、低域ほど多く、高域ほど少なくなるように、各帯域毎に予め設定され、低域から高域にかけて、例えば、８〜５ビット程度の量子化ビット数が割り当てられる。
【００３５】
ＭＤＣＴ係数の絶対値の最大値が、例えば、１１０であり、予め与えられた量子化ビット数が６ビットである場合、シフト数算出部２７は、シフトビット数を２とする。
【００３６】
シフト処理部２８は、シフト数算出部２７が算出したシフトビット数に従って、分割した各帯域中の全てのＭＤＣＴ係数をシフトするものである。
【００３７】
帯域別量子化部２９は、図３に示すように、全体の帯域を低域、中域、高域の３つに分け、シフト処理部２８がシフトした結果の値を帯域毎に異なる精度で量子化するものである。帯域別量子化部２９は、小さい値ほど細かく、大きな値ほど粗くなるように対数的な量子化を行う。
【００３８】
符号量比較部３０は、エントロピー符号化部３２が生成した符号化データの符号量と目標符号量とを比較するものである。符号量比較部３０は、この比較結果を符号化帯域選択部３１に供給する。
【００３９】
符号化帯域選択部３１は、エントロピー符号化部３２が符号化する帯域を選択するものである。符号化帯域選択部３１は、帯域毎に重要度を算出し、この重要度に基づいて、優先して符号化する帯域を選択する。
【００４０】
重要度を算出する最も単純な方法として、符号化帯域選択部３１は、各帯域毎の合計エネルギーを算出する。帯域をｉとして、帯域ｉの合計エネルギーｇiは、次の式（４）によって表される。
【数４】
0005040689.tif 000005
・・・（４）
【００４１】
符号化帯域選択部３１は、この式（４）に従って合計エネルギーｇiを算出し、この合計エネルギーｇiが高いほどこの帯域の重要度が高いと判定する。そして、符号化帯域選択部３１は、重要度の高い順に周波数帯域を選択する。尚、符号化帯域選択部３１は、場合に応じ、合計エネルギーｇiに、周波数に依存した重み係数を乗算する。
【００４２】
例えば、符号化帯域選択部３１は、５００Ｈｚ未満の周波数帯の周波数係数には、１．３を乗算し、５００以上３５００Ｈｚ未満の周波数帯の周波数係数には、１．１を乗算し、３５００Ｈｚ以上の周波数帯の周波数係数には、１．３を乗算する。
【００４３】
符号化帯域選択部３１は、符号量比較部３０から供給された比較結果に基づいて、符号化データの符号量が目標符号量に達したか否かを判別し、符号化データの符号量が目標符号量に達するまで、符号化する帯域を選択する。
【００４４】
エントロピー符号化部３２は、符号化帯域選択部３１が選択した周波数帯域のＭＤＣＴ係数を、RangeCoder、ハフマンコード等のエントロピー符号化に従って符号化し、符号化データを生成するものである。
【００４５】
ＣＲＣ算出部３３は、生成された１フレーム分のビット列のＣＲＣデータを算出するものであり、本実施形態では、前述のようにフレームの先頭の検出に、このＣＲＣデータが利用される。
【００４６】
ＣＲＣは、伝送されるデータの誤りをチェックする検査方法であり、送信側でビット列（データフレーム）をある生成多項式で割った余りをＣＲＣデータとしてビット列に付加し、受信側では、このＣＲＣデータに基づいて誤りを検査する方法である。
【００４７】
受信側で受信したビット列を上記生成多項式で割って計算されたＣＲＣデータと、送信側のＣＲＣデータと、が一致すれば、データは誤りなく伝送されたことになり、不一致であれば、伝送されたデータに誤りがあることになる。
【００４８】
ＣＲＣ算出部３３は、例えば、１６ビットの計算値が算出されるＣＲＣ−ＣＣＩＴＴ、ＣＲＣ−１６等を用い、フレーム毎に符号化された符号化データに基づいてＣＲＣデータを算出する。
【００４９】
尚、16kbps程度のビットレートを実現する音声圧縮では、１フレームに２バイトのＣＲＣデータは、大きすぎるため、ＣＲＣ算出部３３は、算出したＣＲＣデータの上位バイトと下位バイトとの排他的論理和演算をビット毎に行い、２バイトのＣＲＣデータを１バイトのデータに再計算する。
【００５０】
符号化部１５−１は、このようにしてデジタル音声信号をフレーム毎に符号化し、ＣＲＣ算出部３３がＣＲＣデータを、各フレームの先頭に付加して符号列（bit stream；ビットストリーム）を生成する。符号化１５−１は、生成した符号列を記憶装置１２に記憶する。
【００５１】
図１に示す復号化部１５−２は、記憶装置１２からこの符号列を読み出してデジタル音声信号を復号化するものであり、図４に示すように、エントロピー復号化部４１と、帯域別逆量子化部４２と、シフト処理部４３と、ＩＭＤＣＴ部４４と、レベル再現部４５と、を備える。
【００５２】
エントロピー復号化部４１は、符号列が供給され、デジタル音声信号のエントロピー復号を行うものである。
【００５３】
エントロピー復号化部４１は、供給された符号列にヘッダがないため、フレーム毎の符号化データに付加されたＣＲＣデータに基づいてフレームを検出する。
【００５４】
このため、エントロピー復号化部４１は、符号列のなかから、フレームの先頭候補を決定し、仮のＣＲＣデータを決定し、この仮のＣＲＣデータを取得する。
【００５５】
エントロピー復号化部４１は、ＣＲＣチェック部４１ａを備え、ＣＲＣチェック部４１ａは、このＣＲＣデータの後に連接するデータ列のＣＲＣデータを算出する。
【００５６】
エントロピー復号化部４１は、このＣＲＣデータの後に続くデータ列のデータ長を可変して、ＣＲＣチェック部４１ａが算出したＣＲＣデータと仮のＣＲＣデータとが一致するまで、このデータ列のデータ長を変更する。
【００５７】
このようにして、エントロピー復号化部４１は、仮のＣＲＣデータに基づいて、データ列のデータ長をチェックする。
【００５８】
そして、仮のＣＲＣデータと算出したＣＲＣデータとが一致したときのデータ長のデータ列を仮のフレームとする。
【００５９】
また、符号化時の目標データレートが16kbpsであるため、この目標データレートから、１フレームに利用できる最大のフレーム長が決まってくる。
【００６０】
このため、エントロピー復号化部４１は、ＣＲＣデータを算出したデータ列のデータ長をL_frame、最大のフレーム長をLmaxとして、データ長L_frameが最大フレーム長さLmaxを超えた場合、当該先頭候補は、フレームの先頭ではないと判定する。
【００６１】
データ長L_frameが最大フレーム長さLmax以下の場合、エントロピー復号化部４１は、この仮のフレームのデータを復号化する。
【００６２】
エントロピー復号化部４１は、このデータがそもそもエントロピー復号か可能なビット列であり、１フレーム分のデータ列のエントロピー復号化を行って、復号化に利用した長さがＣＲＣデータに基づいて決定された長さと一致した場合、この仮のフレームを正しいフレームと判別する。
【００６３】
一方、エントロピー復号化部４１は、エントロピー復号化が不能と判定した場合、次にＣＲＣデータが一致する長さを算出する。
【００６４】
エントロピー復号化部４１は、先頭候補からフレームを検出できなかった場合、先頭候補を変更して、同じような処理を行い、フレームのデータを判別する。
【００６５】
帯域別逆量子化部４２は、エントロピー復号化部４１が復号化したデータ列を、３つの帯域別に逆量子化するものである。帯域別逆量子化部４２は、帯域別のデータがなかった場合、この帯域にデータ０を入力する。
【００６６】
シフト処理部４３は、シフトされた値を元に戻す処理を行うものである。
【００６７】
ＩＭＤＣＴ部４４は、逆ＭＤＣＴを行ってデータを時間軸に変換するものである。
【００６８】
レベル再現部４５は、調整したレベルを再現して音声信号に戻す処理を行うものである。
【００６９】
次に本実施形態に係る音声処理装置１の動作を説明する。
録音時、音声が入力されると、音声入力装置１１は、入力された音声をデジタル音声信号に変換する。
【００７０】
ＣＰＵ１５の符号化部１５−１は、音声入力装置１１が変換したデジタル音声信号を取得し、ＤＣ削除部２１は、式（１）に従って、このデジタル音声信号から、直流成分を削除する。
【００７１】
フレーム化部２２は、直流成分を削除したデジタル音声信号をフレームに分割し、レベル調整部２３は、式（２）に従い、このデジタル音声信号のレベルをフレーム毎に調整する。ＭＤＣＴ部２４は、式（３）に従い、ＭＤＣＴブロックごとに周波数変換を行い、ＭＤＣＴ係数を算出する。
【００７２】
帯域分割部２５は、ＭＤＣＴ部２４が算出したＭＤＣＴ係数の周波数帯域を、人間の聴覚の特性に合わせて分割し、最大値検索部２６は、帯域分割部２５が分割した各帯域毎に、帯域中に含まれるＭＤＣＴ係数の絶対値の最大値を検索する。
【００７３】
シフト処理部２８は、全体の帯域を低域、中域、高域の３つに分け、シフト処理部２８がシフトした結果の値を帯域毎に異なる精度で量子化する。
【００７４】
符号化帯域選択部３１は、符号化帯域を選択し、エントロピー符号化部３２は、目標符号量にあわせた符号化データを生成する。
【００７５】
符号量比較部３０は、エントロピー符号化部３２が生成した符号化データの符号量と目標符号量とを比較し、符号化データの符号量が目標符号量に達すると、符号化帯域選択部３１は、符号化帯域の選択を停止し、エントロピー符号化部３２の符号化は停止する。
【００７６】
ＣＲＣ算出部３３は、生成された１フレーム分のビット列のＣＲＣデータを算出し、符号化部１５−１は、ＣＲＣ算出部３３が算出したＣＲＣデータを、各フレームの先頭に付加する。
【００７７】
符号化部１５−１は、このようにして生成した符号化列を記憶装置１２に書き込む。
【００７８】
この音声を再生する場合、ＣＰＵ１５は、ＲＯＭ１３が記憶するプログラムデータを読み出し、復号化部１５−２のエントロピー復号化部４１は、図５に示すフローチャートに従い、復号化処理を実行する。
【００７９】
エントロピー復号化部４１は、フレームの先頭候補を決定する（ステップＳ１１）。
【００８０】
エントロピー復号化部４１は、仮のＣＲＣデータを決定し、この仮のＣＲＣデータを取得する（ステップＳ１２）。
【００８１】
エントロピー復号化部４１は、フレーム判別処理を実行する（ステップＳ１３）。エントロピー復号化部４１は、図６に示すフローチャートに従い、フレーム判別処理（１）を実行する。
【００８２】
エントロピー復号化部４１は、データ長を設定する（ステップＳ２１）。
【００８３】
ＣＲＣチェック部４１ａは、ＣＲＣチェック処理を実行する（ステップＳ２２）。ＣＲＣチェック部４１ａは、図７に示すフローチャートに従い、このＣＲＣチェック処理を実行する。
【００８４】
ＣＲＣチェック部４１ａは、仮決めしたＣＲＣデータに連接するデータ列を取得し、当該データ列のＣＲＣデータを計算する（ステップＳ３１）。
【００８５】
ＣＲＣチェック部４１ａは、仮決めしたＣＲＣデータと、計算したＣＲＣデータと、が一致したか否かを判定する（ステップＳ３２）。
【００８６】
仮決めしたＣＲＣデータと、計算したＣＲＣデータと、が一致していないと判定した場合（ステップＳ３２；Ｎｏ）、ＣＲＣチェック部４１ａは、データ長を変更して（ステップＳ３３）、再度、仮決めしたＣＲＣデータに連接するデータ列を取得し、当該データのＣＲＣデータを計算する（ステップＳ３１）。
【００８７】
仮決めしたＣＲＣデータと、計算したＣＲＣデータと、が一致したと判定した場合（ステップＳ１４；Ｙｅｓ）、ＣＲＣチェック部４１ａは、このＣＲＣチェック処理を終了させる。
【００８８】
ＣＲＣチェック部４１ａが、ＣＲＣチェック処理を実行すると、エントロピー復号化部４１は、データ列が一致した仮のデータの仮のフレーム長L_frameと最大フレーム長Lmaxとを比較し、仮のフレーム長L_frameが最大フレーム長Lmaxを超えているか否かを判定する（ステップＳ２３）。
【００８９】
仮のフレーム長L_frameが最大フレーム長Lmaxを超えていると判定した場合（ステップＳ２３；Ｙｅｓ）、エントロピー復号化部４１は、当該先頭候補はフレームの先頭ではないと判別し（ステップＳ２４）、ＮＧの判別結果とする（ステップＳ２５）。
【００９０】
仮のフレーム長L_frameが最大フレーム長Lmax以下と判定した場合（ステップＳ２３；Ｎｏ）、エントロピー復号化部４１は、エントロピー復号化を行う（ステップＳ２６）。
【００９１】
エントロピー復号化部４１は、エントロピー復号化が成功したか否かを判定する（ステップＳ２７）。
【００９２】
エントロピー復号化が成功しなかったと判定した場合（ステップＳ２７；Ｎｏ）、エントロピー復号化部４１は、仮決めしたＣＲＣデータとＣＲＣチェック部４１ａが計算したＣＲＣデータとは偶然一致したものと判別し（ステップＳ２８）、ＮＧの判別結果とする（ステップＳ２５）。
【００９３】
一方、エントロピー復号化が成功したと判定した場合（ステップＳ２７；Ｙｅｓ）、エントロピー復号化部４１は、決定した先頭候補が正しいフレームの先頭であり、フレームを検出できたと判別し、ＯＫの判定結果とする（ステップＳ２９）。
【００９４】
エントロピー復号化部４１は、このようにフレーム判別処理を実行し、判別結果がＮＧの場合（ステップＳ１４；ＮＧ）、先頭候補となるべきデータが他にあるか否かを判定する（ステップＳ１５）。
【００９５】
先頭候補となるべきデータが他にあると判定した場合（ステップＳ１５；Ｙｅｓ）、エントロピー復号化部４１は、先頭候補を変更し（ステップＳ１６）、再度、フレーム判別処理を実行する（ステップＳ１３）。
【００９６】
先頭候補となるべきデータが他にはないと判定した場合（ステップＳ１５；Ｎｏ）、エントロピー復号化部４１は、この復号化処理を終了させる。
【００９７】
判別結果がＯＫの場合（ステップＳ１４；ＯＫ）、エントロピー復号化部４１は、他にフレームがあるか否かを判定する（ステップＳ１７）。
【００９８】
他にフレームがあると判定した場合（ステップＳ１７；Ｙｅｓ）、エントロピー復号化部４１は、次のフレームの先頭候補を決定し（ステップＳ１８）、再度、フレーム判別処理を実行する（ステップＳ１３）。
【００９９】
他にフレームがないと判定した場合（ステップＳ１７；Ｎｏ）、エントロピー復号化部４１は、この復号化処理を終了させる。
【０１００】
次に、この復号化処理を具体的に説明する。
図８に示すように、エントロピー復号化部４１は、符号列のうちから、先頭候補を決定し（ステップＳ１１の処理）、仮のＣＲＣデータを決定し、この仮のＣＲＣデータを取得する（ステップＳ１２の処理）。
【０１０１】
エントロピー復号化部４１は、符号列から、データ長を設定して（ステップＳ２１の処理）、仮のＣＲＣデータに連接するデータ列ｄ１を取得する。
【０１０２】
ＣＲＣチェック部４１ａは、このデータ列ｄ１のＣＲＣデータを算出する（ステップＳ２１，Ｓ２２，Ｓ３１の処理）。
【０１０３】
仮のＣＲＣデータと算出したＣＲＣデータとが不一致の場合（ステップＳ３２；Ｎｏ）、エントロピー復号化部４１は、データ長を変更して（ステップＳ３３の処理）、データ列ｄ２を取得し、ＣＲＣチェック部４１ａは、再度、このデータ列ｄ２のＣＲＣデータを算出する（ステップＳ３３，Ｓ３１の処理）。
【０１０４】
仮のＣＲＣデータと算出したデータ列ｄ２のＣＲＣデータとが一致した場合（ステップＳ３２；Ｙｅｓ）、エントロピー復号化部４１は、このデータ列ｄ２を仮のフレームに決定する。
【０１０５】
仮のフレームのフレーム長L_frameが最大フレーム長Lmaxを超えている場合（ステップＳ２３；Ｙｅｓ）、エントロピー復号化部４１は、この先頭候補は、フレームの先頭ではないと判別する（ステップＳ２４の処理）。
【０１０６】
一方、仮のフレームのフレーム長L_frameが最大フレーム長Lmax以下の場合（ステップＳ２３；Ｎｏ）、エントロピー復号化部４１は、このデータ列ｄ２を復号化し（ステップＳ２６）、復号化できなかった場合（ステップＳ２７；Ｎｏ）、仮決めしたＣＲＣデータと計算したＣＲＣデータとは偶然一致したと判別する（ステップＳ２５の処理）。
【０１０７】
復号化できた場合（ステップＳ２７；Ｙｅｓ）、エントロピー復号化部４１は、フレームを検出できたと判別する（ステップＳ２９）。
【０１０８】
帯域別逆量子化部４２は、エントロピー復号化部４１がこのように復号化したデータ列を、３つの帯域別に逆量子化し、帯域別のデータがなかった場合、この帯域にデータ０を入力する。
【０１０９】
シフト処理部４３は、シフトされた値を元に戻す処理を行い、ＩＭＤＣＴ部４４は、逆ＭＤＣＴを行ってデータを時間軸に変換する。レベル再現部４５は、調整したレベルを再現してデータをデジタル音声信号に戻す。
【０１１０】
以上説明したように、本実施形態によれば、エントロピー復号化部４１は、符号化データの先頭候補を決定して、仮のＣＲＣデータとＣＲＣチェック部４１ａが計算したＣＲＣデータとを比較し、さらに、エントロピー復号化を行ってフレームの先頭を検出するようにした。
【０１１１】
従って、各フレームにヘッダがなくても、ＣＲＣデータに基づいてフレームの先頭を判別することができ、16kbpsのデータレートで学習用途に耐える音質を確保しつつ、デジタル音声信号を復号化することができる。
【０１１２】
尚、本発明を実施するにあたっては、種々の形態が考えられ、上記実施形態に限られるものではない。
例えば、上記実施形態では、仮のＣＲＣデータと、計算によって求められたフレームのＣＲＣデータと、が一致し、エントロピー復号化も成功した場合、エントロピー復号化部４１は、フレームを判別したものとした。
【０１１３】
しかし、２つのＣＲＣデータが偶然に一致し、エントロピー復号化も偶然成功するおそれもある。この場合、フレームを誤検出するおそれもある。このような誤検出を避けるため、数フレーム分、連続して検査することにより、フレームの検出精度をさらに向上させることができる。
【０１１４】
数フレーム分、連続して検査する場合、エントロピー復号化部４１は、図９及び図１０に示すフローチャートに従い、フレーム判別処理（２）を実行する。
【０１１５】
エントロピー復号化部４１は、上記実施形態と同様にステップＳ２１〜Ｓ２７を実行する。
【０１１６】
復号化が成功したと判定した場合（ステップＳ２７；Ｙｅｓ）、エントロピー復号化部４１は、判別した次のフレームの位置をフレームの先頭候補とする（ステップＳ４１）。
【０１１７】
エントロピー復号化部４１は、データ長を設定し（ステップＳ４２）、ＣＲＣチェック部４１ａは、ＣＲＣチェック処理を実行する（ステップＳ４３）。
【０１１８】
ＣＲＣチェック部４１ａが、ＣＲＣチェック処理を実行すると、エントロピー復号化部４１は、仮のフレーム長L_frameが最大フレーム長Lmaxを超えているか否かを判定する（ステップＳ４４）。
【０１１９】
仮のフレーム長L_frameが最大フレーム長Lmaxを超えていると判定した場合（ステップＳ４４；Ｙｅｓ）、エントロピー復号化部４１は、判定結果をＮＧの判別結果とする（ステップＳ２５）。
【０１２０】
仮のフレーム長L_frameが最大フレーム長Lmax以下と判定した場合（ステップＳ４４；Ｎｏ）、エントロピー復号化部４１は、エントロピー符号化を行う（ステップＳ４５）。
【０１２１】
エントロピー復号化部４１は、エントロピー復号化が成功したか否かを判定する（ステップＳ４６）。
【０１２２】
エントロピー復号化が成功しなかったと判定した場合（ステップＳ４６；Ｎｏ）、エントロピー復号化部４１は、判定結果をＮＧの判別結果とする（ステップＳ２５）。
【０１２３】
一方、エントロピー復号化が成功したと判定した場合（ステップＳ４６；Ｙｅｓ）、エントロピー復号化部４１は、指定されたフレーム数だけ検査したか否かを判定する（ステップＳ４７；Ｙｅｓ）
【０１２４】
指定されたフレーム数のフレーム検査を行っていないと判定した場合（ステップＳ４７；Ｎｏ）、エントロピー復号化部４１は、再度、ステップＳ４２〜Ｓ４６を実行する。
【０１２５】
指定されたフレーム数だけ検査したと判定した場合（ステップＳ４７；Ｙｅｓ）、エントロピー復号化部４１は、決定した次の先頭候補についても、正しいフレームの先頭であり、次のフレームを検出できたと判別し、ＯＫの判定結果とする（ステップＳ２９）。
【０１２６】
上記実施形態では、符号列検査装置を音声処理装置に適用した場合について説明した。しかし、符号列検査装置は、音声処理装置に限られるものではなく、種々の復号化装置等に適用することができる。
【０１２７】
また、上記実施形態では、プログラムが、それぞれメモリ等に予め記憶されているものとして説明した。しかし、符号列検査装置を、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１２８】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【図面の簡単な説明】
【０１２９】
【図１】本発明の実施形態に係る音声処理装置の構成を示すブロック図である。
【図２】図１に示す符号化部の構成を示すブロック図である。
【図３】量子化を行う際に分けた３つの帯域を示す図である。
【図４】図１に示す復号化部の構成を示すブロック図である。
【図５】図４に示すエントロピー復号化部が実行する復号化処理を示すフローチャートである。
【図６】図４に示すエントロピー復号化部が実行するフレーム判別処理（１）を示すフローチャートである。
【図７】図４に示すエントロピー復号化部が実行するＣＲＣチェック処理を示すフローチャートである。
【図８】復号化処理の具体例を示す図である。
【図９】図４に示すエントロピー復号化部が実行するフレーム判別処理（２）を示すフローチャート（その１）である。
【図１０】図４に示すエントロピー復号化部が実行するフレーム判別処理（２）を示すフローチャート（その２）である。
【符号の説明】
【０１３０】
１・・・音声処理装置、１５・・・ＣＰＵ、１５−１・・・符号化部、１５−２・・・復号化部、３３・・・ＣＲＣ算出部、４１・・・エントロピー復号化部、４１ａ・・・ＣＲＣチェック部
【図１】
0005040689.tif 000006
【図２】
0005040689.tif 000007
【図３】
0005040689.tif 000008
【図４】
0005040689.tif 000009
【図５】
0005040689.tif 000010
【図６】
0005040689.tif 000011
【図７】
0005040689.tif 000012
【図８】
0005040689.tif 000013
【図９】
0005040689.tif 000014
【図１０】
0005040689.tif 000015