JP6301877B2 - 音符号化システム - Google Patents

音符号化システム Download PDF

Info

Publication number
JP6301877B2
JP6301877B2 JP2015153570A JP2015153570A JP6301877B2 JP 6301877 B2 JP6301877 B2 JP 6301877B2 JP 2015153570 A JP2015153570 A JP 2015153570A JP 2015153570 A JP2015153570 A JP 2015153570A JP 6301877 B2 JP6301877 B2 JP 6301877B2
Authority
JP
Japan
Prior art keywords
variable
sound
processing unit
input
state variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015153570A
Other languages
English (en)
Other versions
JP2017032825A (ja
Inventor
蒔田 憲和
憲和 蒔田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tamura Corp
Original Assignee
Tamura Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tamura Corp filed Critical Tamura Corp
Priority to JP2015153570A priority Critical patent/JP6301877B2/ja
Publication of JP2017032825A publication Critical patent/JP2017032825A/ja
Application granted granted Critical
Publication of JP6301877B2 publication Critical patent/JP6301877B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、適応差分パルス符号変調(ADPCM:Adpative Differntial Pulse Code Modulation)を用いた音符号化システムに関する。
携帯電話やワイヤレスマイクなど、音声を伝送する際にはアナログである音をデジタル化し、デジタル音声信号に圧縮して伝送する方法が採られている。このデジタル音声信号の圧縮方式としては、デジタル音声が近接するサンプル間で高い相関を持つ性質を利用した方式が多く提案されており、その中の一つとしてADPCM(適応的差分パルス符号変調:Adaptive Differntial Pulse Code Modulation)方式がある。
このADPCM方式の音声符号化システムは、入力された音声を符号化する音声符号化装置と、符号化された音声を復号する音声復号化装置とを備える。音声符号化装置において、サンプリングされた実際のデジタル音声とその予測値との差分によって予測誤差を求め、この予測誤差を量子化及び符号化して伝送路を介して音声復号化装置に伝送する。音声復号化装置ではこの符号化されたものを復号した予測誤差と、サンプリングされた実際のデジタル音声の予測値とを加算して入力された音声を再生する。
このように、差分情報のみを伝送し、伝送先で入力音声を復元する構成となっているので、伝送する情報量を少なくすることができる利点がある。
CCITT Recommendation G.726, General Aspects of Digital Transmission Systems; Terminal Equipments; 40, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM)、Geneva、1990年
上記のようなADPCM方式としては、ITU−Tで勧告されたG.726が知られており(非特許文献1参照。)、G.726を忠実にソフトウェア実装したのがG.191である。
G.726に準拠するかはG.726 AppendixIIが規定するテストベクターと、エンコーダ及びデコーダの入出力とが一致するか否かで決まる。G.191に含まれるG.726モジュールであるg726.c及びg726.hは、このテストベクターと一致するが、ソフトフェア実装に最適化されていないため処理負荷が高く、高速化の観点から望ましくない。例えば、音マルチチャンネルのサンプリングレートでのオンライン実時間処理には、最適化されていないことによる処理負荷の高さから、処理能力の高いプロセッサが要求されてしまうという問題がある。
さらに、G.191のG.726モジュールは、一つの機能ブロックを部分的に演算した後、他の機能ブロックに処理が移行することが多く、各サブプロセスのモジュラリティや可読性が低いため、準拠性を維持したままG.726をサブセット化することが容易ではなかった。
本発明は、上記のような課題を解決するためになされたものであり、第1の目的は、高速処理が可能な音符号化システムを提供することにある。第2の目的は、モジュラリティや可読性の高い音符号化システムを提供することにある。
本発明の音符号化システムは、入力された音を符号化するエンコーダ又は入力された音符号を復号化するデコーダを含み構成される音符号化システムであって、次の構成を備えることを特徴とする。
(1)前記エンコーダ又はデコーダは、G.726に準拠しており、前記符号化又は復号化を行う処理部と、前記処理部の演算の入力又は出力となる状態変数を記憶するメモリと、を備え、前記状態変数には、基本状態変数と、合成状態変数と、が含まれ、前記メモリに記憶された基本状態変数は、前記基本状態変数の初期値である、前記メモリに記憶されている状態変数がリセットされたときの値を含み、前記メモリに記憶された前記合成状態変数は、前記基本状態変数の初期値から定まる変数であり、前記処理部は、量子化した差分信号から合成状態変数である予測信号を算出する適応予測部と、差分信号の変化率を、合成状態変数である適応速度制御変数とする適応速度制御部と、合成状態変数であるスケールファクタを算出する量子化スケールファクタ適応部の、少なくとも一つを含み、前記メモリに記憶された前記基本状態変数と前記合成状態変数とを参照して前記符号化又は復号化を行うこと。
また、次の構成を備えるようにしても良い。
(2)前記エンコーダ又はデコーダは、前記処理部として順次処理される複数の機能処理部を有し、1つの前記機能処理部による処理が全て終了した後に次の前記機能処理部による処理を実行して前記符号化又は復号化を行うこと。
(3)前記エンコーダ又はデコーダは、プロセッサを備え、前記エンコーダ又はデコーダの状態変数の少なくとも一部は、2の補数であり、前記プロセッサのbit幅に符号拡張する拡張処理部を有すること
(4)前記処理部は、所定の処理を行う多入力の第1の処理部を備え、前記第1の処理部に入力される変数は、入力される変数のうち、小数点以下の桁数が最も大きい変数に小数点以下の桁を等しくする再構成処理部を有すること
(5)前記処理部は、μ則で量子化されたPCM入力信号を、均一量子化されたPCM信号に変換する入力PCMフォーマット変換部と、差分信号を2を底とする対数に変換し、スケールファクタで正規化する適応量子化部と、前記適応予測部と、予測信号と量子化した差分信号を加算した再生信号を算出する再生信号算出部と、均一PCM信号をμ則PCM信号に変換する出力PCMフォーマット変換部と、出力PCM信号を再符号化する同期符号化補正部の、少なくとも一つを含み、変数の数値の桁を求める第2の処理部と、前記第2の処理部の前記数値の桁に応じた所定の処理を行う第3の処理部とを備え、前記第2の処理部は、二分探索で前記数値の桁を求め、前記第3の処理部は、前記数値の桁からあらかじめ定まっている出力結果を直接出力すること。
(6)前記処理部は、その内部で、前記符号化又は復号化の際、符号と指数部と仮数部とから構成される状態変数を、個別の変数に保持したまま伝送すること。
本発明によれば、合成状態変数を導入したことにより、高速処理が可能な音符号化システムを得ることができる。また、合成状態変数の導入に伴い、処理順序を再構成したことにより、モジュラリティや可読性の高い音符号化システムを得ることができる。
実施形態に係る音符号化システムの全体構成を示す図である。 エンコーダ及びデコーダの全体的な構成図である。 エンコーダの詳細な機能ブロック図である。 デコーダの詳細な機能ブロック図である。 高速化手段を適用した処理ブロックの一覧表である。 二分探索と動的演算の排除を説明するための図である。(a)は、二分探索と動的演算の排除を適用しない例を示し、(b)は、二分探索と動的演算の排除を適用する例を示す。 数値パッキングの排除を説明するための図である。(a)は、数値パッキングの排除を適用しない場合を示し、(b)は数値パッキングの排除を適用する場合を示す。 符号化装置の動作フローチャートである。 復号化装置の動作フローチャートである。 従来のG.726のエンコーダの詳細な機能ブロック図である。 従来のG.726のデコーダの詳細な機能ブロック図である。
以下、図面を参照して、本発明の実施形態の音符号化システムについて説明する。
[1.第1の実施形態]
[1−1.概略構成]
図1は、本実施形態に係る音符号化システムの全体構成を示す図である。本音符号化システムは、符号化装置10、復号化装置20、及び符号された音情報を伝送する伝送媒体30を備えている。
符号化装置10は、システム外部から入力されたアナログ信号である音やデジタル信号を符号化し、音符号を含む情報として出力する。符号化装置10と復号化装置20は伝送媒体30を介して接続されており、伝送媒体30は、符号化装置10から出力された音符号を含む情報を復号化装置20へ伝送する。復号化装置20は、符号化装置10から伝送された音符号を含む情報をアナログ信号やデジタル信号に復号し、本システム外部へ出力する。本音符号化システムは、例えば、ワイヤレスマイクなどの無線通信システムに用いることができる。
[1−2.各部構成]
(符号化装置)
符号化装置10は、外部I/F11、制御部12、音入力I/F13、エンコーダ14、及び符号出力I/F15を備えている。
外部I/F11は、ユーザインターフェイスや外部接続装置とのインターフェイスを提供する。ユーザインターフェイスは、図示しない操作入力部と状態出力部を有し、本システムとユーザとのインターフェイスである。操作入力部は、スイッチやモーションセンサなどの検出器によりユーザが要求する操作を検出し、制御部12へ伝達する。状態出力部は、LEDやLCDなどの表示器や、バイブレータによる振動、スピーカによる音出力などにより装置の内部状態を出力し、ユーザへのフィードバックを与える。
外部接続装置は、外部I/F11を介して本システムの内部状態を取得し、また動作制御を行うことができるものを用いる。外部接続装置としては、コンピュータやモバイル端末などが挙げられる。
外部I/F11は、符号化装置10外部からのリセット要求、量子化数更新要求、G.711形式更新要求、動作制御要求を受け付け、制御部12へ通知する。
制御部12は、外部I/F11、音入力I/F13、エンコーダ14、及び符号出力I/F15とそれぞれ接続されており、制御手段として機能する。すなわち、制御部12は、本システムの内部状態の管理、各部の動作制御を行う。
制御部12は、起動時に本システム各部の内部状態をリセットする。また、各部からの要求若しくは特定の内部状態の検出により、予め指定された内部状態をリセットし、本システム全体若しくは所定の部位を再起動させても良い。また、外部I/F11からの量子化数更新要求若しくはG.711形式更新要求により、各部を停止し、内部状態をリセットした上要求された量子化数若しくはG.711形式(A−law又はμ−law)へ内部状態を更新し、停止状態の部位を再起動させても良い。
制御部12は、音や音情報、音符号を各部が入出力するための周期的なタイミングを生成し、各部にそのタイミングを与える。或いは、周期的なタイミング以外にも、各部の動作に必要となる所定のタイミングを生成しても良い。
音入力I/F13は、本システム外部の音源の音を所定のタイミングで入力して時系列の音情報に変換し、出力する。音入力I/F13は、例えばマイクなどの音響的トランスデューサーを有し、到来した音を所定のパラメータに応じて電気信号化し、音情報として出力する。この音情報は、エンコーダ14及び/又は制御部12へ出力される。なお、音入力I/F13は、音情報をプリエンファシス処理などにより変換してもよいし、外部接続装置からの音情報を直接入出力するようにしても良い。
エンコーダ14は、入力された音情報を変換して音符号として出力する。すなわち、音入力I/F13から入力された音情報を符号化し、音符号として符号出力I/F15及び制御部12に出力する。エンコーダ14は、G.726に準拠した構成を有し、G.726のサブセットを含み構成される。例えば、後述する入力PCMフォーマット変換部142が削除され、音情報としてリニアPCMが入力されても良い。量子化数及びG.711形式は固定的であっても要求に応じて可変であっても良い。このエンコーダ14の詳細な構成は後述する。
符号出力I/F15は、伝送媒体30とのインターフェイスに適した構造を有し、エンコーダ14から入力された音符号を所定のタイミングで伝送媒体30へ出力する。なお、符号出力I/F15は、音符号の出力タイミングと同期させるための情報、例えば音符号をフレーミングして出力する場合のフレーム同期信号等を併せて制御部12に出力しても良い。また、符号出力I/F15は、音符号に関連する又は独立した情報を併せて出力しても良い。
(伝送媒体)
伝送媒体30は、符号化装置10の符号出力I/F15から出力される音符号を含む情報を、復号化装置20の後述する符号入力I/F23へ出力する。伝送媒体30は、有線であっても無線であっても良い。また、伝送媒体30の伝送は、逐次伝送する実時間伝送形式であっても、記憶装置などに蓄積し、蓄積したものを順次伝送する蓄積形式であっても良い。
(復号化装置)
復号化装置20は、外部I/F21、制御部22、符号入力I/F23、デコーダ24、及び音出力I/F25を備えている。外部I/F21及び制御部22については、符号化装置10の外部I/F11、制御部12とそれぞれ同様の構成であるため、その説明は省略する。
符号入力I/F23は、伝送媒体30とのインターフェイスに適した構造を有し、伝送媒体30から音符号を含む情報を所定のタイミングで入力を受け、デコーダ24及び/又は制御部22へ出力する。なお、符号入力I/F23は、入力情報に含まれる音符号とのタイミング同期信号を制御部22へ出力するようにしても良いし、入力情報に含まれる音符号に関連する又は独立した情報を制御部22へ出力するようにしても良い。また、符号入力I/F23は、伝送媒体30が蓄積形式である場合、所定のタイミングで順次伝送媒体30から音符号を含む情報を入力する。
デコーダ24は、入力された音符号を変換して音情報として音出力I/F25に出力する。デコーダ24は、G.726に準拠した構成を有し、G.726のサブセットを含み構成される。例えば、後述の出力PCMフォーマット変換部246と同期符号化補正部247が削除され、音情報としてリニアPCMを出力しても良い。この場合変数SRが音情報となる。量子化数及びG.711形式は固定的であっても要求に応じて可変であっても良い。このデコーダ24の詳細な構成は後述する。
音出力I/F25は、デコーダ24から入力された時系列的な音情報を所定のタイミングで本システム外部へ音に変換して出力する。音出力I/F25は、例えば、スピーカなどの音響的トランスデューサーを有し、音情報を所定のパラメータに応じて音に変換して出力する。なお、音出力I/F25は、音情報をデエンファシス処理などにより変換しても良いし、入力された音情報を外部接続装置へ直接出力するようにしても良い。
[1−3.エンコーダ及びデコーダの詳細構成]
図2は、エンコーダ14及びデコーダ24の全体的な構成を示すブロック図である。図3は、エンコーダ14の詳細な構成を示す機能ブロック図である。図4は、デコーダ24の詳細な構成を示す機能ブロック図である。図3及び図4を用いて、エンコーダ14とデコーダ24の詳細な構成を説明する。但し、各変数や各機能ブロック、各処理ブロックについて、G.726と同じものについては、適宜説明を省略する(非特許文献1参照。)。
エンコーダ14及びデコーダ24は、プロセッサ、メモリ、及び記録媒体を含み構成されたコンピュータであり、ソフトウェア実装されている。すなわち、当該記録媒体にはプログラムが記憶されており、メモリ等に適宜展開され、プロセッサで処理することにより、図3及び図4に示す各種の機能ブロックが実現される。
ここで、エンコーダ14及びデコーダ24の動作フローについて、簡単に説明する。エンコーダ14及びデコーダ24は、それぞれ6つの機能ブロックS1〜S6,S21〜S16を含み構成されている。
図3,4を全体的に参照すると、機能ブロックS2〜S6,S22〜S26は、図中上から下に並べられており、基本的には、上から下に処理が進行する。すなわち、エンコーダ14では、S2→S3→…→S6の順で進行し、デコーダ24では、S22→S23→…→S26の順で進行する。一方、各機能ブロックS1〜S6,S21〜S26を個別に参照すると、各機能ブロックS1〜S6,S21〜S26においては、各図中の左から右にかけて進行する。
このように、エンコーダ14及びデコーダ24は、1つの機能ブロックS2〜S6,S22〜S26による処理が全て終了した後に次の機能ブロックS2〜S6,S22〜S26による処理を全て実行し、機能ブロックS2〜S6,S22〜S26を順に実行して符号化又は復号化を行うように構成されている。
各機能ブロックS1〜S6、S21〜S26は、一つ又は複数の処理ブロックからなる。各処理ブロックは、左側の変数を入力として所定の処理を行い、右側の変数を出力する。すなわち、処理ブロックは、変数の入力を受けて所定の規則に則って処理した変数を出力する関数である。処理ブロックを例示すると、機能ブロックS2であれば、「EXPAND」「SUBTA」等、機能ブロックS22であれば、「RECONST」「ADDA」等である。図3の機能ブロック2内の「EXPAND」は、変数S,LAWを入力として、μ則PCM信号Sを均一PCM信号SLに変換し、当該変数SLを出力する。
(エンコーダ)
図3に示すように、エンコーダ14は、6つの機能ブロックS1〜S6を含み構成される。
機能ブロックS1は、リセット部(Reset)141である。リセット部141は、リセット信号Rの入力を受けて、エンコーダ14をリセットする。すなわち、各変数を初期化する。なお、このリセット部141は、後述するDELAYブロックの排除に伴い設けられたものである。
図2に示すように、機能ブロックS2は、変数S、LAW、SE、Yを入力として、変数Iを出力する。具体的には、機能ブロックS2は、入力PCMフォーマット変換部(EXPAND)142、差分信号算出部(SUBTA)143、及び適応量子化部(LOG,SUBTB,QUAN)144から構成される。
入力PCMフォーマット変換部142は、μ則で量子化されたPCM入力信号s(k)を、均一量子化されたPCM信号sl(k)に変換する。差分信号算出部143は、均一量子化されたPCM信号sl(k)と予測信号se(k)より差分信号d(k)を算出する。適応量子化部144は、差分信号d(k)を2を底とする対数に変換し、スケールファクタy(k)で正規化する。そして、これを量子化し、量子化器出力I(k)を出力する。
機能ブロックS3は、主に変数I,Y,TD,YLを入力として、変数TR,DQを出力する。具体的には、機能ブロックS3は、適応逆量子化部(RECONST,ADDA,ANTILOG)145と変化点検出部(TRANS)146とから構成される。
適応逆量子化部145は、量子化された差分信号dq(k)を求める。変化点検出部146は、狭帯域の信号の変化を検出した時、予測器の係数をゼロにセットし、量子化器の適応速度を高速側に移す。
機能ブロックS4は、変数DQ,TRを入力として、変数A2P,SEを出力する。具体的には、機能ブロックS4は、適応予測部(ADDC等後述の再生信号算出部の処理ブロック以外の処理ブロック)147と再生信号算出部(DELAY,ADDB,FLOATB)148とから構成される。適応予測部147は、量子化した差分信号dq(k)から予測信号se(k)を算出する。再生信号算出部148は、予測信号se(k)と量子化した差分信号dq(k)を加算した再生信号sr(k)を算出する。
機能ブロックS5は、変数I,TR,A2P,Yを入力として、変数AL,TDを出力とする。具体的には、機能ブロックS5は、トーン検出部(TONE,TRIGB)149と適応速度制御部(FUNCTF等トーン検出部の処理ブロック以外の処理ブロック)150とから構成される。トーン検出部149は、狭帯域の信号(例えばトーン信号)を検出した時、量子化の適応速度を高速側に移す。適応速度制御部150は、差分信号の変化率を適応速度制御変数al(k)とする。al(k)は[0,1]の範囲の値を取る。al(k)は音信号の場合1に近づき、音周波数帯域データ信号やトーン信号の場合は0に近づく。
機能ブロックS6は、変数I,ALを入力として、変数Y,YLを出力とする。具体的には、機能ブロックS6は、量子化スケールファクタ適応部(FUNCTW,FILTD,LIMB,FILTE,MIX)151からなる。量子化スケールファクタ適応部151は、スケールファクタy(k)を算出し、適応量子化部144及び適応逆量子化部145に与える。
(デコーダ)
図4に示すように、デコーダ24は、6つの機能ブロックS21〜S26を含み構成される。エンコーダ14の機能ブロックと同じ構成のものについては、説明を適宜省略する。
機能ブロックS21は、リセット部(Reset)241であり、その構成は、エンコーダ14のリセット部141と同様である。なお、このリセット部241は、後述するDELAYブロックの排除に伴い設けられたものである。
機能ブロックS22は、変数I,Y,TD,YLを入力として、変数DQ,TRを出力する。具体的には、機能ブロックS22は、適応逆量子化部(RECONST,ADDA,ANTILOG)242と変化点検出部(TRANS)243とから構成される。適応逆量子化部242と変化点検出部243は、エンコーダ14の適応逆量子化部145と変化点検出部146の構成と同様である。
機能ブロックS23は、変数DQ,TRを入力として、変数A2P,SR,SEを出力とする。具体的には、機能ブロックS23は、適応予測部(ADDC等後述の再生信号算出部の処理ブロック以外の処理ブロック)244と再生信号算出部(DELAY,ADDB,FLOATB)245とから構成される。適応予測部244と再生信号算出部245は、エンコーダ14の適応予測部147と再生信号算出部148の構成と同様である。
機能ブロックS24は、変数LAW,I,SR,SE,Yを入力として、変数SDを出力する。具体的には、機能ブロックS24は、出力PCMフォーマット変換部(COMPRESS,EXPAND,SUBTA,LOG,SUBTB)246と同期符号化補正部(SYNC)247とから構成される。出力PCMフォーマット変換部246は、均一PCM信号をμ則PCM信号に変換する。同期符号化補正部247は、タンデム接続時にコーデックの同期特性を確保するため、出力PCM信号を再符号化する。
機能ブロックS25は、変数I,TR,A2P,Yを入力として、変数AL,TDを出力する。具体的には、機能ブロックS25は、トーン検出部(TONE,TRIGB)248と適応速度制御部(FUNCTF等トーン検出部の処理ブロック以外の処理ブロック)249とから構成される。トーン検出部248及び適応速度制御部249は、トーン検出部149及び適応速度制御部150の構成と同様である。
機能ブロックS26は、変数I,ALを入力として、変数Y,YLを出力する。具体的には、機能ブロックS26は、量子化スケールファクタ適応部(FUNCTW,FILTD,LIMB,FILTE,MIX)250からなる。量子化スケールファクタ適応部250は、量子化スケールファクタ適応部151の構成と同様である。
[1−4.エンコーダ及びデコーダの更なる構成と作用]
次に、本実施形態のエンコーダ14及びデコーダ24は、G.726に準拠した高速な音符号化および復号化のための手段、及び、モジュラリティの向上のための手段が施されている。これらについて順に説明する。
[1−4−1.高速化]
本実施形態では、G.726をソフトウェア実装に最適化するため、(1)演算器に適した変数表現、(2)固定小数点フォーマットの再構成、(3)二分探索の採用と動的演算の排除、(4)数値パッキングの排除、(5)遅延ブロック(DELAY)の排除をそれぞれ行った。
各手段(1)〜(5)を適用した処理ブロックの一覧を図5に示す。図5では、各処理ブロックに対して適用された手段(1)〜(5)については「○」が付されている。なお、図5中の「16TC」は(1)演算器に適した数値表現を示し、「小数点位置」は(2)固定小数点フォーマットの再構成を示す。「二分探索」、「動的演算」は(3)二分探索の採用と動的演算の排除をそれぞれ示す。「パッキング」は(4)数値パッキングの排除を示し、「DELAY」は(5)遅延ブロック(DELAY)の排除を示す。
(1) 演算器に適した変数表現への最適化
従来、G.726で用いられる変数はbit幅が1〜19の12種類、表現形式が2の補数や符号付き絶対値、浮動小数点と多岐にわたる。これは記憶領域に乏しいプロセッサ環境やハードウェアによる実装ではリソース最適化の観点から適していると考えられる。
しかし、今日のプロセッサ環境ではG.726実装規模において、記憶領域を最小化するよりも、アキュームレータや乗算器などの演算や命令に適した変数表現を採る方が、全体としてのパフォーマンスが向上できる。そのため、ソフトウェアではG.726を忠実に実装すべきではない。
たとえば16bit演算器やレジスタを有するDSPなどへの実装では、16bit幅の2の補数で変数を表現すれば最適な演算性能が得られる。但し、絶対値へのアクセスが必要な変数や演算効率に影響しない変数はこの限りではない。
G.726では各変数のbit幅に応じた符号検査、2の補数化、符号拡張をそれぞれ個別に処理しているが、プロセッサに適した変数表現に統一すれば、これらは全てプロセッサが担当するためソフトウェア実装する必要がなくなる。すなわち、各処理ブロックにおいて、入出力される変数毎にbit幅に応じた符号検査、2の補数化、符号拡張を処理するには、これらの処理を行うためのプログラムが必要になるが、予めプロセッサに適した変数表現とすれば、そのようなブログラムの必要がなくなる。
本実施形態のエンコーダ14及びデコーダ24では、図5に示す各処理ブロックにおいて変数を、2の補数で表現し、実装先プロセッサに適したbit幅へ符号拡張した設計を採用する。この設計が適用される処理ブロックは、図5に示すように、FMULT、SUBTA、MIX、LOG、SUBTB、QUAN、RECONST、ADDA、ANTILOG、TRANS、FILTA、FILTB、FILTD、LIMB、FILTE、ADDC、ADDB、FLOATB、FLOATA、COMPRESS、EXPAND、SYNC、UPA2、LIMC、UPA1、LIMD、SUBTC、FILTC、XOR、UPBである。これらの処理ブロックへの入力及び出力される各変数のうち、高速化が見込める変数に対して2の補数で表現し、実装先プロセッサに適したbit幅へ符号拡張した設計をしている。
「実装先プロセッサに適したbit幅へ符号拡張した設計」とは、例えば、レジスタを有するプロセッサへの実装の場合、そのレジスタのbit幅と負数の表現形式に適合した設計をいう。また、演算器(アキュームレータ)の入力ビット幅に適合した設計をいう。プロセッサに適したbit幅は、例えば、4、8、16、32、64、128bit等が挙げられる。
このように、図5に示す各処理ブロックの入出力変数の少なくとも一部を、2の補数とし、実装先のプロセッサのbit幅へ符号拡張した表現形式にすることにより、より高速に演算を行うことができる。
(2)固定小数点フォーマットの再構成
従来、G.726では多様な変数表現に合わせて、多様な固定小数点フォーマットが定義されている。このため、異なるフォーマット間での加減算では何れか1つのフォーマットへ動的に変換し、事前に桁合わせを行わなければならない。
このフォーマット変換には、シフトやマスクなどのビット演算を要するため、フォーマット数を抑えれば高速化に有利になるが、G.726に準拠しなくなるほど演算精度に影響する固定小数点位置の変更はできない。
しかし、演算精度に影響を与えない固定小数点フォーマットの再構成による、フォーマット変換回数の最小化は行うべきである。
ここで、フォーマット変換の一例を示す。図10、11は、従来のG.726のエンコーダ、デコーダの詳細な機能ブロック図である。G.726では、図10の付番6に示すように、適応量子化部において、RECONST→ADDA→ANTILOGの順で演算処理が行われる。ADDAブロックには変数DQLNとYが入力され、変数DQLがANTILOGブロックに出力され、ANTILOGブロックは変数DQLを入力として、変数DQを出力する。
この変数DQLNとYの固定小数点フォーマットは、それぞれQ7(小数点以下7桁)とQ9(小数点以下9桁)であるため、ADDAブロックにおいて、YをQ7に桁合わせの上和を求めてDQLとし、後段のANTILOGブロックにおいてDQLの小数点以下7bitをシフト演算で抽出してDQを求めている。すなわち、従来のG.726では、ADDAブロックとANTILOGブロックとで計2回のフォーマット変換を行っている。
換言すれば、RECONSTブロックから出力された変数DQLNは、Q7フォーマットの定数配列であるため、ADDAブロックにおいて小数点以下の桁数を合わせる必要が出てくる。この点、この変数DQLNを7bit精度を維持したQ9フォーマットとして設計することにより、ADDAブロックでYとの桁合わせを行うことなく、Q9フォーマットのDQLを求めることができ、フォーマット変換回数を削減できる。仮にこのDQLをQ7へ丸めれば、G.726のDQLと同じ値となるため演算精度は保たれる。なお、後段のANTILOGブロックでは、Q9であることに注意してDQLの小数点以下7bitを抽出するが、これにはG.726よりも2bit少なくシフトすれば良い。
本実施形態では、このような固定小数点フォーマットの再構成を行っている。固定小数点フォーマットの再構成とは、多入力の処理ブロックにおいて、当該処理ブロックの演算処理を、入力される変数のうち小数点以下の桁が最も大きい変数に小数点以下の桁を合わせることをいう。すなわち、当該処理ブロックに入力される変数は、入力される変数のうち、小数点以下の桁が最も大きい変数に小数点以下の桁が等しくされている。
この固定小数点フォーマットの再構成は、入力される変数の小数点以下の桁が異なる多入力の処理ブロックであれば適用可能である。適用対象の多入力の処理ブロックの出力数は、1つであっても複数であっても良い。図5に示すように、少なくとも適応速度制御部150、249のFUNCTF、および量子化スケールファクタ適応部151、250のFUNCTWとそれらに関連する処理ブロック(RECONST,ADDA,ANTILOG,FUNCTF,FILTA,FILTB,FUNCTW,FILTD,FILTE,SUBTC,FILTC)においても適用されている。
固定小数点フォーマットの再構成により、不要なフォーマット変換を排除できるので、高速演算が可能になる。
(3)二分探索の採用と動的演算の排除
G.726のLOGやFLOATA[B]、COMPRESSブロックなどでは、数値の桁を求めるためにO(n)の逐次探索が行われ、その桁情報を用いて後段の演算を進めている。
このO(n)の逐次探索を、O(logn)の二分探索に再構成すれば高速化が望める。たとえCOMPRESSブロックのfor文による探索であっても閾値として定数展開可能なため静的な二分探索構造に再構成できる。さらに、二分探索の最終段では数値の桁が特定できているため、このタイミングで静的な桁情報を用いるよう後段の演算を再配置・再構成すれば、G.726のように条件分岐を抜けた後に変数に保持された桁情報を動的に用いるよりも高速化できる。下記に逐次探索を適用した例と二分探索を適用した例を用いて、上記内容について説明する。
図6(a)は従来の逐次探索を説明するためのコード例であり、図6(b)は、本実施形態の二分探索を説明するためのコード例である。何れの場合も値aの範囲に応じた演算結果の出力b(=2)を求める例である。
図6(a)では、値aの範囲で条件分岐を行い、条件分岐が終了するとkの値が求まり、その求めたkの値をb=2に代入することで、最終的に出力bを求めている。すなわち、中間値kを用いて値aの範囲探索後に演算により、動的に値bを求めている。換言すれば、値aの範囲探索結果に応じて中間値kが変動し、最終的に出力される値bも変動する。
一方、図6(b)では、中間値kを介することなく、bを動的に求めず定数を二分探索の最終段において、直接代入するのみで同一の目的を達成している。なお、二分探索の最終段とは、図6(b)の値bの代入式の処理位置をいう。
本実施形態では、変数の数値の桁を求める処理ブロックに対して二分探索を適用する。さらに、二分探索の閾値が定数である場合には、上記のように、数値の範囲と数値の桁との間に一対一の対応関係があり、さらに上記のb=2のように、数値の桁と出力結果にも対応関係がある。従って、設計時には、数値の範囲と出力結果に対応関係があり、その対応関係は予め定まっている。そのため、図6(b)の「if 127<a then b=128」のように、二分探索の結果である変数の数値の桁から予め定まっている出力結果を直接代入することで、数値の桁から直接出力結果を得ることができる。
このように、本実施形態は、実行時に演算などの複数処理を伴わずに、設計時に定まる情報のみを用いる静的な二分探索構造を有する。この二分探索と動的演算の排除は、例えば、図5に示すように、MIX、LOG、ADDC、ADDB、FLOATB、FLOATA、COMPRESS、EXPAND、SYNCにおいて適用されている。このうち、MIX、ADDC、ADDBは、動的演算の排除のみが適用されている。
すなわち、変数の数値の桁を求める第1のステップと、当該桁に応じた所定の処理を行う第2のステップとを有する処理ブロックにおいて、第1のステップでは、二分探索により変数の数値の桁を求め、第2のステップでは、当該数値の桁から出力結果が設計時に予め定まるため、当該出力結果を、加減算を行うことなく直接出力する。なお、MIX、ADDC、ADDBのように、設計時に予め出力結果が定まっている場合は、直接出力するようにしても良い。
上記のように、二分探索により比較回数を最大O(logn)に低減できる。また、二分探索結果から中間値を介さずに直接出力を求めるようにしたので、算術演算の演算回数を低減できる。
(4)数値パッキングの排除
G.726では、FLOATA[B]とFMULTブロックにおいて浮動小数点演算を行っているが、FLOATA[B]ブロックにて固定小数点を浮動小数点化した際、数値を構成する符号と指数部と仮数部とを一つの変数へビット割り当てによりパッキングしている。
しかし、後段のFMULTブロックではすぐ様このパッキングを解いてその3要素を用いて浮動小数点演算を行っている。この様子を模式的に図7(a)に示す。この浮動小数点のパッキングとアンパッキングにはシフトやマスクと論理和など複数のビット演算が含まれており、冗長である。
そこで、本実施形態では、図7(b)に示すように、浮動小数点の一変数のパッキングは行わず、符号と指数部と仮数部を個別の変数に保持したまま処理ブロック間を伝送する。これにより、不要なビット演算を排除することができる。
浮動小数点の3要素変数は構造化すれば、一変数のように簡便に取り扱うことができる。この構造化とは、例えば、構造体や配列変数の適用である。
(5)遅延ブロック(DELAY)の排除
G.726では遅延作用を有するDELAYブロックが多数含まれている。このDELAYブロックは、「Memory block」として規定されており、入力された変数を記憶するブロックである。ソフトウェア実装ではYLなどの状態変数自体が遅延作用を有するため、それら状態変数をG.726に準拠して適切にリセットすればDELAYブロックに関連する冗長な代入演算を排除できる。
しかし、G.726の処理ブロック構成から単にDELAYブロックを排除し隣接する処理ブロック間を連結し直すだけでは、DELAYブロックが入力された変数を記憶するブロックであることから状態の要素がなくなることとなり破綻する。本実施形態では、次に説明するように、処理順序を見直してエンコーダとデコーダの再構成を行い、不要な処理を排除して高速化を図るとともにモジュラリティの向上を図っている。
DELAYブロックを排除した機能ブロックとしては、図5に示すように、FMULT,LIMA,MIX,TRANS,FILTA,FILTB,LIMB,FILTE,FLOATB,FLOATA,UPA2,LIMD,SUBTC,FILTC,TRIGA,XOR,UPBが挙げられる。
[1−4−2.モジュラリティの向上]
G.726によるエンコーダ及びデコーダは、図10、11に示すように、G.191のG.726モジュールではブロック毎に関数化され、当該ブロック内の各関数が図10、11中に付番した通りの順序で呼び出されるように実装されている。例えば、図10に示すエンコーダでは、最初に4.2.6の適用予測部及び再生信号算出部の付番1の処理を行い、次に、4.2.1の入力PCMフォーマット変換部の付番2の処理に移り、4.2.5の適応速度制御部内の付番3の処理を行う。このように、各関数は処理ブロックを跨いで複数箇所に入り交じって呼び出されるため、モジュラリティが低く、保守や機能ブロック化が容易ではない。
この点、高速化の要請からDELAYブロックの排除やソフトウェア実装上不要な処理の排除が必要であることも併せ、関数の呼び出し構造を再構成することによりモジュラリティを高めれば、これらの問題を解決できる。その際、G.726の記述構造との親和性を高めることが望ましい。
そこで、本実施形態では、G.726の構造を再構成するために、エンコーダ14又はデコーダ24を表すコーデックオブジェクトを導入している。コーデックオブジェクトは、基本状態変数、合成状態変数、フロー変数の各集合で構成される。すなわち、コーデックオブジェクトは、基本状態変数、合成状態変数、フロー変数をそれぞれ1つの構造体にまとめて、これらの情報を一つの音チャンネルである遷移間の状態を表現する。
図3及び図4において、各処理ブロックの左右に示された変数のうち、薄めのハイライトが施されたものが基本状態変数を示し、濃いめのハイライトが施されたものが合成状態変数を示している。ハイライトが施されていないものがフロー変数を示している。
基本状態変数は、所謂状態変数であり、G.726モジュールでも定義されている状態変数と同様の状態変数である。但し、上記のように、高速化の手段(1)〜(5)の少なくとも何れかが講じられていても良い。基本状態変数は、具体的には、図3及び図4に示すように、R,B1〜B6,A1,A2,PK1,PK2,DQ1〜DQ6,SR1,SR2,TD,DMS,DML,AP,YU,YL等が挙げられる。この中でもSRn(n=1,2)、DQm(m=1,2,…,6)は、符号と指数部と仮数部の3変数で構成されていても良い。
合成状態変数は、基本状態変数又は合成状態変数のみを入力とする単数又は複数の処理ブロックにより出力された変数である。例えば、図3の機能ブロックS4内のFMULTブロック,ACCUMブロックに着目すると、これらのブロックの入力は基本状態変数であり、出力が合成状態変数である。合成状態変数を出力する処理ブロックとしては、FMULTブロック及びACCUMブロックの複合処理ブロックの他、図3の機能ブロックS6内のMIXのように、単数の処理ブロックも含まれる。合成状態変数は、図3及び図4に示すように、SE,Y,SEZ,ALが挙げられる。
フロー変数は、エンコーダ14又はデコーダ24への入力から派生し、各処理単位期間内で生成され消費される変数である。換言すれば、フロー変数は、各処理単位期間を跨いで保持されない。例えば、図3の機能ブロック2のEXPANDから出力された変数SLは、後段のSUBTAにそのまま入力されており、EXPANDで生成されてSUBTAで消費されている。フロー変数としては、具体的には、S,SL,D,I,DQ,TR,SIGPK,PK0,A2P,PK0,SR,TDPが挙げられる。この中でもフロー変数DQは、符号と絶対値の2変数で構成されていても良い。
基本状態変数および合成状態変数は、各処理単位期間(サンプリング周期)内で更新されるまでは自由に参照可能なように、メモリにそれぞれ記憶されている。このため、更新前の値を参照するに当たり事前に合成状態変数を出力する関数群を呼び出す必要がなくなるので、同関数群の呼び出しタイミングの自由度を向上できる。
この点につき、エンコーダの初期動作を例にして詳細に説明する。なお、ここではエンコーダの初期動作について説明するが、デコーダでも同様である。エンコーダの動作においては、音情報Sが入力されると、図3の機能ブロックS2、図10の付番2に示すように、入力PCMフォーマット変換と差分信号算出を行うが、機能ブロックS2、付番2内のSUBTAでは変数SEが入力として必要である。この点、従来のG.726では、付番2の処理よりも前に、図10に示すように、適応予測部及び再生信号算出部内の付番1の関数を呼び出して変数SEZ,SEを算出している。すなわち、付番1の関数ではDELAYブロックへのリセット信号Rの入力に伴い、3つのFMULTブロックから各変数の初期値がACCUMブロックに入力され、変数SEZ,SEが算出される。
このように、従来のG.726では、音符号化に当たって、必要な変数を各変数の初期値から演算することを予め行っている。そして、この演算には、遅延素子であるDELAYブロックが複数使用されており、必要変数の演算と遅延素子の使用とが相乗的に高速演算の妨げとなっている。
一方、本実施形態では、リセット信号Rによる各変数の初期値から定まる変数については、一種の状態変数とみなし、合成状態変数としてメモリに記憶させている。言い換えると、基本状態変数の初期値から定まる状態変数は、逐一演算せずとも定まっているため、合成状態変数としてメモリに保持する。また、この基本状態変数と合成状態変数を入力とする処理ブロックから出力された変数も初期状態から定まる変数であるため、これも合成状態変数としてメモリに保持する。すなわち、合成状態変数とは、基本状態変数の初期値から定まる状態変数であり、その入力にフロー変数を含まないで定まる変数である。
このように、基本状態変数と合成状態変数をメモリに記憶させるようにしたので、逐一関数群を呼び出す必要も演算する必要もなくなるとともに、遅延素子となるDELAYブロックを排除することができる。このため、上記で図3及び図4を参照して示したように、各機能ブロックをこれらの図中の上から下に進むように、エンコーダ14では、S2→S3→…→S6の順で進行し、デコーダ24では、S22→S23→…→S26の順で進行させることができる。また、各機能ブロックS1〜S6,S21〜S16においては、各図中の左から右にかけて進行する。このように、機能ブロック間を飛び越えて処理が入り交じってしまうこともなくなるので、モジュラリティや保守、可読性を向上させることができる。
[1−5.テストベクターの生成]
本実施形態のエンコーダ14又はデコーダ24がG.726に準拠するか否かは、G.726AppedixII が提供するテストベクターにより検証すれば良い。しかし、このテストベクターはG.726を忠実に実装したソフトウェア専用のテストベクターであるため、本実施形態のエンコーダ14又はデコーダ24の準拠性を検証するテストベクターは別途作成する必要がある。
すなわち、テストベクターは、準拠性を検証するための時系列に並べたデータ列であり、音情報の入力、符号化、復号化、音の再生の際のそれぞれの処理段階で出力された各変数の数値データ列である。この点、G.726に準拠しているか否かは、G.726AppedixIIが提供するテストベクターが示す数値データと一致するかで判断できる。
但し、上記のように、G.726は複数の機能ブロック間で入り交じって処理を行うのに対し、本実施形態のエンコーダ14又はデコーダ24は、機能ブロック間で入り交じって処理することはないため、データ列の時系列が異なっている。そのため、G.726AppedixIIが提供するテストベクターから、本実施形態のエンコーダ14又はデコーダ24のG.726の準拠性を検証するためのテストベクターを別途生成する。
テストベクターの生成について説明すると、G.726の準拠性を担保するためG.726AppedixIIのテストベクターから、サブセットの検証対象となる変数の数値データ列を抽出し、サブセット用のテストベクターを生成する。この際、ベースのコーデックオブジェクトの状態変数にサブセットの検証に必要な検証用変数を一時的に追加する。なお、この検証用変数は、G.726におけるフロー変数などの状態変数として保持されない変数をコピーして保持するものである。
追加した検証用変数へ検証データを代入する代入文を、ベースのエンコーダ14又はデコーダ24へ挿入し、当該エンコーダ14又はデコーダ24をサブセット検証用のテストベクター生成器とする。このテストベクター生成器にG.726AppedixIIが提供するテストベクターを入力し、サブセット検証テストベクターを生成する。このテストベクターにより、新たに作成したエンコーダ14又はデコーダ24のサブセットのG.726の準拠性を検証することができる。
[1−6.動作]
図8及び図9を参照し、本システムの動作について説明する。図8は、符号化装置10の動作フローチャートである。図9は、復号化装置20の動作フローチャートである。なお、これらは動作の一例であり、これらの順序に限定されない。
符号化装置10の動作は、主としてリセット、音入力、エンコード、及び符号出力からなる。復号化装置20の動作は、主としてリセット、符号入力、デコード、及び音出力からなる。
[初期化]
図8及び図9に示すように、まず、運用開始時の初期化処理として、符号化装置10と復号化装置20ともに状態変数をリセットする(ステップS01)。このリセットは、例えば、ユーザによるアクションを契機として外部I/F11、21、制御部21、22を介して行う。この中には、制御部21、22からエンコーダ14、24にリセット信号がリセット部141、241に入力され、コーデックオブジェクトがリセットされることを含む。但し、フロー変数はリセットする必要はない。初期化処理の完了により、符号化又は復号化動作とそれらに付帯する動作を開始する。
[情報入力及び出力]
符号化装置10には、音又は音情報が音入力I/F15等により外部から入力される(ステップS02)。この音情報はエンコーダ14に入力され、ステップS03〜S07までの処理が順に成され、音符号が伝送媒体30を介して復号化装置20に出力される(ステップS08)。このとき、符号化装置10は、同期信号などエンコードされた音符号再生に必要な情報を復号化装置20へ出力する。
復号化装置20には、伝送媒体30から入力された音符号及びその再生に必要な情報が入力される(ステップS09)。そして、この音符号及び情報から符号入力I/F23により入力された音符号を再生してデコーダ24に入力し、デコーダ24によりステップS10〜S14までの処理が順になされ、音符号を音情報に復号し、音出力I/F25を介して復号化装置20外部へ出力される(ステップS15)。
符号化装置10のステップS08又は復号化装置20のステップS15の後、制御部12、22によりリセット要求があるかを確認する(ステップS16)。このリセット要求としては、例えば、ユーザによる外部I/F11、21からのリセット要求や、制御部12、22が内部異常を検出した場合などが挙げられる。リセット要求がある場合は(ステップS16のYES)、ステップS01に戻る。一方、リセット要求がない場合は(ステップS16のNO)、ステップS17に進み、ステップS02の音情報の入力又はステップS09の音符号の入力を継続するか(ステップS17のNO)、終了する(ステップS17のYES)。
なお、ステップS01、S02、S16、S17は、符号化装置10と復号化装置20とで同時並行して行っても良いし、それぞれ独立に行っても良く、その前後も任意である。また、何れか一方だけ行うようにしても良い。
[1−7.効果]
(1)本実施形態の音符号化システムは、入力された音を符号化するエンコーダ14又は入力された音符号を復号化するデコーダ24を含み構成される音符号化システムであって、エンコーダ14又はデコーダ24は、符号化又は復号化を行う処理部と、前記処理部の演算の入力又は出力となる状態変数を記憶するメモリと、を備え、状態変数には、基本状態変数と、前記基本状態変数の初期値から定まる合成状態変数と、が含まれ、前記処理部は、前記メモリに記憶された前記基本状態変数と前記合成状態変数とを参照して前記符号化又は復号化を行うようにした。
これにより、基本状態変数と合成状態変数とがメモリに記憶されているため、各処理単位期間(サンプリング周期)内で更新されるまでは自由に参照可能であり、更新前の値を参照するに当たり事前に合成状態変数を出力する関数群を呼び出して演算する必要がない。そのため、符号化又は復号化の処理を高速に行うことができる。また、上記関数群の呼び出しに用いられた遅延素子となるDELAYブロックも排除でき、高速処理が可能となる。
(2)エンコーダ14又はデコーダ24は、前記処理部として複数の機能ブロックS2〜S6,S22〜S26を有し、1つの機能処理部による処理の終了後に他の機能処理部による処理を実行し、機能処理部を順に実行して符号化又は復号化を行うようにした。
これにより、機能ブロック間で処理が入り交じることがなくなるので、モジュラリティの向上、保守やサブセットの容易化を図ることができる。
(3)エンコーダ14又はデコーダ24は、プロセッサを備え、エンコーダ14又はデコーダ24の状態変数の少なくとも一部は、2の補数であり、前記プロセッサのbit幅に符号拡張するようにした。
従来のG.726では各変数のbit幅に応じた符号検査、2の補数化、符号拡張を行うなど、各変数に合わせた処理を行っていたため、各変数をそれぞれ個別に処理しなければならない。これに対し、本実施形態では、状態変数を2の補数であり、前記プロセッサのbit幅へ符号拡張された形式にしたことにより、変数側をプロセッサが演算しやすいように合わせたので、プロセッサにより各変数に合わせた処理を行う必要がなく、高速に演算を行うことができる。
(4)前記処理部は、所定の処理を行う多入力の第1の処理部を備え、前記第1の処理部に入力される変数は、入力される変数のうち、最も小数点の桁が大きい変数に小数点の桁が等しくするようにした。
これにより、予め小数点の桁が最大の変数に他の変数を合わされているので、不要なフォーマット変換を排除できるため、高速演算が可能になる。
(5)前記処理部は、変数の数値の桁を求める第2の処理部と、前記第2の処理部の前記数値の桁に応じた所定の処理を行う第3の処理部とを備え、前記第2の処理部は、二分探索で前記数値の桁を求め、前記第3の処理部は、前記数値の桁に応じた情報を直接出力するようにした。
これにより、二分探索により比較回数を最大O(logn)に低減できる。また、二分探索結果から中間値を介さずに直接出力を求めるようにしたので、演算の処理回数を低減できる。
(6)前記処理部は、その内部で、前記符号化又は復号化の際、符号と指数部と仮数部とから構成される状態変数を、個別の変数に保持したまま伝送するようにした。これにより、不要なビット演算を排除することができる。
本実施形態によれば、高速化手段(1)〜(5)により、G.191と比較して処理時間を少なくとも1/4とすることができる。
[2.他の実施形態]
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。以下は、その一例である。
第1の実施形態の音符号化システムでは、エンコーダ14とデコーダ24とが別体として構成したが、これらを一体として構成したシステムとして構成しても良い。
10 符号化装置
11 外部I/F
12 制御部
13 音入力I/F
14 エンコーダ
15 符号出力I/F
20 復号化装置
21 外部I/F
22 制御部
23 符号入力I/F
24 デコーダ
25 音出力I/F
30 伝送媒体
S1〜S6 機能ブロック
141 リセット部
142 入力PCMフォーマット変換部
143 差分信号算出部
144 適応量子化部
145 適応逆量子化部
146 変化点検出部
147 適応予測部
148 再生信号算出部
149 トーン検出部
150 適応速度制御部
151 量子化スケールファクタ適応部
S21〜S26 機能ブロック
241 リセット部
242 適応逆量子化部
243 変化点検出部
244 適応予測部
245 再生信号算出部
246 出力PCMフォーマット変換部
247 同期符号化補正部
248 トーン検出部
249 適応速度制御部
250 量子化スケールファクタ適応部

