図面 (/)

技術 符号化装置、復号化装置、符号化方法、復号化方法及びプログラム

出願人 カシオ計算機株式会社
発明者 井手博康
出願日 2008年2月29日 (11年4ヶ月経過) 出願番号 2008-049708
公開日 2009年9月10日 (9年10ヶ月経過) 公開番号 2009-205085
状態 特許登録済
技術分野 音声の分析・合成
主要キーワード 除外データ 包絡値 連結順序 次数分 フラグ列 復元用データ 各分割周波数帯 分割周波数帯域
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2009年9月10日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題

符号化効率を向上させるようにデータを符号化し、また、この符号化されたデータを復号化する。

解決手段

フラグ生成部30は、対応する周波数MDCT係数符号化対象とするか符号化対象から除外するかを示すフラグを周波数毎に生成し、生成したフラグを周波数順に連結することにより第1のフラグ列を生成する。フラグローテート部31は、第1のフラグ列をローテートすることにより、「0」が末尾に多く連続する第2のフラグ列を生成する。エントロピー符号化部32は、符号化対象のMDCT係数と第2のフラグ列から第1のフラグ列を復元するためのデータとを符号化するとともに、残りの記号が全て「0」であることを示す符号を用いて第2のフラグ列を符号化する。

概要

背景

従来、発音機能を搭載した電子辞書装置が知られている。このような電子辞書装置は、例えば、録音時に各単語に対応する音声信号を符号化してメモリに記憶し、再生時にメモリに記憶されたデータを復号化して再生する。ここで、十分な音質を確保したままビットレートを低く抑えるためには、高い符号化効率圧縮効率)で音声信号を符号化する必要がある。かかる目的を達成するための技術として、例えば、特許文献1には、人間の聴覚の特性に基づいて音声信号を符号化する音声処理装置が開示されている。

特許文献1に開示された音声処理装置は、まず、音声信号を複数のブロックからなるフレームに分割する。そして、音声処理装置は、1フレーム分の音声信号をブロック毎に周波数変換することにより、ブロック毎に各周波数MDCT係数を求める。次に、音声処理装置は、1フレーム分のMDCT係数に基づいて各周波数の重要度を設定する。具体的には、音声処理装置は、各周波数の1フレーム分のMDCT係数から当該周波数のエネルギーを求め、エネルギーが高い周波数ほど重要度を高く設定する。

音声処理装置は、所定のビットレート(例えば、16kbps程度)に達するまで、すなわち、符号量が所定の符号量に達するまで、重要度の高い周波数から順番にMDCT係数を符号化する。このため、重量度の低い周波数のMDCT係数は符号化されない。ここで、音声処理装置は、各周波数が、MDCT係数が符号化された周波数であるか否かを判別するためのフラグ列を生成し、作成したフラグ列も符号化する。
特開2007−193043号公報

概要

符号化効率を向上させるようにデータを符号化し、また、この符号化されたデータを復号化する。フラグ生成部30は、対応する周波数のMDCT係数を符号化対象とするか符号化対象から除外するかを示すフラグを周波数毎に生成し、生成したフラグを周波数順に連結することにより第1のフラグ列を生成する。フラグローテート部31は、第1のフラグ列をローテートすることにより、「0」が末尾に多く連続する第2のフラグ列を生成する。エントロピー符号化部32は、符号化対象のMDCT係数と第2のフラグ列から第1のフラグ列を復元するためのデータとを符号化するとともに、残りの記号が全て「0」であることを示す符号を用いて第2のフラグ列を符号化する。

目的

本発明は、上記問題に鑑みてなされたものであり、符号化効率を向上することが可能な符号化装置符号化方法及びこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。また、本発明は、上記符号化装置、符号化方法又はプログラムにより符号化されたデータからデジタル信号を復号化することが可能な復号化装置復号化方法及びこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

デジタル信号周波数変換して周波数変換係数を求める周波数変換手段と、前記周波数変換手段が求めた周波数変換係数を量子化する量子化手段と、対応する周波数の周波数変換係数を符号化対象とするか符号化対象から除外するかを示す記号を周波数毎に生成し、生成した記号を周波数順に連結することにより第1の記号列を生成する記号列生成手段と、前記記号列生成手段が生成した第1の記号列をローテートすることにより特定の記号が末尾に多く連続する第2の記号列を生成するローテート手段と、前記量子化手段が量子化した周波数変換係数のうち前記記号列生成手段が生成した第1の記号列により符号化対象とすることが示された周波数の周波数変換係数と復号化の際に第2の記号列に基づいて第1の記号列を復元するための記号列復元用データとを符号化するとともに、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテート手段が生成した第2の記号列を先頭から順に符号化する符号化手段と、前記符号化手段が符号化したデータの合計符号量が予め設定された目標符号量を超えているか否かを判別する符号量超過判別手段と、前記符号量超過判別手段により合計符号量が目標符号量を超えていると判別された場合に、符号化対象から除外する周波数変換係数の周波数を求め、当該周波数の周波数変換係数を削除するデータ削除手段と、を備え、前記記号列生成手段は、前記データ削除手段が削除した周波数変換係数については符号化対象から除外するように第1の記号列を生成する、ことを特徴とする符号化装置

請求項2

前記ローテート手段は、前記記号列生成手段が生成した第1の記号列をローテートすることにより得られる記号列のうち、特定の記号が末尾に最も長く連続する記号列を第2の記号列として生成するとともに、第1の記号列から第2の記号列を生成するために必要なローテート数を求め、前記符号化手段は、前記ローテート手段が生成したローテート数を記号列復元用データとして符号化する、ことを特徴とする請求項1に記載の符号化装置。

請求項3

前記符号化手段は、前記ローテート手段が生成したローテート数に換えて、当該ローテート数と前回の符号化の際に前記ローテート手段が生成したローテート数との差分を記号列復元用データとして符号化する、ことを特徴とする請求項2に記載の符号化装置。

請求項4

前記周波数変換手段が求めた周波数変換係数の全周波数帯域を複数の分割周波数帯域に分割する周波数帯域分割手段と、分割周波数帯域毎に、前記周波数変換手段が求めた周波数変換係数のうち前記前記データ削除手段により削除されていない周波数変換係数の絶対値の最大値包絡値として取得する包絡値取得手段と、をさらに備え、前記量子化手段は、各分割周波数帯域に含まれる周波数変換係数を、前記包絡値取得手段が取得した分割周波数帯域毎の包絡値のうち当該分割周波数帯域の包絡値で除算することにより量子化し、前記ローテート手段は、前記記号列生成手段が生成した第1の記号列を構成する各記号のうち、包絡値が0である分割周波数帯域に含まれる周波数に対応する記号を符号化対象から除外することを示す記号に置換し、包絡値が0ではない分割周波数帯域に含まれる周波数に対応する記号を符号化対象とすることを示す記号に置換した場合に得られる記号列を、各分割周波数帯域に含まれる周波数変換係数の個数ずつローテートした場合に得られる記号列のうち、特定の記号が末尾に最も長く連続する記号列を第2の記号列として生成し、前記符号化手段は、前記包絡値取得手段が生成した分割周波数帯域毎の包絡値を記号列復元用データとして符号化する、ことを特徴とする請求項1に記載の符号化装置。

請求項5

前記記号列生成手段が生成した第1の記号列をローテートすることにより得られる記号列のうち、特定の記号が末尾に最も長く連続する記号列を第2の記号列として生成するとともに、第1の記号列から第2の記号列を生成するために必要なローテート数を求める第2のローテート手段、をさらに備え、前記符号化手段は、前記ローテート手段が生成した第2の記号列と前記第2のローテート手段が生成した第2の記号列とのうちいずれを符号化するかを選択し、前記ローテート手段が生成した第2の記号列を符号化することを選択した場合は、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテート手段が生成した第2の記号列を先頭から順に符号化するとともに、前記ローテート手段が生成したローテート数又は前回の符号化の際に前記ローテート手段が生成したローテート数との差分を記号列復元用データとして符号化し、前記第2のローテート手段が生成した第2の記号列を符号化することを選択した場合は、残りの記号が全て特定の記号であることを示す符号を用いて前記第2のローテート手段が生成した第2の記号列を先頭から順に符号化するとともに、前記包絡値取得手段が生成した分割周波数帯域毎の包絡値を記号列復元用データとして符号化する、ことを特徴とする請求項4に記載の符号化装置。

請求項6

請求項1乃至5のいずれか1項に記載の符号化装置によって符号化されたデータを周波数変換係数と第2の記号列と記号列復元用データとに復号化する復号化手段と、前記復号化手段が復号化したデータのうち、前記符号化対象から除外された周波数変換係数を、前記復号化手段が復号化した第2の記号列と記号列復元用データとに基づいて判別し、判別した周波数変換係数に、予め設定された値を挿入する除外データ補完手段と、前記復号化手段が復号化した周波数変換係数と前記除外データ補完手段が予め設定された値を挿入した周波数変換係数とを逆量子化する逆量子化手段と、前記逆量子化手段が逆量子化した周波数変換係数を逆周波数変換することによりデジタル信号を復元する逆周波数変換手段と、を備える、ことを特徴とする復号化装置

請求項7

デジタル信号を周波数変換して周波数変換係数を求める周波数変換ステップと、前記周波数変換ステップで求めた周波数変換係数を量子化する量子化ステップと、対応する周波数の周波数変換係数を符号化対象とするか符号化対象から除外するかを示す記号を周波数毎に生成し、生成した記号を周波数順に連結することにより第1の記号列を生成する記号列生成ステップと、前記記号列生成ステップで生成した第1の記号列をローテートすることにより特定の記号が末尾に多く連続する第2の記号列を生成するローテートステップと、前記量子化ステップで量子化した周波数変換係数のうち前記記号列生成ステップで生成した第1の記号列により符号化対象とすることが示された周波数の周波数変換係数と復号化の際に第2の記号列から第1の記号列を復元するための記号列復元用データとを符号化するとともに、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテートステップで生成した第2の記号列を先頭から順に符号化する符号化ステップと、前記符号化ステップで符号化したデータの合計符号量が予め設定された目標符号量を超えているか否かを判別する符号量超過判別ステップと、前記符号量超過判別ステップにより合計符号量が目標符号量を超えていると判別された場合に、符号化対象から除外する周波数変換係数の周波数を求め、当該周波数の周波数変換係数を削除するデータ削除ステップと、を備え、前記記号列生成ステップは、前記データ削除ステップで削除した周波数変換係数については符号化対象から除外するように第1の記号列を生成する、ことを特徴とする符号化方法

請求項8

請求項7項に記載の符号化方法によって符号化されたデータを周波数変換係数と第2の記号列と記号列復元用データとに復号化する復号化ステップと、前記復号化ステップで復号化したデータのうち、前記符号化対象から除外された周波数変換係数を、前記復号化ステップで復号化した第2の記号列と記号列復元用データとに基づいて判別し、判別した周波数変換係数に、予め設定された値を挿入する除外データ補完ステップと、前記復号化ステップで復号化した周波数変換係数と前記除外データ補完ステップで予め設定された値を挿入した周波数変換係数とを逆量子化する逆量子化ステップと、前記逆量子化ステップで逆量子化した周波数変換係数を逆周波数変換することによりデジタル信号を復元する逆周波数変換ステップと、を備える、ことを特徴とする復号化方法

請求項9

コンピュータを、デジタル信号を周波数変換して周波数変換係数を求める周波数変換手段、前記周波数変換手段が求めた周波数変換係数を量子化する量子化手段、対応する周波数の周波数変換係数を符号化対象とするか符号化対象から除外するかを示す記号を周波数毎に生成し、生成した記号を周波数順に連結することにより第1の記号列を生成する記号列生成手段、前記記号列生成手段が生成した第1の記号列をローテートすることにより特定の記号が末尾に多く連続する第2の記号列を生成するローテート手段、前記量子化手段が量子化した周波数変換係数のうち前記記号列生成手段が生成した第1の記号列により符号化対象とすることが示された周波数の周波数変換係数と復号化の際に第2の記号列から第1の記号列を復元するための記号列復元用データとを符号化し、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテート手段が生成した第2の記号列を先頭から順に符号化する符号化手段、前記符号化手段が符号化したデータの合計符号量が予め設定された目標符号量を超えているか否かを判別する符号量超過判別手段と、前記符号量超過判別手段により合計符号量が目標符号量を超えていると判別された場合に、符号化対象から除外する周波数変換係数の周波数を求め、当該周波数の周波数変換係数を削除するデータ削除手段、として機能させるためのプログラムであって、前記記号列生成手段は、前記データ削除手段が削除した周波数変換係数については符号化対象から除外するように第1の記号列を生成する、ことを特徴とするプログラム。

請求項10

コンピュータを、請求項9項に記載のプログラムによって符号化されたデータを周波数変換係数と第2の記号列と記号列復元用データとに復号化する復号化手段、前記復号化手段が復号化したデータのうち、前記符号化対象から除外された周波数変換係数を、前記復号化手段が復号化した第2の記号列と記号列復元用データとに基づいて判別し、判別した周波数変換係数に、予め設定された値を挿入する除外データ補完手段、前記復号化手段が復号化した周波数変換係数と前記除外データ補完手段が予め設定された値を挿入した周波数変換係数とを逆量子化する逆量子化手段、前記逆量子化手段が逆量子化した周波数変換係数を逆周波数変換することによりデジタル信号を復元する逆周波数変換手段、として機能させることを特徴とするプログラム。

技術分野

0001

本発明は、デジタル信号を効率良く符号化する符号化装置符号化方法及びこれらをコンピュータ上で実現するためのプログラム、並びに、上記符号化装置、符号化方法又はプログラムにより符号化されたデータをデジタル信号に復号化する復号化装置復号化方法及びこれらをコンピュータ上で実現するためのプログラムに関する。

背景技術

0002

従来、発音機能を搭載した電子辞書装置が知られている。このような電子辞書装置は、例えば、録音時に各単語に対応する音声信号を符号化してメモリに記憶し、再生時にメモリに記憶されたデータを復号化して再生する。ここで、十分な音質を確保したままビットレートを低く抑えるためには、高い符号化効率圧縮効率)で音声信号を符号化する必要がある。かかる目的を達成するための技術として、例えば、特許文献1には、人間の聴覚の特性に基づいて音声信号を符号化する音声処理装置が開示されている。

0003

特許文献1に開示された音声処理装置は、まず、音声信号を複数のブロックからなるフレームに分割する。そして、音声処理装置は、1フレーム分の音声信号をブロック毎に周波数変換することにより、ブロック毎に各周波数MDCT係数を求める。次に、音声処理装置は、1フレーム分のMDCT係数に基づいて各周波数の重要度を設定する。具体的には、音声処理装置は、各周波数の1フレーム分のMDCT係数から当該周波数のエネルギーを求め、エネルギーが高い周波数ほど重要度を高く設定する。

0004

音声処理装置は、所定のビットレート(例えば、16kbps程度)に達するまで、すなわち、符号量が所定の符号量に達するまで、重要度の高い周波数から順番にMDCT係数を符号化する。このため、重量度の低い周波数のMDCT係数は符号化されない。ここで、音声処理装置は、各周波数が、MDCT係数が符号化された周波数であるか否かを判別するためのフラグ列を生成し、作成したフラグ列も符号化する。
特開2007−193043号公報

発明が解決しようとする課題

0005

しかしながら、生成したフラグ列をそのまま符号化する場合、フラグ列自体も容量を有するため、符号化効率がそれほど向上しない場合もあった。

0006

本発明は、上記問題に鑑みてなされたものであり、符号化効率を向上することが可能な符号化装置、符号化方法及びこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。また、本発明は、上記符号化装置、符号化方法又はプログラムにより符号化されたデータからデジタル信号を復号化することが可能な復号化装置、復号化方法及びこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。

課題を解決するための手段

0007

上記目的を達成するために、本発明の第1の観点に係る符号化装置は、
デジタル信号を周波数変換して周波数変換係数を求める周波数変換手段と、
前記周波数変換手段が求めた周波数変換係数を量子化する量子化手段と、
対応する周波数の周波数変換係数を符号化対象とするか符号化対象から除外するかを示す記号を周波数毎に生成し、生成した記号を周波数順に連結することにより第1の記号列を生成する記号列生成手段と、
前記記号列生成手段が生成した第1の記号列をローテートすることにより特定の記号が末尾に多く連続する第2の記号列を生成するローテート手段と、
前記量子化手段が量子化した周波数変換係数のうち前記記号列生成手段が生成した第1の記号列により符号化対象とすることが示された周波数の周波数変換係数と復号化の際に第2の記号列に基づいて第1の記号列を復元するための記号列復元用データとを符号化するとともに、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテート手段が生成した第2の記号列を先頭から順に符号化する符号化手段と、
前記符号化手段が符号化したデータの合計符号量が予め設定された目標符号量を超えているか否かを判別する符号量超過判別手段と、
前記符号量超過判別手段により合計符号量が目標符号量を超えていると判別された場合に、符号化対象から除外する周波数変換係数の周波数を求め、当該周波数の周波数変換係数を削除するデータ削除手段と、を備え、
前記記号列生成手段は、前記データ削除手段が削除した周波数変換係数については符号化対象から除外するように第1の記号列を生成する、
ことを特徴とする。