Claims (6)

  1. 入力された音を符号化するエンコーダ又は入力された音符号を復号化するデコーダを含み構成される音符号化システムであって、
    前記エンコーダ又はデコーダは、
    G.726に準拠しており、
    前記符号化又は復号化を行う処理部と、
    前記処理部の演算の入力又は出力となる状態変数を記憶するメモリと、
    を備え、
    前記状態変数には、基本状態変数と、合成状態変数と、が含まれ、
    前記メモリに記憶された基本状態変数は、前記基本状態変数の初期値である、前記メモリに記憶されている状態変数がリセットされたときの値を含み、
    前記メモリに記憶された前記合成状態変数は、前記基本状態変数の初期値から定まる変数であり、
    前記処理部は、
    量子化した差分信号から合成状態変数である予測信号を算出する適応予測部と、
    差分信号の変化率を、合成状態変数である適応速度制御変数とする適応速度制御部と、
    合成状態変数であるスケールファクタを算出する量子化スケールファクタ適応部の、少なくとも一つを含み、前記メモリに記憶された前記基本状態変数と前記合成状態変数とを参照して前記符号化又は復号化を行うこと、
    を特徴とする音符号化システム。
  2. 前記エンコーダ又はデコーダは、
    前記処理部として順次処理される複数の機能処理部を有し、
    1つの前記機能処理部による処理が全て終了した後に次の前記機能処理部による処理を実行して前記符号化又は復号化を行うこと、
    を特徴とする請求項1に記載の音符号化システム。
  3. 前記エンコーダ又はデコーダは、プロセッサを備え、
    前記エンコーダ又はデコーダの状態変数の少なくとも一部は、2の補数であり、前記プロセッサのbit幅に符号拡張する拡張処理部を有すること
    を特徴とする請求項1又は請求項2に記載の音符号化システム。
  4. 前記処理部は、所定の処理を行う多入力の第1の処理部を備え、
    前記第1の処理部に入力される変数は、入力される変数のうち、小数点以下の桁数が最も大きい変数に小数点以下の桁等しくする再構成処理部を有すること
    を特徴とする請求項1〜3の何れか1項に記載の音符号化システム。
  5. 前記処理部は、
    μ則で量子化されたPCM入力信号を、均一量子化されたPCM信号に変換する入力PCMフォーマット変換部と、
    差分信号を2を底とする対数に変換し、スケールファクタで正規化する適応量子化部と、
    前記適応予測部と、
    予測信号と量子化した差分信号を加算した再生信号を算出する再生信号算出部と、
    均一PCM信号をμ則PCM信号に変換する出力PCMフォーマット変換部と、
    出力PCM信号を再符号化する同期符号化補正部の、少なくとも一つを含み、
    変数の数値の桁を求める第2の処理部と、前記第2の処理部の前記数値の桁に応じた所定の処理を行う第3の処理部とを備え、
    前記第2の処理部は、二分探索で前記数値の桁を求め、
    前記第3の処理部は、前記数値の桁からあらかじめ定まっている出力結果を直接出力すること、
    を特徴とする請求項1〜4の何れか1項に記載の音符号化システム。
  6. 前記処理部は、その内部で、前記符号化又は復号化の際、符号と指数部と仮数部とから構成される状態変数を、個別の変数に保持したまま伝送すること、
    を特徴する請求項1〜5の何れか1項に記載の音符号化システム。