0008

前記ローテート手段は、前記記号列生成手段が生成した第1の記号列をローテートすることにより得られる記号列のうち、特定の記号が末尾に最も長く連続する記号列を第2の記号列として生成するとともに、第1の記号列から第2の記号列を生成するために必要なローテート数を求め、
前記符号化手段は、前記ローテート手段が生成したローテート数を記号列復元用データとして符号化してもよい。

0009

前記符号化手段は、前記ローテート手段が生成したローテート数に換えて、当該ローテート数と前回の符号化の際に前記ローテート手段が生成したローテート数との差分を記号列復元用データとして符号化してもよい。

0010

前記周波数変換手段が求めた周波数変換係数の全周波数帯域を複数の分割周波数帯域に分割する周波数帯域分割手段と、
分割周波数帯域毎に、前記周波数変換手段が求めた周波数変換係数のうち前記前記データ削除手段により削除されていない周波数変換係数の絶対値の最大値包絡値として取得する包絡値取得手段と、をさらに備え、
前記量子化手段は、各分割周波数帯域に含まれる周波数変換係数を、前記包絡値取得手段が取得した分割周波数帯域毎の包絡値のうち当該分割周波数帯域の包絡値で除算することにより量子化し、
前記ローテート手段は、前記記号列生成手段が生成した第1の記号列を構成する各記号のうち、包絡値が0である分割周波数帯域に含まれる周波数に対応する記号を符号化対象から除外することを示す記号に置換し、包絡値が0ではない分割周波数帯域に含まれる周波数に対応する記号を符号化対象とすることを示す記号に置換した場合に得られる記号列を、各分割周波数帯域に含まれる周波数変換係数の個数ずつローテートした場合に得られる記号列のうち、特定の記号が末尾に最も長く連続する記号列を第2の記号列として生成し、
前記符号化手段は、前記包絡値取得手段が生成した分割周波数帯域毎の包絡値を記号列復元用データとして符号化してもよい。

0011

前記記号列生成手段が生成した第1の記号列をローテートすることにより得られる記号列のうち、特定の記号が末尾に最も長く連続する記号列を第2の記号列として生成するとともに、第1の記号列から第2の記号列を生成するために必要なローテート数を求める第2のローテート手段、をさらに備え、
前記符号化手段は、前記ローテート手段が生成した第2の記号列と前記第2のローテート手段が生成した第2の記号列とのうちいずれを符号化するかを選択し、前記ローテート手段が生成した第2の記号列を符号化することを選択した場合は、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテート手段が生成した第2の記号列を先頭から順に符号化するとともに、前記ローテート手段が生成したローテート数又は前回の符号化の際に前記ローテート手段が生成したローテート数との差分を記号列復元用データとして符号化し、前記第2のローテート手段が生成した第2の記号列を符号化することを選択した場合は、残りの記号が全て特定の記号であることを示す符号を用いて前記第2のローテート手段が生成した第2の記号列を先頭から順に符号化するとともに、前記包絡値取得手段が生成した分割周波数帯域毎の包絡値を記号列復元用データとして符号化してもよい。

0012

上記目的を達成するために、本発明の第2の観点に係る復号化装置は、
前記符号化装置によって符号化されたデータを周波数変換係数と第2の記号列と記号列復元用データとに復号化する復号化手段と、
前記復号化手段が復号化したデータのうち、前記符号化対象から除外された周波数変換係数を、前記復号化手段が復号化した第2の記号列と記号列復元用データとに基づいて判別し、判別した周波数変換係数に、予め設定された値を挿入する除外データ補完手段と、
前記復号化手段が復号化した周波数変換係数と前記除外データ補完手段が予め設定された値を挿入した周波数変換係数とを逆量子化する逆量子化手段と、
前記逆量子化手段が逆量子化した周波数変換係数を逆周波数変換することによりデジタル信号を復元する逆周波数変換手段と、を備える、
ことを特徴とする。

0013

上記目的を達成するために、本発明の第3の観点に係る符号化方法は、
デジタル信号を周波数変換して周波数変換係数を求める周波数変換ステップと、
前記周波数変換ステップで求めた周波数変換係数を量子化する量子化ステップと、
対応する周波数の周波数変換係数を符号化対象とするか符号化対象から除外するかを示す記号を周波数毎に生成し、生成した記号を周波数順に連結することにより第1の記号列を生成する記号列生成ステップと、
前記記号列生成ステップで生成した第1の記号列をローテートすることにより特定の記号が末尾に多く連続する第2の記号列を生成するローテートステップと、
前記量子化ステップで量子化した周波数変換係数のうち前記記号列生成ステップで生成した第1の記号列により符号化対象とすることが示された周波数の周波数変換係数と復号化の際に第2の記号列から第1の記号列を復元するための記号列復元用データとを符号化するとともに、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテートステップで生成した第2の記号列を先頭から順に符号化する符号化ステップと、
前記符号化ステップで符号化したデータの合計符号量が予め設定された目標符号量を超えているか否かを判別する符号量超過判別ステップと、
前記符号量超過判別ステップにより合計符号量が目標符号量を超えていると判別された場合に、符号化対象から除外する周波数変換係数の周波数を求め、当該周波数の周波数変換係数を削除するデータ削除ステップと、を備え、
前記記号列生成ステップは、前記データ削除ステップで削除した周波数変換係数については符号化対象から除外するように第1の記号列を生成する、
ことを特徴とする。

0014

上記目的を達成するために、本発明の第4の観点に係る復号化方法は、
前記符号化方法によって符号化されたデータを周波数変換係数と第2の記号列と記号列復元用データとに復号化する復号化ステップと、
前記復号化ステップで復号化したデータのうち、前記符号化対象から除外された周波数変換係数を、前記復号化ステップで復号化した第2の記号列と記号列復元用データとに基づいて判別し、判別した周波数変換係数に、予め設定された値を挿入する除外データ補完ステップと、
前記復号化ステップで復号化した周波数変換係数と前記除外データ補完ステップで予め設定された値を挿入した周波数変換係数とを逆量子化する逆量子化ステップと、
前記逆量子化ステップで逆量子化した周波数変換係数を逆周波数変換することによりデジタル信号を復元する逆周波数変換ステップと、を備える、
ことを特徴とする。

0015

上記目的を達成するために、本発明の第5の観点に係るプログラムは、
コンピュータを、
デジタル信号を周波数変換して周波数変換係数を求める周波数変換手段、
前記周波数変換手段が求めた周波数変換係数を量子化する量子化手段、
対応する周波数の周波数変換係数を符号化対象とするか符号化対象から除外するかを示す記号を周波数毎に生成し、生成した記号を周波数順に連結することにより第1の記号列を生成する記号列生成手段、
前記記号列生成手段が生成した第1の記号列をローテートすることにより特定の記号が末尾に多く連続する第2の記号列を生成するローテート手段、
前記量子化手段が量子化した周波数変換係数のうち前記記号列生成手段が生成した第1の記号列により符号化対象とすることが示された周波数の周波数変換係数と復号化の際に第2の記号列から第1の記号列を復元するための記号列復元用データとを符号化し、残りの記号が全て特定の記号であることを示す符号を用いて前記ローテート手段が生成した第2の記号列を先頭から順に符号化する符号化手段、
前記符号化手段が符号化したデータの合計符号量が予め設定された目標符号量を超えているか否かを判別する符号量超過判別手段と、
前記符号量超過判別手段により合計符号量が目標符号量を超えていると判別された場合に、符号化対象から除外する周波数変換係数の周波数を求め、当該周波数の周波数変換係数を削除するデータ削除手段、
として機能させるためのプログラムであって、
前記記号列生成手段は、前記データ削除手段が削除した周波数変換係数については符号化対象から除外するように第1の記号列を生成する、
ことを特徴とする。

0016

上記目的を達成するために、本発明の第6の観点に係るプログラムは、
コンピュータを、
前記プログラムによって符号化されたデータを周波数変換係数と第2の記号列と記号列復元用データとに復号化する復号化手段、
前記復号化手段が復号化したデータのうち、前記符号化対象から除外された周波数変換係数を、前記復号化手段が復号化した第2の記号列と記号列復元用データとに基づいて判別し、判別した周波数変換係数に、予め設定された値を挿入する除外データ補完手段、
前記復号化手段が復号化した周波数変換係数と前記除外データ補完手段が予め設定された値を挿入した周波数変換係数とを逆量子化する逆量子化手段、
前記逆量子化手段が逆量子化した周波数変換係数を逆周波数変換することによりデジタル信号を復元する逆周波数変換手段、
として機能させることを特徴とする。

発明の効果

0017

本発明にかかる符号化装置、符号化方法及びプログラムによれば、デジタル信号を効率良く符号化することができる。また、本発明にかかる復号化装置、復号化方法及びプログラムによれば、上記符号化装置、符号化方法又はプログラムにより符号化されたデータをデジタル信号に復号化できる。

発明を実施するための最良の形態

0018

以下、図面を参照して、本実施形態に係る音声処理装置の構成について説明する。

0019

本発明の実施形態に係る音声処理装置10の構成を図1に示す。なお、音声処理装置10は、デジタル音声信号を符号化する音声符号化装置として機能する他、符号化されたデジタル音声信号を復号化する音声復号化装置としても機能する。

0020

音声処理装置10は、図1に示すように、音声入力装置11と、記憶装置12と、ROM(Read Only Memory)13と、RAM(Random Access Memory)14と、CPU(Central Processing Unit)15と、を備える。音声入力装置11が備える各ユニットバスを介して接続される。

0021

音声入力装置11は、音声を入力してデジタル音声信号Sound0に変換する。音声入力装置11は、例えば、音声を16kHzのサンプリング周波数サンプリングし、16ビットで量子化してデジタル音声信号Sound0に変換する。

0022

記憶装置12は、音声入力装置11から供給されたデジタル音声信号Sound0を記憶するとともに、このデジタル音声信号Sound0の符号化や復号化に必要なデータを記憶する。記憶装置12は、例えば、ハードディスクから構成される。

0023

ROM13は、CPU15の動作を制御するためのプログラム等を記憶する。

0024

RAM14は、CPU15のワークエリアとして機能する。

0025

CPU15は、ROM13に記憶されたプログラムに従って処理を実行する。CPU15は、機能的には、符号化部15−1と復号化部15−2とを備える。

0026

まず、符号化部15−1について詳細に説明する。

0027

符号化部15−1は、デジタル音声信号を符号化するものであり、図2に示すように、DC削除部21と、フレーム化部22と、レベル調整部23と、MDCT(Modified Descrete Transform、修正離散コサイン変換)部24と、正規化部25と、帯域分割部26と、包絡生成部27と、包絡除算部28と、量子化部29と、フラグ生成部30と、フラグローテート部31と、エントロピー符号化部32と、符号量比較部33と、データ削除部34と、を備える。

0028

DC削除部21は、音声入力装置11から供給されたデジタル音声信号Sound0から、直流成分を削除する。DC削除部21は、例えば、式(1)により示される高域通過フィルタにより構成される。



・・・(1)

0029

フレーム化部22は、DC削除部21により直流成分が削除されたデジタル音声信号Sound1を、符号化(圧縮)の処理単位であるフレームに分割する。フレーム化部22は、1つのフレームにm(m≧1)個のブロックを含むように分割する。なお、各ブロックは、1回のMDCTの次数分の長さを有する。また、理解を容易にするため、特に説明がない限り、1フレーム分のデジタル音声信号の符号化及び復号化について説明する。

0030

レベル調整部23は、フレーム化部22から供給されたデジタル音声信号Sound1のレベルを調整する。レベル調整部23は、フレームに含まれる全てのデジタル音声信号Sound1のレベルが指定ビット数に収まるように調整する。

0031

例えば、1フレーム中の信号の最大振幅がnビットのデータで表されるものとして、制圧目標ビット数をNとすると、レベル調整部23は、次の式(2)に従い、フレーム中の信号のビットをLSB(Least Significant Bit)側にシフトすることにより、デジタル音声信号のレベル調整を行う。



・・・(2)
なお、制圧目標ビット数Nは、例えば10ビット程度とすることが望ましい。また、レベル調整部23は、ビットシフト数shift_bitを記憶装置12に記憶する。

0032

MDCT部24は、レベル調整部23がレベル調整したデジタル音声信号Sound2を、ブロック毎に周波数変換してMDCT係数Xk(kは変換した周波数を示す符号)を算出する。MDCT部24は、例えば、式(3)に従いMDCT係数Xkを算出する。



・・・(3)
なお、MDCTのタップ数Mは512タップ理想的である。

0033

正規化部25は、MDCT部24がブロック毎に算出したMDCT係数Xkをそれぞれ正規化する。まず、正規化部25は、MDCT係数Xkの最大値を検索し、検索したMDCT係数Xkの最大値をゲインgainとして設定する。そして、正規化部25は、全てのMDCT係数Xkをゲインgainでそれぞれ除算したうえで、指定ビット数(例えば、8ビット)にそれぞれ正規化(量子化)する。なお、正規化部25は、ゲインgainを、記憶装置12に記憶する。なお、ゲインgainはブロック毎に用意しても良いが、理解を容易にするため1フレームに1つのゲインgainを設定するものとして説明する。

0034

帯域分割部26は、図3に示すように、正規化部25により正規化されたMDCT係数Xk_regを、聴覚の特性に合わせて低域ほど狭く、高域ほど広くなるように対数的に分割する(区分けする)。なお、図3は、横軸を周波数f、縦軸をMDCT係数Xk_regとして、1ブロック分のMDCT係数Xk_regを実線で示している。図3には、理解を容易にするために、MDCT係数Xk_regを6つの分割帯域b_i(iは分割帯域の数)に区分けした例を示すが、実際は16程度に分割することが望ましい。また、図3、7、10及び12においてはMDCT係数は絶対値で示す。

0035

包絡生成部27は、正規化部25により正規化されたMDCT係数Xk_regに基づいて分割帯域b_i毎に包絡値env_iを求める。ここでは、包絡値env_iは、各分割帯域b_iに含まれるMDCT係数Xk_regの絶対値の最大値とする。図3において、周波数軸と、分割帯域b_i毎に波線で示した各線分との各距離が各分割帯域b_iの包絡値env_iに相当する。また、包絡生成部27は、求めた各分割帯域b_iの包絡値env_iを記憶装置12に記憶する。なお、包絡値env_iはブロック毎に用意してもよいが、理解を容易にするため1フレーム中の全てのブロックに共通の値を用いるものとして説明する。

0036

包絡除算部28は、正規化部25により正規化されたMDCT係数Xk_regのそれぞれを、包絡生成部27が求めた包絡値env_iのうち対応する分割帯域b_iの包絡値env_iで除算する。具体的には、包絡除算部28は、各分割帯域b_iに含まれる全てのMDCT係数Xk_regを、当該分割帯域b_iの包絡値env_iでそれぞれ除算する。

0037

量子化部29は、包絡除算部28による除算済みのMDCT係数Xk_eのそれぞれを、分割帯域b_i毎に予め定められた量子化ビット数のうち対応する分割帯域b_iの量子化ビット数でそれぞれ量子化する。この量子化ビット数は、人間の聴覚の特性に基づいて、低域ほど多く、高域ほど少なくなるように、例えば、8〜5ビット程度とすることが望ましい。

0038

フラグ生成部30は、量子化部29が量子化したMDCT係数Xk_qを符号化するかしないかを示すフラグFlag_kを周波数毎に生成し、このフラグFlag_kを連結してフラグ列Flags_bef_rotを生成する。フラグ生成部30は、例えば、mブロック分のMDCT係数Xk_qが全て「0」である周波数については「0」、mブロック分のMDCT係数Xk_qのいずれかが「0」以外である周波数については「1」と設定した全周波数分のフラグFlag_kを周波数の小さい順に連結することにより、フラグ列Flags_bef_rotを生成する。

0039

なお、フラグ生成部30は、データを削除したことを示す信号を後述するデータ削除部34から供給された場合、再度フラグ列Flags_bef_rotを生成する。

0040

フラグローテート部31は、フラグ生成部30が生成したフラグ列Flags_bef_rotに基づいて、最後尾に最も長く「0」が続くフラグ列Flags_aft_rotを求める。また、フラグローテート部31は、フラグ列Flags_bef_rotからフラグ列Flags_aft_rotにするために必要なローテート数Rotateを求める。

0041

エントロピー符号化部32は、「残りの符号は全て0である」ことを示す符号を用いて、フラグローテート部31が生成したフラグ列Flags_aft_rotをエントロピー符号化する。なお、エントロピー符号化部32は、レンジコーダハフマンコード等のエントロピー符号化を行う。