JP2015153570A 2015-08-03 2015-08-03 音符号化システム Active JP6301877B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015153570A JP6301877B2 (ja) 2015-08-03 2015-08-03 音符号化システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015153570A JP6301877B2 (ja) 2015-08-03 2015-08-03 音符号化システム

Publications (2)

Publication Number Publication Date
JP2017032825A JP2017032825A (ja) 2017-02-09
JP6301877B2 true JP6301877B2 (ja) 2018-03-28

Family

ID=57989203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015153570A Active JP6301877B2 (ja) 2015-08-03 2015-08-03 音符号化システム

Country Status (1)

Country Link
JP (1) JP6301877B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS626326A (ja) * 1985-07-03 1987-01-13 Nec Corp 演算処理装置
JPH07122800B2 (ja) * 1987-04-28 1995-12-25 富士通テン株式会社 処理装置
JP4034929B2 (ja) * 1999-08-23 2008-01-16 松下電器産業株式会社 音声符号化装置
JP3748261B2 (ja) * 2003-06-17 2006-02-22 沖電気工業株式会社 Adpcm方式復号器
WO2008072732A1 (ja) * 2006-12-14 2008-06-19 Panasonic Corporation 音声符号化装置および音声符号化方法
JP2012203566A (ja) * 2011-03-24 2012-10-22 Seiko Epson Corp 状態推定装置、電子機器及びプログラム
JP5994073B2 (ja) * 2013-01-31 2016-09-21 株式会社アクセル 音声信号圧縮装置及び音声信号圧縮方法