0042

また、エントロピー符号化部32は、量子化部29により量子化されたMDCT係数Xk_qのうち、フラグ生成部30が生成したフラグ列Flags_bef_rotの値が「1」である周波数のMDCT係数Xk_qを周波数順にエントロピー符号化する。さらに、エントロピー符号化部32は、記憶装置12に記憶されたビットシフト数shift_bitとゲインgainと包絡値env_iとをエントロピー符号化する。

0043

また、エントロピー符号化部32は、フラグローテート部31が生成したローテート数Rotateとあらかじめ記憶装置12に記憶された1つ前のフレームのローテート数Rotate_oldとの差分を求め、求めたローテート数の差分Rotate_difをエントロピー符号化する。また、エントロピー符号化部32は、ローテート数Rotateをローテート数Rotate_oldとして記憶装置12に記憶する。

0044

符号量比較部33は、エントロピー符号化部32が符号化した1フレーム分の符号化データのデータ量が予め設定された基準値を超えているか否かを判別する。符号量比較部33は、符号化データのデータ量が基準値を超えていないと判別した場合、符号化データを記憶装置12に記憶する。一方、符号量比較部33は、符号化データのデータ量が目標符号量を超えていると判別した場合、符号化データの削減を指示する信号をデータ削除部34に供給する。なお、目標符号量は、あらかじめ、記憶装置12等に記憶しておく。

0045

データ削除部34は、符号量比較部33から供給された符号化データの削減を指示する信号に応答して、データを削除する。具体的には、例えば、データ削除部34は、各周波数のmブロック分のMDCT係数Xk_qから当該周波数の重要度を求める。そして、データ削除部34は、重要度が最も小さい周波数のMDCT係数Xk_qを「0」に設定するとともに、データを削除したことを示す信号をフラグ生成部30に供給する。

0046

重要度を求める方法としては、例えば、各周波数のmブロック分のMDCT係数Xk_qから当該周波数のエネルギーを求め、エネルギーが高い周波数ほど重要度を高く設定する方法が考えられる。

0047

例えば、i番目の周波数のエネルギーは、次の式(4)によって表すことができる。



・・・(4)

0048

なお、データ削除部34は、周波数に依存した重み付け係数をエネルギーに乗算した上で、重要度を求めても良い。

0049

例えば、データ削除部34は、500Hz未満のMDCT係数Xk_qには1.3を乗算し、500以上3500Hz未満のMDCT係数Xk_qには1.1を乗算し、3500Hz以上のMDCT係数Xk_qには1.0を乗算する。

0050

符号化部15−1は、以上のようにしてデジタル音声信号をフレーム毎に符号化し、生成した符号化データを記憶装置12に記憶する。

0051

次に、復号化部15−2について詳細に説明する。

0052

復号化部15−2は、符号化部15−1により符号化された符号化データを復号するものであり、図4に示すように、エントロピー復号化部41と、フラグローテート部42と、除外データ補完部43と、逆量子化部44と、包絡乗算部45と、ゲイン合成部46と、IMDCT部47と、レベル再現部48と、を備える。

0053

エントロピー復号化部41は、記憶装置12に記憶された符号化データを復号化する。エントロピー復号化部41は、エントロピー復号化により、符号化対象であった周波数のMDCT係数Xk_qと、ビットシフト数shift_bitと、ゲインgainと、包絡値env_iと、ローテート数の差分Rotate_difとを復号化する。また、エントロピー復号化部41は、エントロピー復号化により、フラグ列Flags_aft_rotを復号化する。

0054

また、エントロピー復号化部41は、復号化したローテート数の差分Rotate_difと、あらかじめ記憶装置12に記憶されたローテート数Rotate_oldとからローテート数Rotateを求める。また、エントロピー復号化部41は、ビットシフト数shift_bitと、ゲインgainと、包絡値env_iと、を記憶装置12に記憶する。なお、エントロピー復号化部41は、求めたローテート数Rotateをローテート数Rotate_oldとして記憶装置12に記憶する。

0055

フラグローテート部42は、エントロピー復号化部41により復号化されたフラグ列Flags_aft_rotと、ローテート数Rotateとに基づいて、フラグ列Flags_bef_rotを求める。具体的には、フラグローテート部42は、エントロピー復号化部41により復号化されたフラグ列Flags_aft_rotを、ローテート数Rotateの分だけ符号化のときと逆方向にローテートすることによりフラグ列Flags_bef_rotを求める。

0056

除外データ補完部43は、フラグローテート部42が求めたフラグ列Flags_bef_rotに基づいて、符号化対象から除外された周波数のMDCT係数Xk_qを補完することにより、全周波数のMDCT係数Xk_qを生成する。具体的には、除外データ補完部43は、フラグFlag_kが「1」、すなわち符号化対象であった周波数のMDCT係数Xk_qとしては、エントロピー復号化部41が復号化したmブロック分のMDCT係数Xk_qを設定し、フラグが「0」、すなわち符号化対象でなかった周波数のMDCT係数Xk_qとしては、全て「0」を設定する。除外データ補完部43は、生成したMDCT係数Xk_qを逆量子化部44に供給する。

0057

逆量子化部44は、除外データ補完部43が生成したMDCT係数Xk_qを、分割帯域b_i毎に予め定められた精度で、それぞれ逆量子化する。

0058

包絡乗算部45は、逆量子化部44により逆量子化されたMDCT係数Xk_eのそれぞれに、記憶装置12に記憶された包絡値env_iのうち対応する分割帯域b_iの包絡値env_iを乗算する。包絡乗算部45は、各分割帯域b_iに含まれる全てのMDCT係数Xk_eに、当該分割帯域b_iの包絡値env_iを乗算する。

0059

ゲイン合成部46は、包絡乗算部45により包絡値env_iが乗算されたMDCT係数Xk_regのそれぞれに、記憶装置12に記憶されたゲインgainを乗算する。

0060

IMDCT部47は、ゲイン合成部46によりゲインgainが乗算されたMDCT係数Xkをブロック毎に逆MDCT変換することにより、時間軸のデジタル音声信号Sound2を求める。

0061

レベル再現部48は、記憶装置12に記憶されたビットシフト数shift_bitに基づいて、IMDCT部47が求めたデジタル音声信号Sound2のレベルを調整することによりデジタル音声信号Sound1を生成する。

0062

次に、本実施形態に係る音声処理装置の動作について説明する。

0063

まず、図5に示すフローチャートを用いて、音声処理装置10の符号化処理について説明する。符号化部15−1は、音声入力装置11からデジタル音声信号を供給されると、図5に示すフローチャートに従って符号化処理を実行する。

0064

DC削除部21は、式(1)に従って、デジタル音声信号Sound0の直流成分を削除する(ステップS11)。

0065

フレーム化部22は、直流成分が削除されたデジタル音声信号Sound1をフレームに分割する(ステップS12)。

0066

レベル調整部23は、1フレームに分割されたデジタル音声信号Sound1のレベルを調整する(ステップS13)。

0067

MDCT部24は、レベル調整されたデジタル音声信号Sound2をブロック毎に周波数変換する(ステップS14)。

0068

正規化部25は、ブロック毎に算出されたMDCT係数Xkをそれぞれ正規化する(ステップS15)。

0069

帯域分割部26は、正規化されたMDCT係数Xk_regを、聴覚の特性に合わせて低域ほど狭く、高域ほど広くなるように対数的に分割する(ステップS16)。

0070

包絡生成部27は、正規化されたMDCT係数Xk_regに基づいて分割帯域b_i毎に包絡値env_iを求める(ステップS17)。

0071

包絡除算部28は、正規化されたMDCT係数Xk_regのそれぞれを、対応する分割帯域b_iの包絡値env_iで除算する(ステップS18)。

0072

量子化部29は、各包絡値env_iで除算済みのMDCT係数Xk_eのそれぞれを、分割帯域b_i毎に予め定められた量子化ビット数のうち対応する分割帯域b_iの量子化ビット数でそれぞれ量子化する(ステップS19)。

0073

フラグ生成部30は、フラグFlag_kを周波数毎に生成し、このフラグFlag_kを連結してフラグ列Flags_bef_rotを生成する(ステップS20)。

0074

符号化部15−1は、フラグ列Flags_bef_rotを生成した後、フラグ符号化処理(ステップS21)を実行する。フラグ符号化処理については、図6に示すフローチャートを参照して詳細に説明する。

0075

フラグ符号化処理では、まず、フラグローテート部31は、生成されたフラグ列Flags_bef_rotの中から最も長く「0」が続くビット列のを検索する(ステップS31)。なお、フラグローテート部31は、フラグ列Flags_bef_rotが周波数の低い順に生成されている場合、最も高い周波数のフラグの次には最も低い周波数のフラグが続いているものとして、ビット列を検索する。

0076

フラグローテート部31は、例えば、「0」のみからなるビット列のビット数ビット長)を格納するビット数格納用変数Bit_cntと、「0」のみからなるビット列のうち最長のビット列のビット数を格納する最長ビット数格納用変数Bit_cnt_maxと、「0」のみからなるビット列のうち最長のビット列の最後のビットの位置を格納する最終ビット位置格納用変数Bit_max_posと、を用いてビット位置を求める。

0077

フラグローテート部31は、ビット数格納用変数Bit_cntと、最長ビット数格納用変数Bit_cnt_maxと、最終ビット位置格納用変数Bit_max_posと、を全て「0」に初期化する。そして、フラグローテート部31は、位置が「0」であるビット、すなわち、フラグ列Flags_bef_rotの最初のフラグ(例えば、最も低い周波数に対応するフラグ)から順に、各フラグFlag_kが「0」か否かを判別し、判別結果に応じた処理を実行する。

0078

フラグローテート部31は、判別結果が「0」である場合は、ビット数格納用変数Bit_cntをインクリメントしてから次のフラグのチェック移行する。

0079

一方、フラグローテート部31は、判別結果が「1」である場合は、さらにビット数格納用変数Bit_cntの値が最長ビット数格納用変数Bit_cnt_maxの値より大きいか否かを判別する。

0080

フラグローテート部31は、ビット数格納用変数Bit_cntの値の方が大きいと判別したときは最長ビット数格納用変数Bit_cnt_maxにビット数格納用変数Bit_cntの値を格納し、前のビットの位置を最終ビット位置格納用変数Bit_max_posに格納し、ビット数格納用変数Bit_cntの値を「0」にクリアしてから次のフラグのチェックに移行する。一方、フラグローテート部31は、ビット数格納用変数Bit_cntの値の方が小さい(又は同じ)と判別したときは、ビット数格納用変数Bit_cntの値を「0」にクリアして次のフラグのチェックに移行する。

0081

フラグローテート部31は、全てのフラグをチェックした後、さらに判別結果が「1」となるフラグのチェックを終了すると、検索を終了する。なお、最終ビット位置格納用変数Bit_max_posに格納されている値が最も長く「0」が続くビット列の最後のビットの位置となる。

0082

次に、フラグローテート部31は、最も長く「0」が続くビット列の最後のビットの位置に基づいて、当該最も長く「0」が続くビット列が最後尾にくるようにフラグ列Flags_bef_rotをローテートする(ステップS32)。フラグローテート部31は、例えば、周波数の低い方にローテートする場合は、最も長く「0」が続くビット列の最後のビットの位置をローテート数としてローテートする。

0083

図7を参照して、フラグ列Flags_bef_rotをローテートする例を説明する。図7に示すように、周波数帯域は6つの分割帯域b_iに分割され、1〜6の分割帯域b_iにはそれぞれ「2」、「3」、「4」、「6」、「9」、「14」個のMDCT係数Xk_qが含まれているものとして説明する。

0084

図7に示すように、量子化部29による量子化、或いは、データ削除部34によるデータの削除により、MDCT係数Xk_qが「0」とされた周波数のフラグFlag_kは「0」、他の周波数のフラグFlag_kは「1」に設定される。

0085

ローテート前のフラグ列が図7に示すような値である場合、フラグローテート部31は、ステップS31の処理により、最も長く「0」が続くビット列の最後のビットの位置として「6」を検出する。フラグローテート部31は、ローテート数Rotateを「6」として設定し、フラグ列を左に「6」ビット分ローテートすることにより、図7に示すようなフラグ列Flags_aft_rotを求める。

0086

エントロピー符号化部32は、ローテート数Rotateとあらかじめ記憶装置12に記憶された1つ前のフレームのローテート数Rotate_oldとの差分をとり、求めたローテート数の差分Rotate_difを符号化する。(ステップS33)。

0087

エントロピー符号化部32は、ローテート数Rotateをローテート数Rotate_oldとして記憶装置12に記憶する(ステップS34)。

0088

エントロピー符号化部32は、フラグ列Flags_aft_rotのうち符号化されていない全てのフラグが全て「0」であるか否かを判別する(ステップS34)。エントロピー符号化部32は、例えば、符号化済みのフラグ数と記憶装置12に記憶された最長ビット数格納用変数Bit_cnt_maxの値との和がフラグ列Flags_bef_rotのフラグ数と一致するか否かにより判別する。

0089

エントロピー符号化部32は、符号化されていないフラグのいずれかが「0」ではないと判別したときは(ステップS35:NO)、フラグ列Flags_aft_rotのフラグを1つ符号化する(ステップS36)。

0090

エントロピー符号化部32は、符号化されていない全てのフラグが全て「0」であると判別したときは(ステップS35:YES)、残りのフラグが全て0であることを示す符号である「残りは0符号」を出力する(ステップS37)。

0091

符号化部15−1は、「残りは0符号」を出力するとフラグ符号化処理を終了する。なお、フラグ符号化処理においては、フラグ列Flags_aft_rotは先頭のフラグから符号化するものとして説明した。

0092

エントロピー符号化部32は、フラグ列Flags_aft_rot及びローテート数の差分Rotate_difをエントロピー符号化した後、その他のデータをエントロピー符号化する(ステップS22)。具体的には、エントロピー符号化部32は、フラグ列Flags_bef_rotの値が「1」である周波数のMDCT係数Xk_qと、ビットシフト数shift_bitと、ゲインgainと、包絡値env_iとを符号化する。なお、エントロピー符号化部32は、フラグ列Flags_bef_rotの連結順序に合わせて、MDCT係数Xk_qを周波数の小さい順に符号化する。

0093

符号量比較部33は、エントロピー符号化部32が符号化した1フレーム分の符号化データのデータ量が目標符号量以下であるか否かを判別する(ステップS23)。

0094

符号量比較部33が、符号化データのデータ量が目標符号量以下であると判別すると(ステップS23:YES)、符号化処理が完了する。

0095

一方、符号量比較部33が、符号化データのデータ量が目標符号量以下ではないと判別したときは(ステップS23:NO)、データ削除部34に符号化データの削減を指示する信号を供給する。

0096

データ削除部34は、符号量比較部33から供給された符号化データの削減を求める信号に応答して、符号化データを削除する(ステップS24)。データ削除部34は、周波数毎に重要度を求め、重要度が最も低い周波数のMDCT係数Xk_qを「0」に設定するとともに、符号化データを削減したことを示す信号をフラグ生成部30に供給する。

0097

フラグ生成部30は、符号化データを削減したことを示す信号をデータ削除部34から供給されると、フラグ列Flags_bef_rotを生成する処理を再度実行する(ステップS20)。

0098

次に、図8に示すフローチャートを用いて、音声処理装置10の復号化処理について説明する。復号化部15−2は、図8に示すフローチャートに従って復号化処理を実行することにより、記憶装置12に記憶された符号化データをデジタル音声信号に復号する。

0099

エントロピー復号化部41は、フラグに関するデータ以外のデータを復号化する(ステップS41)。具体的には、エントロピー復号化部41は、記憶装置12に記憶された符号化データをエントロピー復号化することにより、符号化対象であった周波数のMDCT係数Xk_qと、ビットシフト数shift_bitと、ゲインgainと、包絡値env_iとを求める。

0100

エントロピー復号化部41は、エントロピー復号化によりフラグに関するデータを復号化する(ステップS42)。フラグ復号化処理については、図9に示すフローチャートを参照して詳細に説明する。

0101

エントロピー復号化部41は、記憶装置12に記憶された符号化データをエントロピー復号化することにより、ローテート数の差分Rotate_difを求める(ステップS51)。

0102

エントロピー復号化部41は、ローテート数の差分Rotate_difとあらかじめ記憶装置12に記憶された1つ前のフレームのローテート数Rotate_oldとから、ローテート数Rotateを求め、求めたローテート数Rotateをローテート数Rotate_oldとして記憶装置12に記憶する(ステップS52)。

0103

エントロピー復号化部41は、記憶装置12に記憶された符号化データのうちフラグ列Flags_aft_rotに対応する部分読み出し、先頭から順に対応する符号が「残りは0符号」か否かを判別し、判別結果に応じた処理を実行する。(ステップS53)。

0104