Also Published As

Publication number Publication date
JP2017032825A (ja) 2017-02-09

Similar Documents

Publication Publication Date Title
ES2809677T3 (es) Método y sistema para codificar una señal de sonido estéreo utilizando parámetros de codificación de un canal primario para codificar un canal secundario
US10841584B2 (en) Method and apparatus for pyramid vector quantization de-indexing of audio/video sample vectors
JP4640020B2 (ja) 音声符号化装置及び方法、並びに音声復号装置及び方法
ES2717131T3 (es) Métodos, codificador y decodificador para codificación y decodificación predictiva lineal de señales de sonido tras transición entre tramas que tienen diferentes tasas de muestreo
RU2408089C2 (ru) Декодирование кодированных с предсказанием данных с использованием адаптации буфера
KR20200138367A (ko) 통신 소음 발생 및 통신 소음 발생을 위한 지원
US7548727B2 (en) Method and system for an efficient implementation of the Bluetooth® subband codec (SBC)
JP5713296B2 (ja) 信号ソースに関連付けられた少なくとも1つのパラメータを符号化するための装置および方法
JPWO2007114290A1 (ja) ベクトル量子化装置、ベクトル逆量子化装置、ベクトル量子化方法及びベクトル逆量子化方法
JPWO2006009075A1 (ja) 音声符号化装置および音声符号化方法
US9779739B2 (en) Residual encoding in an object-based audio system
JP6301877B2 (ja) 音符号化システム
US8473288B2 (en) Quantizer, encoder, and the methods thereof
JP5303074B2 (ja) 符号化方法、復号方法、それらの装置、プログラム及び記録媒体
US20110019829A1 (en) Stereo signal converter, stereo signal reverse converter, and methods for both
EP1121686B1 (en) Speech parameter compression
US11159885B2 (en) Optimized audio forwarding
CN101395660A (zh) 用于中侧立体声的音频编码技术
JP2013003330A (ja) ステレオ信号符号化方法、ステレオ信号符号化装置、プログラム
US20110058678A1 (en) Stereo signal conversion device, stereo signal inverse conversion device, and method thereof
WO2018225412A1 (ja) 符号化装置、復号装置、平滑化装置、逆平滑化装置、それらの方法、およびプログラム
Peretz et al. G. 722 Wideband Speech Codec Implementation On BF-533 DSP
Wang et al. Implementation of bi-channel G. 726 speech codec on fixed-point DSP
JPH02120896A (ja) 音声復号化方式とその装置
JPS63188200A (ja) 音声符号化復号化方法とその装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180301

R150 Certificate of patent or registration of utility model

Ref document number: 6301877

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150