エントロピー復号化部41は、対応する符号が「残りは0符号」ではないと判別したときは(ステップS53:NO)、対応する符号を1つのフラグとして復号化し(ステップS54)、次の符号が「残りは0符号」か否かを判別する(ステップS53)。

0105

一方、エントロピー復号化部41は、対応する符号が「残りは0符号」であると判別したときは(ステップS53:YES)、残りのフラグを全て「0」に設定したフラグ列Flags_aft_rotを生成する(ステップS55)。

0106

フラグローテート部42は、ステップS55で求めたフラグ列Flags_aft_rotを、ステップS52で求めたローテート数Rotateの分だけ符号化のときと逆方向にローテートすることにより、フラグ列Flags_bef_rotを生成する(ステップS56)。復号化部15−2は、フラグ列Flags_bef_rotを生成すると、フラグ復号化処理を終了する。

0107

除外データ補完部43は、ステップS41で求めたMDCT係数Xk_qとステップS56で求めたフラグ列Flags_bef_rotとに基づいて、各周波数のMDCT係数Xk_qを生成する(ステップS43)。具体的には、除外データ補完部43は、フラグ列Flags_bef_rotのうち対応するフラグが「0」、すなわち符号化対象でなかった周波数のMDCT係数Xk_qには全て「0」を補完することにより、全ての周波数のMDCT係数Xk_qを生成する。

0108

逆量子化部44は、ステップS43で生成したMDCT係数Xk_qを、分割帯域b_i毎に予め定められた精度で、それぞれ逆量子化する(ステップS44)。

0109

包絡乗算部45は、ステップS44で逆量子化されたMDCT係数Xk_eのそれぞれに、記憶装置12に記憶された包絡値env_iのうち対応する分割帯域b_iの包絡値env_iを乗算する(ステップS45)。

0110

ゲイン合成部46は、ステップS45で包絡値env_iが乗算されたMDCT係数Xk_regのそれぞれに、記憶装置12に記憶されたゲインgainを乗算する(ステップS46)。

0111

IMDCT部47は、ステップ46でゲインgainが乗算されたMDCT係数Xkをブロック毎に逆MDCT変換することにより、時間軸のデジタル音声信号Sound2を求める(ステップS47)。

0112

レベル再現部48は、記憶装置12に記憶されたビットシフト数shift_bitに基づいて、ステップS47で求めたデジタル音声信号Sound2のレベルを調整する(ステップS48)。レベル再現部48がデジタル音声信号Sound2のレベルを調整することによりデジタル音声信号Sound1を生成すると復号化処理が完了する。

0113

上述のように、本実施形態に係る音声処理装置10は、フラグローテート部42が最後尾に最も長く「0」が続くフラグ列Flags_aft_rotになるようにフラグ列Flags_bef_rotをローテートし、エントロピー符号化部32が「残りは0符号」を用いてフラグ列をエントロピー符号化する。このため、本実施形態に係る音声処理装置10によれば、符号化効率の向上を期待できる。

0114

ここで、図10を用いて、フラグ列Flags_bef_rotをローテートするメリットを説明する。図10(A)は、母音部分に相当するブロックを周波数変換したときの周波数fとMDCT係数Xk_regの関係の一例を示す図である。図10(B)は、子音部分に相当するブロックを周波数変換したときの周波数fとMDCT係数Xk_regの関係の一例を示す図である。

0115

図10(A)に示すように、母音部分に相当するブロックを周波数変換したときは、1、2及び6番目の分割帯域b_iに含まれるMDCT係数Xk_regの絶対値が小さい値となる。一方、図10(B)に示すように、子音部分に相当するブロックを周波数変換したときは、1、2及び3番目の分割帯域b_iに含まれるMDCT係数Xk_regの絶対値、並びに、6番目の分割帯域b_iに含まれるMDCT係数Xk_regのうち比較的高周波側のMDCT係数Xk_regの絶対値が小さい値となる。

0116

このようにMDCT係数Xk_regの絶対値が小さい値となる周波数のフラグFlag_kは、フラグ生成部30により「0」とされる可能性がきわめて高くなる。この理由は、量子化部29による量子化によりMDCT係数Xk_qが「0」とされる確率が高いことに加え、データ削除部34によりMDCT係数Xk_qが「0」とされる可能性が極めて高いためである。

0117

ここで、母音部分に相当するブロックを周波数変換したときは、1番目と2番目の分割帯域b_iに属する周波数のフラグFlag_kが連続して「0」となる可能性が極めて高く、また、6番目の分割帯域b_iに属する周波数のフラグFlag_kが連続して「0」となる可能性が極めて高い。以下、理解を容易にするため、1、2及び6番目の分割帯域b_iに属する周波数のフラグFlag_kは全て「0」であると仮定して説明する。

0118

エントロピー符号化部32は、「残りの符号は全て0である」ことを示す符号を用いてフラグ列をエントロピー符号化する。このため、フラグ生成部30が生成したフラグ列Flags_bef_rotをそのままエントロピー符号化する場合、6番目の分割帯域b_iに属する周波数のフラグFlag_kについてのみ「残りの符号は全て0である」ことを示す符号を用いて符号化することになる。

0119

一方、フラグローテート部31がフラグ列Flags_bef_rotをローテートしたフラグ列Flags_aft_rotを符号化する場合、6番目の分割帯域b_iに属する周波数のフラグFlag_kに加え1番目及び2番目の分割帯域b_iに属する周波数のフラグFlag_kについても「残りの符号は全て0である」ことを示す符号を用いて符号化することができる。

0120

子音部分に相当するブロックを周波数変換したときは、フラグが「0」となる周波数が比較的高周波側にシフトする。しかしながら、フラグが「0」となる周波数は、低周波側と高周波側に分かれていることは同様であるため、フラグ列Flags_bef_rotをローテートするメリットは損なわれない。このように、フラグ列Flags_bef_rotをローテートしたフラグ列Flags_aft_rotを符号化することにより、符号化効率の向上が期待できる。

0121

また、本実施形態に係る音声処理装置10は、エントロピー符号化部32は、本フレームのローテート数Rotateそのものでなく、ローテート数の差分Rotate_difを符号化する。このため、さらなる符号化効率の向上が期待できる。これは、連続するフレームでは、ローテート数も近い値となる可能性が高いためである。

0122

(変形例)
上記実施形態では、復号時にローテート数Rotateを得るために、ローテート数の差分Rotate_difを符号化していた。しかし、ローテート数の差分Rotate_dif自体も一定の容量をもつため、符号化データにはローテート数の差分Rotate_difを含まない方が好ましい。以下、符号化時に前述の包絡値env_iに基づいてフラグ列Flags_bef_rotをローテートすることにより、符号化データにローテート数の差分Rotate_difを含まずに、復号時にローテート数Rotateを得る例について説明する。

0123

なお、変形例に係る音声処理装置は、上記実施形態に係る音声処理装置10と同様の構成であり、フラグ符号化処理及びフラグ復号化処理のみが異なる。このため、変形例に係る音声処理装置については、構成の説明は省略し、フラグ符号化処理及びフラグ復号化処理について図面を参照しながら説明する。

0124

まず、図11に示すフローチャートを用いて、変形例に係る音声処理装置のフラグ符号化処理について説明する。

0125

包絡生成部27は、全ての周波数のフラグFlag_kが「0」である分割帯域b_iの包絡値env_iを「0」に設定する(ステップS61)。

0126

なお、データ削除部34により重要度が最も低い周波数のMDCT係数Xk_qが「0」に設定される(ステップS24)と、フラグ生成部30は、フラグ列Flags_bef_rotを生成する処理を再度実行する(ステップS20)。このため、包絡生成部27は、包絡生成(ステップS17)と同様の処理を実行することにより、全ての周波数のフラグFlag_kが「0」である分割帯域b_iの包絡値env_iを「0」に設定することができる。

0127

なお、全ての周波数のフラグFlag_kが「0」である分割帯域b_iに含まれる周波数のMDCT係数Xk_qは全て符号化しないため、当該分割帯域b_iの包絡値env_iは復号化の際に使用しない。このため、符号化及び復号化の際にローテート数Rotateを求めるためにこの包絡値env_iを利用することができる。

0128

フラグローテート部31は、分割帯域b_i単位でフラグ列Flags_bef_rotをローテートした場合に、末尾に長く0が続くフラグ列Flags_aft_rotにするためのローテート数Rotateを包絡値env_iに基づいて検索する(ステップS62)。

0129

図12を参照して、フラグ列Flags_bef_rotを包絡値env_iに基づいてローテートする例を説明する。

0130

包絡値env_iが「0」である分割帯域b_iに含まれる周波数のフラグを全て「0」、包絡値env_iが「0」以外である分割帯域b_iに含まれる周波数のフラグを全て「1」としたときの分割帯域単位のフラグ列をフラグ列Flagsb_bef_rotと定義する。仮に、ステップS61により、1、2及び6番目の分割帯域b_iの包絡値env_iが「0」に設定されたとすると、フラグ列Flagsb_bef_rotは、図12に示したフラグ列になる。

0131

このフラグ列Flagsb_bef_rotを周波数が小さい方に2ビット、3ビット、4ビット、6ビット、9ビット、14ビットと分割帯域b_i毎(各分割帯域b_iに含まれる周波数の個数毎)にローテートさせた場合に、末尾に最も長く「0」が続くのは、フラグ列Flagsb_bef_rotを2+3=5ビット分ローテートさせたときである。図12に示すように、フラグ列Flagsb_bef_rotを周波数が小さい方に5ビット分ローテートさせると、フラグ列Flagsb_aft_rotのようなフラグ列になる。このフラグ列Flagsb_aft_rotは、フラグ列の最初に「0」が1ビットだけ残るため末尾に最も長く「0」が続いたフラグ列ではないが、末尾に長く「0」が続いたフラグ列となる。

0132

このようにして、フラグローテート部31は、分割帯域単位フラグ列Flagsb_bef_rotを分割帯域b_i単位でローテートさせたときに、末尾に最も長く「0」が続くようにローテートしたときのローテート数Rotateを検出する。

0133

フラグローテート部31は、求めたローテート数Rotateに基づいてフラグ列Flagsb_bef_rotをローテートし、フラグ列Flagsb_aft_rotを求める(ステップS63)。

0134

以下、ステップS64〜ステップS66の処理は、図6のフローチャートに示したフラグ符号化処理のステップS35〜ステップS37と同様であるため説明を省略する。

0135

次に、図13に示すフローチャートを用いて、変形例に係る音声処理装置のフラグ復号化処理について説明する。

0136

エントロピー復号化部41は、記憶装置12に記憶された符号化データのうちフラグ列Flags_aft_rotに対応する部分を読み出し、順に対応する符号が「残りは0符号」か否かを判別し、判別結果に応じた処理を実行する。(ステップS71)。

0137

エントロピー復号化部41は、対応する符号が「残りは0符号」ではないと判別したときは(ステップS71:NO)、対応する符号を1つのフラグとして復号化し(ステップS72)、次の符号が「残りは0符号」か否かを判別する(ステップS71)。

0138

一方、エントロピー復号化部41は、対応する符号が「残りは0符号」であると判別したときは(ステップS71:YES)、残りのフラグを全て0に設定してフラグ列Flags_aft_rotを生成(ステップS73)した後、記憶装置12に記憶された包絡値env_iに基づいてローテート数を求める(ステップS74)。

0139

フラグローテート部42は、ステップS74では、フラグ符号化処理においてフラグローテート部31が実行したステップS62と同様の処理を実行する。さらに、ローテート数Rotateを求めるために用いる包絡値env_iはステップS74とステップS62とで同じであるため、フラグローテート部42は、ステップS62においてフラグローテート部31が求めたローテート数Rotateと同じローテート数Rotateを求めることができる。

0140

フラグローテート部42は、ステップS74で求めたローテート数Rotateに基づいて、フラグ列Flags_bef_rotを求める(ステップS75)。

0141

変形例に係る音声処理装置によれば、ローテート数Rotateあるいはローテート数の差分Rotate_difを符号化せずに符号化の際のローテート数Rotateを復号化の際に得ることができるため、符号化効率の向上を図ることができる。

0142

なお、上記実施形態に係る音声処理装置の符号化処理及び復号化処理と、上記変形例に係る音声処理装置の符号化処理及び復号化処理とを組み合わせてもよい。

0143

すなわち、ローテート数Rotate又はローテート数の差分Rotate_difを符号化してまでベストなローテート数Rotateを用いた方が符号化効率が良いのか、それともローテート数Rotate又はローテート数の差分Rotate_difを符号化せずに包絡値env_iから求めたローテート数Rotateを用いた方が符号化効率が良いのかを求め、符号化効率の良い方を選択して符号化することもできる。

0144

例えば、両方の方法で符号化した後に、両方の符号化効率を比較して符号化効率の良い方の方法を採用してもよいし、符号化の前にあらかじめ用意した計算式計算結果等からいずれの方法で符号化するかを決定するようにしてもよい。なお、復号化の際は、ローテート数Rotate又はローテート数の差分Rotate_difの有無により、いずれの方法で符号化したかを判別することができる。

0145

また、上記実施形態に係る音声処理装置では、ローテート数の差分Rotate_difを符号化していたが、ローテート数Rotateそのものを符号化するようにしてもよい。

0146

また、上記実施形態に係る音声処理装置では、周波数変換にMDCTを用いていたが、時間軸のデータを周波数軸のデータに変換するものであればDCTなど他の周波数変換を用いても良い。

0147

また、所定のビットレートに符号量を抑えるために削除するデータを選択する方法や、量子化の方法などが上述した実施形態に限定されないことは勿論である。

0148

上記実施形態では、符号化装置、復号化装置を音声処理装置に適用した場合について説明した。しかし、符号化装置、復号化装置は、音声処理装置に限るものではなく、例えば、携帯電話携帯端末のような送受信装置に適用することができる。

0149

また、上記実施形態では、プログラムが、それぞれメモリ等に予め記憶されているものとして説明した。しかし、符号化装置、復号化装置を、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスクCD−ROM(Compact Disk Read−Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。

0150

さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。

図面の簡単な説明

0151

本発明の実施形態に係る音声処理装置の構成を示すブロック図である。
本発明の実施形態に係る音声処理装置の符号化部の構成を示すブロック図である。
周波数帯域の分割と包絡値とを説明するための図である。
本発明の実施形態に係る音声処理装置の復号化部の構成を示すブロック図である。
図2に示す符号化部が実行する符号化処理を示すフローチャートである。
図5のフローチャートに示すフラグ符号化処理を示すフローチャートである。
図6のフローチャートに示すフラグ符号化処理におけるフラグ列のローテート方法を説明するための図である。
図4に示す復号化部が実行する復号化処理を示すフローチャートである。
図8のフローチャートに示すフラグ復号化処理を示すフローチャートである。
(A)は、母音部分に相当するブロックを周波数変換したときの周波数とMDCT係数の関係を示す図である。(B)は、子音部分に相当するブロックを周波数変換したときの周波数とMDCT係数の関係を示す図である。
変形例に係る音声処理装置の符号化部が実行するフラグ符号化処理を示すフローチャートである。
図11のフローチャートに示すフラグ符号化処理におけるフラグ列のローテート方法を説明するための図である。
変形例に係る音声処理装置の復号化部が実行するフラグ復号化処理を示すフローチャートである。

符号の説明

0152

10音声処理装置
11音声入力装置
12記憶装置
13 ROM
14 RAM
15 CPU
15−1 符号化部
15−2復号化部
21 DC削除部
22フレーム化部
23レベル調整部
24 MDCT部
25正規化部
26帯域分割部
27 包絡生成部
28 包絡除算部
29量子化部
30フラグ生成部
31 フラグローテート部
32エントロピー符号化部
33符号量比較部
34データ削除部
41 エントロピー符号化部
42 フラグローテート部
43除外データ補完部
44逆量子化部
45 包絡乗算部
46ゲイン合成部
47IMDCT部
48 レベル再現部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • アルパイン株式会社の「 情報提示装置、情報提示システム、端末装置」が 公開されました。( 2019/05/23)

    【課題】内容を把握しやすい態様で情報を提示する情報提示装置を提供すること。【解決手段】表示手段16と、ユーザからの音声又は操作による入力を受け付ける入力受付手段31と、前記入力受付手段が受け付けた入力... 詳細

  • 公立大学法人公立諏訪東京理科大学の「 信号処理装置、方法、及びプログラム」が 公開されました。( 2019/05/23)

    【課題】所望の信号を特定することができる。【解決手段】抽出手段が、入力信号ベクトルに基づいて、各時間に対し、観測信号と、前の時間のフィルタ係数を時間の前記入力信号ベクトルに適用して得られる推定第2信号... 詳細

  • 中野泰宏の「 音声学習システム、および音声学習方法」が 公開されました。( 2019/05/23)

    【課題】声を発することなく直感的に素早く正しい語順で文章を組み立てる能力をトレーニングすることができる音声学習システムおよび音声学習方法を提供する。【解決手段】CPU2により音声再生プログラム61aお... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