(57)【特許請求の範囲】
【請求項１】
入力信号を量子化パラメタに基づいて量子化した量子化値に対して可変長符号化を行う符号化装置であって、
前記入力信号の特性に基づいて、２以上の可変長符号化テーブルの中から１の可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルに応じて、前記量子化パラメタ毎に発生しうる最大の符号量を取得する取得部と、
前記量子化パラメタ毎の前記最大の符号量と、受信バッファの占有符号量により求まる割り当て符号量と、に基づいて前記量子化パラメタを決定する決定部と、
前記決定部により決定された前記量子化パラメタを用いて、前記入力信号を量子化して前記量子化値を求める量子化部と、
前記決定部により決定された前記量子化パラメタに基づいて、前記２以上の可変長符号化テーブルの中から１の可変長符号化テーブルを選択し、該可変長符号化テーブルによって、前記量子化値に対して可変長符号化を行う符号化部と、
を備えた符号化装置。
【請求項２】
前記取得部は、前記量子化パラメタ毎に発生しうる前記最大の符号量を決定する関数を取得し、
前記決定部は、前記関数から得られる前記量子化パラメタ毎の前記最大の符号量と、前記受信バッファの占有符号量により求まる前記割り当て符号量と、に基づいて前記量子化パラメタを決定する請求項１に記載の符号化装置。
【請求項３】
前記選択部は、前記入力信号の特性として、該入力信号の分散または絶対値和に基づいて、１の可変長符号化テーブルを選択する請求項１に記載の符号化装置。
【請求項４】
前記符号化部により可変長符号化が行われる符号の符号量が、復号装置により前記受信バッファの符号が引き去られるタイミングにおける前記占有符号量よりも小さくなるように前記割り当て符号量を設定する符号量制御部を、さらに備えた請求項１に記載の符号化装置。
【請求項５】
前記符号化部が選択する可変長符号化テーブルは、ゴロムライス符号に基づくテーブルであり、
前記符号化部は、前記決定部により決定された前記量子化パラメタが大きいほど、前記選択部により選択された可変長符号化テーブルに対応する分散よりも小さい分散に対応する可変長符号化テーブルを選択し、
前記取得部が取得する関数は、一次関数である請求項２に記載の符号化装置。
【請求項６】
前記符号化部は、前記選択部により選択された可変長符号化テーブルのサフィックス長から、前記決定部により決定された前記量子化パラメタを差し引いた値をインデックスとして示される可変長符号化テーブルを選択する請求項５に記載の符号化装置。
【請求項７】
前記選択部は、所定値より大きいサフィックス長の可変長符号化テーブルを選択する請求項６に記載の符号化装置。
【請求項８】
前記量子化部による量子化の量子化幅は、前記量子化パラメタの指数関数であり、
前記関数は、前記量子化パラメタの一次式で表される請求項２に記載の符号化装置。
【請求項９】
前記選択部は、前記入力信号の特性を示す値と、以前に選択した可変長符号化テーブルに対応する特性の値との差分が所定の閾値未満である場合、以前に選択した可変長符号化テーブルを再度選択し、
前記符号化部は、前記選択部により、以前に選択した可変長符号化テーブルが選択された場合、以前に符号化に用いた可変長符号化テーブルによって、前記量子化値に対して可変長符号化を行う請求項１に記載の符号化装置。
【請求項１０】
前記取得部は、前記選択部により以前に選択した可変長符号化テーブルを再度選択された場合、再度選択された可変長符号化テーブルに対応する最大の符号量と、前記入力信号の特性に基づく可変長符号化テーブルに対応する最大の符号量との差分を取得し、
前記決定部は、前記量子化パラメタ毎の前記最大の符号量と、前記差分と、前記受信バッファの占有符号量により求まる前記割り当て符号量と、に基づいて前記量子化パラメタを決定する請求項９に記載の符号化装置。
【請求項１１】
入力信号を量子化パラメタに基づいて量子化した量子化値に対して可変長符号化を行う符号化装置の符号化方法であって、
前記入力信号の特性に基づいて、２以上の可変長符号化テーブルの中から１の可変長符号化テーブルを選択する選択ステップと、
選択した可変長符号化テーブルに応じて、前記量子化パラメタ毎に発生しうる最大の符号量を取得する取得ステップと、
前記量子化パラメタ毎の前記最大の符号量と、受信バッファの占有符号量により求まる割り当て符号量と、に基づいて前記量子化パラメタを決定する決定ステップと、
決定した前記量子化パラメタを用いて、前記入力信号を量子化して前記量子化値を求める量子化ステップと、
決定した前記量子化パラメタに基づいて、前記２以上の可変長符号化テーブルの中から１の可変長符号化テーブルを選択し、該可変長符号化テーブルによって、前記量子化値に対して可変長符号化を行う符号化ステップと、
を有する符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、符号化装置および符号化方法に関する。
【背景技術】
【０００２】
例えば、画像、音声、映像、センサデータ、およびその他１次元または多次元のデジタル信号等の各種の信号を伝送する際、所定の伝送路の通信容量に対して信号の情報量が大きい場合、一般にこれらの信号を符号化することにより情報量を削減して伝送が行われる。この場合に符号化の方法としては、例えば、予測符号化、変換符号化、量子化、もしくは可変長符号化等の各種処理、またはこれらのいずれか２以上を併用した処理が一般に用いられる。このうち可変長符号化の手法を用いた場合、所定の処理単位を符号化した場合に発生する符号量が一定とはならない場合がある。この場合、復号装置の前段に受信バッファを設け、符号化装置から伝送路を介して入力される符号化された信号（符号）を一時的に蓄積するような構成が一般に用いられる。このような構成では、符号化装置が出力する符号の符号量の変動幅に対して十分大きな容量を有する受信バッファを用意し、受信バッファに蓄積された符号の符号量が、受信バッファの容量の所定の割合まで蓄積された後に復号処理を開始する。これによって、復号装置が復号を開始するタイミングにおいて、受信バッファに蓄積された符号が不足する状態、すなわちバッファアンダーフローが発生することを抑制することが可能となる。
【０００３】
また、一般に受信バッファの容量が大きくなると、符号化装置が出力する符号の符号量の変動幅が大きくなってもバッファアンダーフローを抑制することが可能である。一方、受信バッファを容量の所定の割合まで最初に蓄積するまでの時間（初期遅延時間）が長くなることから、伝送システム全体としての遅延時間が大きくなるという問題がある。したがって、初期遅延時間の観点からみると、受信バッファの容量は可能な限り小さいことが望ましい。
【０００４】
以上の観点に基づき、受信バッファの容量を抑えつつバッファアンダーフローの発生を抑制する方法として、符号化装置が出力する符号量を制御することにより符号量の変動幅を抑え、バッファアンダーフローの発生を防ぐ方法が知られている。そのような方法の一例として、例えば、ビデオの符号化において、符号化対象となるフレーム群を２回符号化する方法が知られている。この方法では、１回目の符号化で収集した統計値を用いて２回目の符号化で用いる量子化パラメタを決定することにより出力される符号量を制御し、バッファアンダーフローの発生を抑制している。また、別の方法の例として、ある処理単位を符号化したときの符号量が割り当てられた符号量を上回った場合に、上回った部分の符号化をスキップすることにより発生符号量を抑えるという方法も知られている。
【０００５】
しかしながら、上述のフレーム群を２回符号化する方法では、符号化処理を２回行う必要があることから、符号化処理にかかる処理量が大きいという問題がある。また、符号量の推定値に基づいて、量子化パラメタを決定して符号化を行うことから、推定値と、実際に発生する符号量との間に乖離が生じる可能性があり、受信バッファが小さい場合にバッファアンダーフローの発生を抑制しきれない可能性が存在する。
【０００６】
また、上述の符号化をスキップすることにより発生符号量を抑えるという方法では、符号化をスキップした部分において復号した信号の品質の大幅な劣化が発生するという問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５０９６３４２号公報
【特許文献２】特開２００１−１６９２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記に鑑みてなされたものであって、少ない処理量でバッファアンダーフローを抑制することができる符号化装置および符号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態の符号化装置は、入力信号を量子化パラメタに基づいて量子化した量子化値に対して可変長符号化を行う符号化装置であって、選択部と、取得部と、決定部と、量子化部と、符号化部と、を備える。選択部は、入力信号の特性に基づいて、１の可変長符号化テーブルを選択する。取得部は、選択された可変長符号化テーブルに応じて、前記量子化パラメタ毎に発生しうる最大の符号量を取得する。決定部は、量子化パラメタ毎の最大の符号量と、占有符号量により求まる割り当て符号量と、に基づいて量子化パラメタを決定する。量子化部は、量子化パラメタを用いて、入力信号を量子化して量子化値を求める。符号化部は、量子化パラメタに基づいて、１の可変長符号化テーブルを選択し、量子化値に対して可変長符号化を行う。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る伝送システムの全体構成の一例を示す図である。
【図２】第１の実施形態に係る符号化装置のハードウェア構成の一例を示す図である。
【図３】第１の実施形態に係る符号化装置のブロック構成の一例を示す図である。
【図４】受信バッファの占有符号量の制御を説明する図である。
【図５】各量子化パラメタに対するワースト符号量を示すグラフの一例を示す図である。
【図６】第１の実施形態に係る符号化装置の符号化処理の一例を示すフローチャートである。
【図７】第２の実施形態に係る符号化装置のブロック構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しながら、本発明の各実施形態に係る符号化装置および符号化方法を詳細に説明する。ただし、図面は模式的なものであるため、具体的な構成は以下の説明を参酌して判断すべきものである。
【００１２】
（第１の実施形態）
図１は、第１の実施形態に係る伝送システムの全体構成の一例を示す図である。図１を参照しながら、本実施形態に係る伝送システム１の全体構成について説明する。
【００１３】
図１に示すように、本実施形態に係る伝送システム１は、符号化装置１０と、復号装置２０と、受信バッファ３０と、を含む。符号化装置１０から出力される信号（後述する符号ストリーム）は、ネットワーク４０を介して、受信バッファ３０に蓄積される。なお、符号化装置１０から受信バッファ３０へ送信される伝送路は、ネットワーク４０のような有線の伝送路に限定されるものではなく、符号化装置１０から無線通信により信号がネットワーク４０に送信されるものとしてもよい。また、図１に示す伝送システム１の構成では、復号装置２０と、受信バッファ３０とが別体となっている構成を示しているが、これに限定されるものではなく、例えば、復号装置２０は、受信バッファ３０を含むものとし、復号装置２０による復号処理の前段に受信バッファ３０が配置されるものとしてもよい。
【００１４】
符号化装置１０は、外部から入力される入力信号を符号化し、その符号を外部（例えば、ネットワーク４０）に出力する装置である。具体的には、符号化装置１０は、入力信号を量子化し、量子化した信号である量子化値を可変長符号化して出力する。
【００１５】
ここで、入力信号としては、例えば、音声、画像、映像、３次元ボリュームデータ、各種センサの出力信号（１次元または多次元の信号）、無線または有線の伝送路における伝送信号（ベースバンド信号）等が挙げられる。なお、入力信号は上述のいずれかの信号に限定されるものではなく、例えば、入力ビット数に対しエントロピーの小さい各種信号、または、後述する予測符号化もしくは変換符号化によりエントロピーが削減された信号を入力信号としてもよい。
【００１６】
例えば、符号化装置１０は、入力信号に対する前処理として、入力信号を近接サンプルに基づき予測し、その予測値との差分値（予測残差）を求め（予測処理）、この予測残差を入力信号として量子化および可変長符号化するものとしてもよい（いわゆる、予測符号化）。例えば、温度センサ等の出力信号の場合、時間的に近接する信号同士は類似の値を持っている可能性が高く、予測処理により情報量（エントロピー）を削減することが可能となる。
【００１７】
また、符号化装置１０は、入力信号または上述の予測残差に対して離散フーリエ変換、離散コサイン変換または離散ウェーブレット変換等の変換処理を行い、その変換後の信号を入力信号として量子化および可変長符号化するものとしてもよい（いわゆる、変換符号化）。例えば、画像信号、特に自然画像においては、空間周波数の低い領域に信号が集中する傾向があり、周波数変換処理を行うことにより、空間周波数が高い領域のエントロピーを削減することが可能である。画像信号の場合では、予測処理および変換処理の併用によってさらに高効率にエントロピーを削減する方法が一般に知られている。
【００１８】
このように、入力信号に応じた適切な予測処理または変換処理を行うことによりエントロピーを削減し、この信号（またはその量子化値）を可変長符号化することによって高効率な符号化が実現される。本実施形態においては、便宜上、入力ビット数に対しエントロピーの低い入力信号（例えば、予測残差等）を想定し、これを量子化および可変長符号化して出力する符号化装置について説明する。
【００１９】
復号装置２０は、符号化装置１０から出力された符号化された信号が蓄積された受信バッファ３０から、所定時間ごとの復号タイミングに所定単位の符号を引き去り、引き去った符号を復号する装置である。
【００２０】
受信バッファ３０は、符号化装置１０から出力された符号化された信号を一定のレートで蓄積する記憶装置である。また、受信バッファ３０は、復号装置２０の復号機能の前段に配置されており、復号装置２０によって、所定時間ごとの復号タイミングに所定単位の符号が復号のために引き去られる。
【００２１】
ネットワーク４０は、符号化装置１０と受信バッファ３０とを接続する無線または有線の伝送路である。
【００２２】
図２は、第１の実施形態に係る符号化装置のハードウェア構成の一例を示す図である。図２を参照しながら、本実施形態に係る符号化装置１０のハードウェア構成について説明する。
【００２３】
図２に示すように、本実施形態に係る符号化装置１０は、入力Ｉ／Ｆ５０１と、符号化プロセッサ５０２と、キャッシュ５０２ａと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３と、出力Ｉ／Ｆ５０４と、補助記憶装置５０５と、を備えている。入力Ｉ／Ｆ５０１、符号化プロセッサ５０２、ＲＡＭ５０３、出力Ｉ／Ｆ５０４、および補助記憶装置５０５は、アドレスバスおよびデータバス等のバス５０６によって互いに通信可能に接続されている。
【００２４】
入力Ｉ／Ｆ５０１は、外部から入力信号を入力するためのインターフェースである。
【００２５】
符号化プロセッサ５０２は、図１に示す符号化装置１０の全体の動作を制御する演算装置である。符号化プロセッサ５０２は、符号化処理を実行する。
【００２６】
キャッシュ５０２ａは、符号化プロセッサ５０２が処理をする際のデータをワークエリアとして一時的に記憶するメモリである。
【００２７】
ＲＡＭ５０３は、符号化プロセッサ５０２の符号化処理により生成した符号ストリーム等を一時記憶する揮発性記憶装置である。ＲＡＭ５０３は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）またはＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）である。
【００２８】
出力Ｉ／Ｆ５０４は、符号化プロセッサ５０２の符号化処理により生成した符号ストリームを外部に出力するためのインターフェースである。
【００２９】
補助記憶装置５０５は、後述する可変長符号化テーブル等を記憶する記憶装置である。補助記憶装置５０５は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フラッシュメモリまたは光ディスク等の電気的、磁気的または光学的に記憶可能な記憶装置である。なお、補助記憶装置５０５は、符号化装置１０が備えるものとしているが、これに限定されるものではなく、符号化装置１０の外部に設置されているのとしてもよく、この場合、補助記憶装置５０５に記憶されたデータは、インターフェースを介して符号化装置１０と通信されるものとすればよい。また、上述の補助記憶装置５０５に記憶される情報は、補助記憶装置５０５に記憶する代わりに処理方法（論理回路またはプログラム）として組み込むものとしてもよい。
【００３０】
なお、図２に示す符号化装置１０のハードウェア構成は一例であり、その他の構成によって実現されるものとしてもよい。
【００３１】
図３は、第１の実施形態に係る符号化装置のブロック構成の一例を示す図である。図４は、受信バッファの占有符号量の制御を説明する図である。図３および４を参照しながら、本実施形態に係る符号化装置１０のブロック構成および動作について説明する。
【００３２】
図３に示すように、本実施形態に係る符号化装置１０は、テーブル選択部１０１（選択部）と、符号量取得部１０２（取得部）と、パラメタ決定部１０３（決定部）と、量子化部１０４と、符号化部１０５と、符号量制御部１０６と、記憶部１０７と、を有する。
【００３３】
テーブル選択部１０１は、外部から入力信号を受信し、所定の処理単位毎に、入力信号の特性に基づいて、記憶部１０７に予め記憶されている１以上の可変長符号化テーブルの中から、１の可変長符号化テーブルを選択する機能部である。ここで、入力信号の特性としては、例えば、入力信号の信号値の絶対値和または分散等であればよい。また、可変長符号化テーブルとは、入力信号を、例えば、ゴロムライス符号、または指数ゴロム符号等の既知の符号に変換（可変長符号化）するためテーブルである。テーブル選択部１０１は、記憶部１０７に予め記憶されている１以上の可変長符号化テーブルから、入力信号に対して可変長符号化を行った場合の符号量が小さくなる可変長符号化テーブルを選択する。例えば、ゴロムライス符号の可変長符号化テーブルの場合、テーブル選択部１０１は、入力信号の分散が小さい場合には、ゴロムライス符号の可変長符号化テーブルを特定するパラメタであるサフィックス長が短い可変長符号化テーブルを選択することにより、その可変長符号化テーブルにより符号化した場合の符号量を削減することが出来る。一方、テーブル選択部１０１は、入力信号の分散が大きい場合には、サフィックス長が長い可変長符号化テーブルを選択することにより、その可変長符号化テーブルにより符号化した場合の符号量を削減することが出来る。
【００３４】
テーブル選択部１０１は、選択した可変長符号化テーブルを示す情報（以下、テーブルインデックスと称する場合がある）を、符号量取得部１０２および符号化部１０５それぞれに送る。例えば、ゴロムライス符号の可変長符号化テーブルの場合、サフィックス長をテーブルインデックスとすればよい。テーブル選択部１０１は、図２に示す符号化プロセッサ５０２により実現される。
【００３５】
なお、入力信号の特性（絶対値和または分散）と可変長符号化テーブルとの対応関係を予め定めておき、この対応関係を規定する情報（例えば、数式またはルックアップテーブル等）を記憶部１０７に記憶させておき、テーブル選択部１０１は、この対応関係を規定する情報を参照することによって、可変長符号化テーブルを選択するものとしてもよい。例えば、ゴロムライス符号の場合、入力信号の絶対値和とサフィックス長とは対数の関係にあることから、テーブル選択部１０１は、対応関係を規定する情報として、絶対値和からサフィックス長を算出する数式を用い、特性値（絶対値和）から算出したサフィックス長により可変長符号化テーブルを選択するものとすればよい。
【００３６】
また、上述では、１以上の可変長符号化テーブルが予め記憶部１０７に記憶されているものとしたが、これに限定されるものではなく、テーブル選択部１０１は、入力信号を特性（絶対値和あるいは分散）に基づいて分類し、各グループに分類された入力信号の出現頻度に基づいて、特定の符号（例えば、ハフマン符号）に符号化する可変長符号化テーブルを作成するものとしてもよい。これによって、入力信号に最適な可変長符号化テーブルを作成することができ、高効率な符号化を実現することができる。また、上述において、１以上の可変長符号化テーブルは、予め記憶部１０７に記憶されるものとしてが、これに限定されるものではなく、１以上の可変長符号化の処理方法を予め用意しておいてもよい。例えば、ゴロムライス符号の場合、入力信号からプレフィックス長およびサフィックス値の各パラメタを算出し、これら値に基づいて可変長符号を構成することにより、可変長符号化を行うことが可能である。このように所定の演算処理として規定可能な可変長符号化方法を用いる場合、この演算ロジックを符号化装置に用意しておくことにより、記憶部１０７に可変長符号化テーブルを記憶することの代わりとすることができる。
【００３７】
また、上述において、入力信号の特性として絶対値和および分散を例に挙げたが、これらに限定されるものではなく、入力信号の特性として、入力信号の平均値を用いるものとしてもよい。一般に、音声または画像等において予測符号化を行う場合、予測後の信号は０を中心に分布する傾向がある。しかし、符号化装置１０に０以外を中心に分布するような入力信号が入力される場合には、入力信号の平均値に基づいて可変長符号化テーブルの選択を行うことにより、より高効率な符号化が実現される場合がある。
【００３８】
また、テーブル選択部１０１は、記憶部１０７に記憶された１以上の可変長符号化テーブルから、入力信号の特性に基づいて、１の可変長符号化テーブルを選択するものとしたが、これに限定されるものではなく、記憶部１０７に記憶された可変長符号化テーブルは単一のテーブルであり、これを用いるものとしてもよい。入力信号の特性がほとんど変化しないような場合、単一の可変長符号化テーブルを用いるものとしても、高効率な符号化が行える場合がある。この場合、１以上の可変長符号化テーブルの中から１の可変長符号化テーブルを選択する必要がないので、符号化装置１０はテーブル選択部１０１を有する必要はない。この場合、符号量取得部１０２および符号化部１０５は、この単一の可変長符号化テーブルが選択されているものとみなして後述の処理を行うものとすればよい。
【００３９】
符号量取得部１０２は、テーブル選択部１０１からテーブルインデックスを受け取り、このテーブルインデックスに基づいて、基準符号量を取得する機能部である。符号量取得部１０２による基準符号量の取得方法については、後述する。符号量取得部１０２は、取得した基準符号量をパラメタ決定部１０３へ送る。符号量取得部１０２は、図２に示す符号化プロセッサ５０２により実現される。
【００４０】
パラメタ決定部１０３は、符号量取得部１０２から基準符号量を受け取り、符号量制御部１０６から割り当て符号量を受け取り、基準符号量および割り当て符号量に基づいて、量子化パラメタを決定する機能部である。パラメタ決定部１０３による量子化パラメタの決定方法については、後述する。パラメタ決定部１０３は、決定した量子化パラメタを量子化部１０４および符号化部１０５それぞれに送る。パラメタ決定部１０３は、図２に示す符号化プロセッサ５０２により実現される。
【００４１】
量子化部１０４は、外部から入力信号を受信し、パラメタ決定部１０３から量子化パラメタを受け取り、入力信号を量子化パラメタにより量子化を行って量子化値を得る機能部である。例えば、量子化部１０４は、以下の式（１）に基づいて、量子化を行う。
【００４２】
ｘ１＝ｒｏｕｎｄ（ｘ０／２ｑ）                                    ・・・（１）
【００４３】
上述の式（１）において、ｘ０は入力信号を示し、ｘ１は量子化値を示し、ｑは量子化パラメタを示す。また、ｒｏｕｎｄ（）は小数点以下を四捨五入する関数を示す。この関数ｒｏｕｎｄ（）による処理を行うことによって、復号装置２０により符号化された符号を復号する場合に、四捨五入を行わない場合と比較して、復号した信号の誤差を低減することができる。また、上述の式（１）により量子化された量子化値は、量子化幅（式（１）の２ｑ）に応じて小さくなるので分散が小さくなる。量子化部１０４は、量子化によって得た量子化値を、符号化部１０５へ送る。量子化部１０４は、図２に示す符号化プロセッサ５０２により実現される。
【００４４】
なお、量子化部１０４は、上述の式（１）を用いて量子化を行うことに限定されるものではなく、その他の方式に基づいて量子化を行ってもよい。例えば、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）等における量子化と同様の処理を行ってもよい。
【００４５】
符号化部１０５は、テーブル選択部１０１からテーブルインデックスを受け取り、パラメタ決定部１０３から量子化パラメタを受け取り、量子化部１０４から量子化値を受け取り、量子化値に対して可変長符号化を行う機能部である。具体的には、符号化部１０５は、テーブルインデックスおよび量子化パラメタに基づいて、記憶部１０７に記憶されている１以上の可変長符号化テーブルの中から、１の可変長符号化テーブルを選択し、その可変長符号化テーブルにより量子化値に対して可変長符号化を行う。上述のように、量子化値は、量子化幅に応じて小さくなるので分散が小さくなることから、符号化部１０５は、入力信号よりも分散の小さくなった量子化値に対応した可変長符号化テーブルを用いて可変長符号化を行うことにより、発生する符号量を小さくすることができる。
【００４６】
ここで、上述の式（１）を用いて量子化を行い、ゴロムライス符号の可変長符号化テーブルを用いる場合を考える。また、上述のように、ゴロムライス符号のサフィックス長を、可変長符号化テーブルのテーブルインデックスとして考える。符号化部１０５は、上述のテーブル選択部１０１により選択された可変長符号化テーブルは、量子化を行わない、すなわち、例えば、式（１）においては、量子化パラメタｑ＝０の場合に最適な可変長符号化テーブルであるので、受け取った量子化パラメタｑが「０」である場合、テーブル選択部１０１が選択した可変長符号化テーブルにより可変長符号化を行うものとすればよい。また、パラメタ決定部１０３により決定された量子化パラメタｑが「１」である場合、上述の式（１）によれば、量子化値は入力信号の約１／２になることから、分散が１／２の信号（量子化値）に対応する可変長符号化テーブルが最適となる。ゴロムライス符号の可変長符号化テーブルの場合、これはサフィックス長が１小さい可変長符号化テーブルに対応する。このことから、テーブル選択部１０１により選択された可変長符号化テーブルのテーブルインデックスをｋとすると、符号化部１０５は、記憶部１０７に記憶された、サフィックス長がｋ−ｑとなるゴロムライス符号の可変長符号化テーブルにより可変長符号化を行えばよい。なお、ゴロムライス符号のサフィックス長は０以上であることから、例えば、ｋ−ｑが０未満となる場合、符号化部１０５は、サフィックス長が０のゴロムライス符号の可変長符号化テーブルを用いて可変長符号化を行うものとすればよい。なお、例えば、式（１）以外の方法によって量子化を行う場合、上述と同様に、各量子化パラメタに対応する分散の変化度合に応じた可変長符号化テーブルを選択するものとしてもよい。
【００４７】
なお、ハフマン符号の可変長符号化テーブルにより可変長符号化を行う場合も、同様の方法により可変長符号化テーブルを選択して符号化を行ってよい。ハフマン符号の可変長符号化テーブルを利用する場合、予め複数の特性値（信号の絶対値和または分散）に対応するテーブルを用意しておき、テーブル選択部１０１がいずれかを選択する。符号化部１０５は、ゴロムライス符号の可変長符号化テーブルを用いる場合と同様、ハフマン符号の可変長符号化テーブルのテーブルインデックスと、量子化パラメタとに基づいて、量子化値の分散（または絶対値和）を取得し、これに対応する、または最も近い可変長符号化テーブルを用いて、量子化値に対して可変長符号化を行うものとすればよい。ここで用いるハフマン符号の可変長符号化テーブルについては、分散または絶対値和ごとに分類された信号の出現頻度に基づいて予め作成されたものであってもよい。
【００４８】
また、例えば、ゴロムライス符号等の符号無し整数を想定した可変長符号化テーブルによる可変長符号化を行う場合、かつ、量子化値が符号付き整数である場合に、符号化部１０５は、以下の式（２）によって、量子化値を符号無し整数へと変換した後に可変長符号化を行うものとしてもよい。
【００４９】
ｘ２＝−２・ｘ１      （ｉｆ  ｘ１≦０）
ｘ２＝２・ｘ１＋１    （ｉｆ  ｘ１＞０）                          ・・・（２）
【００５０】
上述の式（２）において、ｘ１は符号付きの量子化値を示し、ｘ２は符号無し整数に変換された値を示す。なお、上述の式（２）による変換を行う代わりに、符号ビットを別途符号化し、量子化値の絶対値についてゴロムライス符号の可変長符号化テーブルによる可変長符号化を行ってもよい。
【００５１】
符号化部１０５は、さらに、復号装置２０による復号処理に用いるため、テーブルインデックスおよび量子化パラメタについても符号化する。この場合、テーブルインデックスおよび量子化パラメタは、例えば、予め定められたビット数により固定長で符号化されてもよいし、予め定められた可変長符号化テーブルを用いて可変長符号化を行ってもよい。また、テーブルインデックスおよび量子化パラメタは、予測符号化を行ってもよい。テーブルインデックスおよび量子化パラメタの特性が大きく変化しない場合に、過去に符号化した値（例えば、直前に符号化した値）を用いてこれらの値を予測（例えば、０次予測または１次予測等）し、その予測残差を符号化することにより発生する符号量を削減することが可能である。
【００５２】
符号化部１０５は、以上のように、テーブルインデックス、量子化パラメタおよび量子化値を符号化し、符号ストリームとして外部（例えば、ネットワーク４０等）へと出力する。また、符号化部１０５は、符号化した符号の符号量（発生符号量）を、符号量制御部１０６へ送る。符号化部１０５は、図２に示す符号化プロセッサ５０２により実現される。
【００５３】
符号量制御部１０６は、符号化部１０５から発生符号量を受け取り、割り当て符号量を設定する機能部である。符号量制御部１０６は、受信バッファ３０において占有している符号の量（以下、占有符号量という）をモデル化し、受信バッファ３０においてバッファアンダーフローが発生しないような符号化部１０５における発生符号量となるように、割り当て符号量を設定する。
【００５４】
例えば、符号量制御部１０６は、ＭＰＥＧ−２におけるＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒ  Ｖｅｒｉｆｉｅｒ）、または、Ｍ．２６４／ＭＰＥＧ−４  ＡＶＣにおけるＨＲＤ（Ｈｙｐｏｔｈｅｔｉｃａｌ  Ｒｅｆｅｒｅｎｃｅ  Ｄｅｃｏｄｅｒ）等のバッファモデルと同一または類似のモデル化を行うことによって、受信バッファ３０においてバッファアンダーフローが発生しない割り当て符号量を設定するものとしてもよい。
【００５５】
具体的には、例えば、図４に示すような受信バッファ３０の占有符号量のモデル化を行ってもよい。図４において、縦軸は受信バッファ３０で占有する符号量（占有符号量）を示し、横軸は時間を示している。図４に示すように、受信バッファ３０は、初期状態において占有符号量が「０」の状態にあり、ここから、一定のビットレートで符号化装置１０から出力された符号が蓄積される。その後、所定の初期遅延時間が経過すると、復号装置２０が復号を開始し、最初の処理単位における符号量に相当する符号が復号装置２０によって受信バッファ３０から引き去られる。以降は、所定の処理単位毎に、符号化装置１０から出力される符号の蓄積と、復号装置２０による符号の引き去りとが繰り返される。このような図４に示すモデルにおいて、占有符号量が「０」を下回った場合にバッファアンダーフローが発生する。すなわち、各処理単位において、復号装置２０による符号の引き去りのタイミングにおける占有符号量よりも、符号化部１０５が出力する符号の符号量（発生符号量）が大きい場合に、バッファアンダーフローが発生する。
【００５６】
そこで、符号量制御部１０６は、各処理単位における符号の引き去りのタイミングでの占有符号量と同一または小さい符号量を、割り当て符号量として設定する。符号化装置１０は、ある処理単位の入力信号の量子化値を、割り当て符号量よりも小さい符号量となるように可変長符号化を行うことによって、バッファアンダーフローの発生を抑制することが可能となる。ここで、割り当て符号量は、各処理単位における符号の引き去りのタイミングでの占有符号量と同一の符号量として設定されてもよいが、これに限定されるものではなく、これよりも小さい符号量として設定されてもよい。
【００５７】
また、受信バッファ３０の占有符号量が一定以上である状態、すなわち、符号化部１０５により発生可能な符号量に余裕がある場合に、ある処理単位においてこの余裕分を一度に消費してしまうよりは、後続の複数の処理単位でこの余裕分を分割したほうが、発生符号量が安定しやすい。このことから、特に占有符号量が大きい場合に、占有符号量よりも小さい符号量を割り当て符号量として設定することによって、復号装置２０により復号された信号の品質を安定化させることが可能となる。
【００５８】
符号量制御部１０６は、設定した割り当て符号量を、パラメタ決定部１０３へ送る。符号量制御部１０６は、図２に示す符号化プロセッサ５０２により実現される。
【００５９】
記憶部１０７は、テーブル選択部１０１および符号化部１０５が参照する１以上の可変長符号化テーブル等を記憶する機能部である。記憶部１０７は、図２に示す補助記憶装置５０５により実現される。
【００６０】
なお、図３に示したテーブル選択部１０１、符号量取得部１０２、パラメタ決定部１０３、量子化部１０４、符号化部１０５、符号量制御部１０６、および記憶部１０７は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図３で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図３の１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【００６１】
また、図３に示したテーブル選択部１０１、符号量取得部１０２、パラメタ決定部１０３、量子化部１０４、符号化部１０５、および符号量制御部１０６は、いずれも図２に示す符号化プロセッサ５０２により実現されるものとしたが、これに限定されるものではない。すなわち、上述の各機能部のうち少なくともいずれかが、記憶装置（例えば、図２に示す補助記憶装置５０５）等の記憶媒体に記憶されているプログラムがＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）により実行されることによって実現されるものとしてもよい。
【００６２】
図５は、各量子化パラメタに対するワースト符号量を示すグラフの一例を示す図である。図３および５を参照しながら、符号量取得部１０２による基準符号量の取得方法、およびパラメタ決定部１０３による量子化パラメタの決定方法の詳細について説明する。
【００６３】
上述したように、テーブル選択部１０１は、外部から受信した入力信号の絶対値和または分散等に基づいて、入力信号に対して可変長符号化を行った場合の符号量が小さくなる可変長符号化テーブルを選択するものとしている。逆に言えば、あるテーブルインデックスが示す可変長符号化テーブルが与えられた場合に、対応する入力信号の取り得る値はある有限の範囲に制限されることになる。例えば、ある可変長符号化テーブルが入力信号の絶対値和≦１２８に対応するテーブルである場合、この可変長符号化テーブルが与えられれば、処理単位内の入力信号が取り得る値は、その絶対値和が１２８以下となる任意の数値（入力信号が整数値の場合、任意の整数）群に限定される。入力信号が限定されれば、これらの入力信号を、対応する可変長符号化テーブルで符号化した場合の発生符号量が取得可能であり、例えば、総当たり等の方法によって、この可変長符号化テーブルにより入力信号を符号化した場合の最大の符号量が取得可能である。この取得した符号量は、量子化を行わない場合の最大の符号量であるが、量子化が行われた量子化値についても、同様に、符号化した場合の最大の符号量が取得可能である。この最大の符号量を、予め取得しておいてもよい。
【００６４】
また、量子化パラメタと量子化幅とが単調増加の関係にある場合、量子化パラメタが大きくなるほど、その量子化パラメタで量子化した量子化値を符号化した際の符号量は小さくなる。例えば、上述の式（１）のように、量子化幅が量子化パラメタの指数関数として表現される場合、符号化された符号量は、量子化パラメタに対する一次式で近似することができる。この性質は、上述の最大の符号量についても同様である。そこで、図５に示すように、予め、一次式によって最大の符号量のモデル化を行う。具体的には、あるテーブルインデックスが示す可変長符号化テーブルで符号化する場合に、任意の量子化パラメタを用いた場合の最大の符号量を取得（例えば、総当たりによる）し、図５に示すように、これらの最大の符号量のすべてを上回る一次式を設定する（下記の式（３））。
【００６５】
ＷＢ＝Ｃ１ｘｑ＋Ｃ２  （Ｃ１＜０、Ｃ２＞０）                      ・・・（３）
【００６６】
上述の式（３）において、Ｃ１は、一次式の傾きであり、量子化パラメタｑの増加と共に符号量は減少するので負値である。また、Ｃ２は、一次式の切片である。そして、ＷＢは、一次式で算出される符号量を示し、以下、ワースト符号量という。すなわち、式（３）は、各量子化パラメタに対するワースト符号量を示す一次式となる。
【００６７】
そして、テーブルインデックス毎に、上述の式（３）に示す一次式の傾きＣ１および切片Ｃ２を予め取得しておく。すなわち、テーブルインデックスが決まれば、ワースト符号量を示す一次式が決定されることになる。これによって、各テーブルインデックスについて、特定の量子化パラメタに対するワースト符号量が容易に算出できる。また、このテーブルインデックスと、ワースト符号量を示す一次式（すなわち、傾きＣ１および切片Ｃ２）との対応関係の情報は、例えば、予め記憶部１０７に記憶されているものとすればよい。そして、符号量取得部１０２は、記憶部１０７を参照して、テーブル選択部１０１から受け取ったテーブルインデックスに対応するワースト符号量を示す一次式を特定し、例えば、その一次式の切片Ｃ２を、基準符号量として取得する。なお、一次式の傾きＣ１についてはテーブルインデックス間で共通としてもよく、この場合はテーブルインデックス毎に切片Ｃ２のみを予め記憶しておけばよい。
【００６８】
パラメタ決定部１０３は、符号量取得部１０２により取得された基準符号量を有するワースト符号量を示す一次式を特定し、ワースト符号量が符号量制御部１０６から受け取った割り当て符号量を超えないように量子化パラメタを決定する。これによって、受信バッファ３０におけるバッファアンダーフローの発生を抑制することが可能になる。具体的には、ワースト符号量ＷＢが、上述の式（３）でモデル化されていることから、割り当て符号量Ｂについて、下記の式（４）が満たされていればよい。
【００６９】
Ｂ≧Ｃ１ｘｑ＋Ｃ２                                                ・・・（４）
【００７０】
また、この式（４）から量子化パラメタｑについて整理すると、下記の式（５）が得られる。
【００７１】
ｑ≧（Ｂ−Ｃ２）／Ｃ１                                            ・・・（５）
【００７２】
パラメタ決定部１０３は、この式（５）を満たす量子化パラメタｑを決定すればよく、例えば、式（５）を満たす最小の量子化パラメタｑを決定して、量子化部１０４に送る。なお、復号装置２０の復号信号の品質の安定化を目的として、量子化パラメタｑの変動を抑えるため、上述の式（５）を満たす範囲で、直前までの量子化パラメタに類似する値を量子化パラメタとして決定するものとしてもよい。
【００７３】
なお、上述の式（３）に示すワースト符号量を示す一次式は、図５に示すように、各量子化パラメタに対応する最大の符号量の全てを上回る一次式に設定するものとしたが、これに限定されるものではない。例えば、各量子化パラメタに対応する最大の符号量のうち２点を接続するグラフであって、その他の最大符号量と差分の絶対値和が最小となるグラフを示す一次式に設定するものとしてもよい。また、上述のように設定した一次式が示すグラフについて、その切片が所定範囲（例えば、元のグラフの切片の１〜２倍の範囲）でシフトさせたグラフを示す一次式であってもよい。
【００７４】
図６は、第１の実施形態に係る符号化装置の符号化処理の一例を示すフローチャートである。図６を参照しながら、本実施形態に係る符号化装置１０の符号化処理の流れを総括的に説明する。
【００７５】
＜ステップＳ１１＞
テーブル選択部１０１は、外部から入力信号を受信する。そして、ステップＳ１２へ移行する。
【００７６】
＜ステップＳ１２＞
テーブル選択部１０１は、所定の処理単位毎に、入力信号の特性（例えば、入力信号の信号値の絶対値和または分散等）に基づいて、記憶部１０７に予め記憶されている１以上の可変長符号化テーブルの中から、１の可変長符号化テーブルを選択する。テーブル選択部１０１は、選択した可変長符号化テーブルを示す情報（以下、テーブルインデックスと称する場合がある）を、符号量取得部１０２および符号化部１０５それぞれに送る。そして、ステップＳ１３へ移行する。
【００７７】
＜ステップＳ１３＞
符号量取得部１０２は、テーブル選択部１０１からテーブルインデックスを受け取り、このテーブルインデックスに基づいて、基準符号量を取得する。具体的には、符号量取得部１０２は、記憶部１０７を参照して、テーブル選択部１０１から受け取ったテーブルインデックスに対応するワースト符号量を示す一次式を特定し、例えば、その一次式の切片Ｃ２を、基準符号量として取得する。符号量取得部１０２は、取得した基準符号量をパラメタ決定部１０３へ送る。そして、ステップＳ１４へ移行する。
【００７８】
＜ステップＳ１４＞
パラメタ決定部１０３は、符号量取得部１０２から基準符号量を受け取り、符号量制御部１０６から割り当て符号量を受け取り、基準符号量および割り当て符号量に基づいて、量子化パラメタを決定する。具体的には、パラメタ決定部１０３は、符号量取得部１０２により取得された基準符号量を有するワースト符号量を示す一次式を特定し、ワースト符号量が符号量制御部１０６から受け取った割り当て符号量を超えないように量子化パラメタを決定する。パラメタ決定部１０３は、決定した量子化パラメタを量子化部１０４および符号化部１０５それぞれに送る。そして、ステップＳ１５へ移行する。
【００７９】
＜ステップＳ１５＞
量子化部１０４は、外部から入力信号を受信し、パラメタ決定部１０３から量子化パラメタを受け取り、入力信号を量子化パラメタにより量子化を行って量子化値を得る。量子化部１０４は、量子化によって得た量子化値を、符号化部１０５へ送る。そして、ステップＳ１６へ移行する。
【００８０】
＜ステップＳ１６＞
符号化部１０５は、テーブル選択部１０１からテーブルインデックスを受け取り、パラメタ決定部１０３から量子化パラメタを受け取り、量子化部１０４から量子化値を受け取り、量子化値に対して可変長符号化を行う。例えば、テーブル選択部１０１により選択された可変長符号化テーブルのテーブルインデックスをｋとすると、符号化部１０５は、記憶部１０７に記憶された、サフィックス長がｋ−ｑとなるゴロムライス符号の可変長符号化テーブルにより可変長符号化を行う。そして、ステップＳ１７へ移行する。
【００８１】
＜ステップＳ１７＞
符号量制御部１０６は、符号化部１０５から発生符号量を受け取り、割り当て符号量を設定する。符号量制御部１０６は、受信バッファ３０において占有している占有符号量をモデル化し、受信バッファ３０においてバッファアンダーフローが発生しないような符号化部１０５における発生符号量となるように、割り当て符号量を設定する。
【００８２】
以上のステップＳ１１〜Ｓ１７に示したように、符号化装置１０は、入力した入力信号に対して符号化処理を行う。
【００８３】
以上のように、本実施形態に係る符号化装置１０では、可変長符号化テーブルを示すテーブルインデックス毎に、ワースト符号量をモデル化することにより、割り当て符号量以下の符号量となる量子化パラメタを、少ない処理量で取得して符号化を行うことができる。これによって、少ない処理量で受信バッファ３０のバッファアンダーフローの発生を抑制した信号の符号化を実現することができる。また、バッファアンダーフローの発生が抑制されることから、符号化処理においてスキップ等のバッファアンダーフローの回避手段を含む必要がなく、これによる局所的なＳＮＲ（Ｓｉｇｎａｌ−ｔｏ−Ｎｏｉｓｅ  Ｒａｔｉｏ）の低下を抑制することができる。
【００８４】
なお、符号化部１０５は、上述のように、量子化のほかに、テーブルインデックスおよび量子化パラメタについても符号化を行っている。この場合、パラメタ決定部１０３は、これらの符号量を考慮して量子化パラメタを決定するものとしてもよい。具体的には、例えば、これらのパラメタを固定のビット数により符号化する場合、処理単位毎に、当該ビット数を上述の式（４）における右辺に加算した上で、量子化パラメタの算出を行ってもよい。または、例えば、テーブルインデックスおよび量子化パラメタを予測符号化する場合、処理単位毎に、テーブルインデックスおよび量子化パラメタそれぞれの値における符号量を算出して上述の式（４）に反映してもよく、または、より簡単に、予測符号化した場合の発生しうる最大符号量を予め求めておき、この最大符号量を加算した上で量子化パラメタの算出を行ってもよい。
【００８５】
また、本実施形態に係る符号化装置１０は、量子化パラメタが大きくなるほど、分散の小さい信号に対応する可変長符号化テーブルを利用して符号化を行うものとしている。しかし、量子化パラメタが所定値以上の場合、量子化パラメタが大きくなっても符号が削減されにくくなる場合がある。例えば、ゴロムライス符号を用いる場合において、量子化パラメタが、テーブル選択部１０１により選択された可変長符号化テーブルのテーブルインデックスとしてのサフィックス長を上回る場合、それ以上分散の小さいテーブルが用意されていないことにより、量子化パラメタが大きくなっても符号が削減されにくくなる。そこで、テーブル選択部１０１により選択された可変長符号化テーブル（すなわち、量子化を行わない場合に利用される可変長符号化テーブル）は、予め定められた複数の可変長符号化テーブルのうち、分散の大きい信号に対応する可変長符号化テーブルに限定してもよい。例えば、ゴロムライス符号の可変長符号化テーブルを用いる場合、テーブル選択部１０１は、サフィックス長が予め定められた所定値より大きい可変長符号化テーブルのみを選択する。この場合、テーブル選択部１０１は、所定値ｋ０より大きいサフィックス長ｋを選択する。符号化部１０５は、量子化パラメタをｑとした場合に、サフィックス長ｋ−ｑの可変長符号化テーブルで符号化を行うが、ここでｋ−ｑはｋ０未満となっても問題ない。このようなテーブル選択部１０１による可変長符号化テーブルの選択によって、符号化部１０５が符号化に用いる可変長符号化テーブルが用意されていないような場合（すなわち、ｋ−ｑ＜０となるような場合）が発生しにくくなり、ワースト符号量のモデル化がより正確に行えるようになる。
【００８６】
また、上述の式（３）に示すワースト符号量のモデル化の際、各量子化パラメタに対応する最大の符号量をすべて上回る一次式を設定するものとしたが、ワースト符号量が必ずしも直線で正確にモデル化できない場合がある。このような場合に、一部の量子化パラメタに対応する最大の符号量を外れ値とみなし、これを下回るような一次式でモデル化を行うものとしてもよい。この場合、外れ値とみなされた最大の符号量に対応する量子化パラメタを用いた場合、受信バッファ３０においてバッファアンダーフローが発生してしまう可能性があるが、他の部分について正確にモデル化していれば、全体として符号化効率を向上させることが可能となる。なお、この場合、バッファアンダーフローの発生を完全に回避することができなくなるため、バッファアンダーフローが発生した場合には、以降の符号化をスキップする等の処理を行う必要がある。ここで、上述のワースト符号量のモデルの外れ値と見なした部分において、モデルに対する最大の符号量のはみ出し部分が十分に小さければ、バッファアンダーフローの発生時の不足ビット数は十分小さい（例えば、数ビット）と見込むことができる。例えば、符号化部１０５が符号化を行う際、最初に、量子化パラメタおよびテーブルインデックスを符号化し、その後、量子化値を符号化するようにすれば、バッファアンダーフローが発生する部分は、その処理単位の最後の数ビットに相当するため、バッファアンダーフローが発生してもその影響は処理単位内のごく一部（例えば、最後の数シンボル）にとどめることができる。さらに、量子化値の符号化方法についても、最初に処理単位内の各量子化値の符号情報または上位ビット部分の情報を符号化し、その後に下位ビットの情報を符号化すれば、バッファアンダーフローの影響範囲が下位ビット部分にとどまるため、信号の完全な欠落を防ぎ、ある程度まで復号することが可能となる。例えば、ゴロムライス符号の可変長符号化テーブルを用いる場合、信号の符号情報、符号のプレフィックス部分、サフィックス部分の順に符号化を行えばよい。この場合、符号のプレフィックス部分の長さから復号信号の絶対値の値域が制限されるため、この情報からある程度の精度での復号が行える。このような符号化方法により、バッファアンダーフローが発生した場合のＳＮＲの大幅な低下を防ぐことができる。
【００８７】
また、バッファアンダーフローが発生した場合、符号化部１０５は、受信バッファ３０においてバッファアンダーフローがちょうど発生する符号量まで符号化を行い、処理単位内におけるそれ以降の符号を破棄してもよい。その後、符号化部１０５は、次の処理単位から符号化を再開する。復号装置２０は、受信バッファ３０内のすべての符号を読み込み、処理単位内で復号可能な部分まで復号を行う。復号不可能な信号については、予め定められた値（例えば、「０」等）で置き換えを行ってもよい。その後、復号装置２０は、次の処理単位において、受信バッファ３０の先頭から符号を読み込み、復号を再開することができる。
【００８８】
また、上述の符号化部１０５による符号化については、受信バッファ３０におけるバッファアンダーフローの発生を抑制する方法について説明してきたが、バッファオーバーフローについても同一または類似の方法により、その発生を抑制することが可能である。具体的には、符号量制御部１０６は割り当て符号量の代わりに、バッファオーバーフローが発生しない最低限の符号量を出力する。符号化装置１０はワースト符号量の代わりに、処理単位ごとに各可変長符号化テーブルで最低限発生する符号量を予めモデル化しておく。パラメタ決定部１０３は、このモデルに基づき、テーブルインデックスと符号量制御部１０６が出力した符号量とに基づいて、量子化パラメタを設定する。バッファオーバーフローの発生を抑制する場合、上述の式（４）の不等号を反転させた形の数式を満たせばよいことから、量子化パラメタの上限値を得ることができ、この範囲で任意の量子化パラメタを選択すればよい。なお、量子化パラメタの上限値が、予め定められた最低値（上述の式（１）の量子化を行う場合、例えば「０」）を下回る可能性があるが、これは最低値を用いた場合でもバッファオーバーフローが発生する可能性が残ることを意味する。実際に発生する符号量が不足してバッファオーバーフローが発生しそうな場合、処理単位の符号の最後に余剰符号を付加することによって、発生符号量を水増しさせ、バッファオーバーフローの発生を抑制するものとしてもよい（いわゆる、ビット・スタッフィング処理）。
【００８９】
また、上述のバッファオーバーフローの発生を抑制する方法は、上述のバッファアンダーフローの発生を抑制する方法と併用して用いられるものとしてもよい。この場合、パラメタ決定部１０３は、割り当て符号量および最低限の符号量と、テーブルインデックスとから量子化パラメタの上限値と下限値とを算出し、この範囲に収まる量子化パラメタを設定すればよい。
【００９０】
また、本実施形態に係る符号化装置１０においては、テーブルインデックスおよび量子化パラメタは、処理単位ごとに決定することとしているが、これに限定されるものではない。例えば、量子化パラメタについては第１の処理単位ごとに決定し、テーブルインデックスについては第１の処理単位よりも小さい第２の処理単位ごとに選択するようにしてもよい。例えば、変換符号化を行う場合、変換係数の位置ごとに符号の分散は異なり得る。このような場合に、例えば、前半の係数（例えば、画像の場合における空間周波数が低い信号）と、後半の係数（例えば、画像の場合における空間周波数が高い信号）とで異なるテーブルインデックスを選択することにより、符号化効率を高めることが可能である。この場合、パラメタ決定部１０３は、第１の処理単位内のそれぞれの第２の処理単位についてワースト符号量をモデル化し、その量子化パラメタに対応するワースト符号量の和が割り当て符号量を下回るように量子化パラメタを設定すればよい。
【００９１】
（第２の実施形態）
第２の実施形態に係る符号化装置について、第１の実施形態に係る符号化装置１０と相違する点を中心に説明する。第１の実施形態では、所定の処理単位毎に、可変長符号化テーブルの選択を行って可変長符号化を行う動作を説明した。本実施形態では、前回選択した可変長符号化テーブルの情報を再利用する動作について説明する。なお、本実施形態に係る伝送システムの全体構成、および符号化装置のハードウェア構成は、第１の実施形態で説明した構成と同様である。
【００９２】
図７は、第２の実施形態に係る符号化装置のブロック構成の一例を示す図である。図７を参照しながら、本実施形態に係る符号化装置１０ａのブロック構成および動作について説明する。
【００９３】
図７に示すように、本実施形態に係る符号化装置１０ａは、テーブル選択部１０１ａ（選択部）と、符号量取得部１０２（取得部）と、パラメタ決定部１０３ａ（決定部）と、量子化部１０４と、符号化部１０５ａと、符号量制御部１０６と、記憶部１０７と、を有する。なお、符号量取得部１０２、量子化部１０４、符号量制御部１０６、および記憶部１０７の動作は、第１の実施形態で説明した内容と同様である。
【００９４】
テーブル選択部１０１ａは、外部から入力信号を受信し、所定の処理単位毎に、入力信号の特性に基づいて、記憶部１０７に予め記憶されている１以上の可変長符号化テーブルの中から、１の可変長符号化テーブルを選択する機能部である。なお、入力信号の特性に基づいて、可変長符号化テーブルを選択する方法は、第１の実施形態のテーブル選択部１０１と同一または類似の動作であってよい。テーブル選択部１０１ａは、さらに、選択情報を生成する。ここで、選択情報とは、その処理単位で選択した可変長符号化テーブル、および以前（例えば、直前）に選択した可変長符号化テーブルのうち、いずれの可変長符号化テーブルを用いるかを示す情報である。
【００９５】
入力信号の特性（分散または絶対値和等）が以前と同一または類似であった場合、以前に選択した可変長符号化テーブルを用いることにより、符号化部１０５ａにおいてテーブルインデックスを符号化する必要がなくなり符号量を低減することができる。一方、入力信号の特性が以前と異なる場合には、テーブル選択部１０１ａは、新たに可変長符号化テーブルを選択することにより、符号化効率を向上させることができる。
【００９６】
また、テーブル選択部１０１ａによる選択情報の設定は、例えば以下のように行う。まず、テーブル選択部１０１ａは、各処理単位において、可変長符号化テーブルを選択するために入力信号の特性値（分散値または絶対値和等）を取得する。テーブル選択部１０１ａは、取得した特性値と、以前に選択した可変長符号化テーブルに対応する特性値とを比較し、その差が所定の閾値未満である場合、以前に選択した可変長符号化テーブルを再度選択する。差が所定の閾値より大きい場合、テーブル選択部１０１ａは、その処理単位において、入力信号の特性値に基づき、新たに可変長符号化テーブルを選択する。なお、特性値の比較処理にあたっては、特性値そのものの比較をおこなう代わりに、その対数値の差分について閾値判定をおこなってもよい。一般に符号化時の発生符号量は、特性値の対数に相関することから、このように比較を行うことにより符号化効率の高い可変長符号化テーブルの選択が可能となる。
【００９７】
テーブル選択部１０１ａは、選択した可変長符号化テーブルを示すテーブルインデックスを、符号量取得部１０２および符号化部１０５ａそれぞれに送り、生成した選択情報を、パラメタ決定部１０３ａおよび符号化部１０５ａそれぞれに送る。テーブル選択部１０１ａは、図２に示す符号化プロセッサ５０２により実現される。
【００９８】
パラメタ決定部１０３ａは、符号量取得部１０２から基準符号量を受け取り、符号量制御部１０６から割り当て符号量を受け取り、テーブル選択部１０１ａから選択情報を受け取り、量子化パラメタを決定する機能部である。パラメタ決定部１０３ａは、図２に示す符号化プロセッサ５０２により実現される。パラメタ決定部１０３ａによる量子化パラメタの決定方法は、選択情報がテーブル選択部１０１ａにより新たに可変長符号化テーブルが選択されたことを示す場合、第１の実施形態のパラメタ決定部１０３の動作と同一または類似の方法によって、量子化パラメタを決定すればよい。一方、選択情報がテーブル選択部１０１ａにより以前に選択した可変長符号化テーブルが選択されたことを示す場合、パラメタ決定部１０３ａは、以下のような動作によって、量子化パラメタを決定する。
【００９９】
第１の実施形態では、パラメタ決定部１０３は、符号量取得部１０２により取得された基準符号量を有する、上述の式（３）に示すワースト符号量を示す一次式を特定するものとしているが、選択情報がテーブル選択部１０１ａにより以前に選択した可変長符号化テーブルが選択されたことを示す場合、パラメタ決定部１０３ａは、テーブル選択部１０１ａにより以前に選択された可変長符号化テーブルを用いる。この場合、テーブル選択部１０１ａにより新たに選択された可変長符号化テーブル（最適な可変長符号化テーブル）を用いて符号化を行う場合よりも符号量が大きくなる場合がある。この場合、上述の式（３）に示すワースト符号量を示す一次式を利用すると、ワースト符号量の予測精度が悪くなり、その結果、符号化効率が低下するという問題がある。そこで、以下の式（６）に示すように、可変長符号化テーブルの差異による符号量の増加分を別の項として付加して、ワースト符号量のモデル化を行う。
【０１００】
ＷＢ＝Ｃ１ｘｑ＋Ｃ２＋ｄｉｆ［ｔ１，ｔ２］  （Ｃ１＜０、Ｃ２＞０）・・・（６）
【０１０１】
上述の式（６）において、Ｃ１およびＣ２は、上述の式（３）で対応する値と同一または類似の値でよい。ｔ１は、入力信号の特性値（絶対値和または分散等）に対応した可変長符号化テーブルのテーブルインデックスを示し、ｔ２は、テーブル選択部１０１ａにより以前選択された可変長符号化テーブルのテーブルインデックスを示す。そして、ｄｉｆ［ｔ１，ｔ２］は、テーブルインデックスがｔ１である場合と、ｔ２である場合とで符号化された符号量の差分を示す。ｄｉｆ［ｔ１，ｔ２］は、ｔ１＝ｔ２のとき、「０」であってよく、ｔ１およびｔ２の可変長符号化テーブルの分散が異なるほど、大きくなっていく。ｄｉｆ［ｔ１，ｔ２］の値は、任意のテーブルインデックスｔ１に対応する入力信号を、テーブルインデックスｔ２に対応する可変長符号化テーブルで、例えば、総当たりで符号化を行う等により取得することができる。各ｔ１、ｔ２について総当たりで符号化を行ってワースト符号量を取得し、ｔ１＝ｔ２の場合のワースト符号量との差分をとったものがｄｉｆ［ｔ１，ｔ２］となる。上述の式（６）によりワースト符号量のモデル化を行えば、その後のパラメタ決定部１０３ａによる量子化パラメタの決定方法については、第１の実施形態のパラメタ決定部１０３の動作と類似である。具体的には、割り当て符号量Ｂについて、下記の式（７）が満たされていればよい。
【０１０２】
Ｂ≧Ｃ１ｘｑ＋Ｃ２＋ｄｉｆ［ｔ１，ｔ２］                          ・・・（７）
【０１０３】
また、この式（７）から量子化パラメタｑについて整理すると、下記の式（８）が得られる。
【０１０４】
ｑ≧（Ｂ−Ｃ２−ｄｉｆ［ｔ１，ｔ２］）／Ｃ１                      ・・・（８）
【０１０５】
パラメタ決定部１０３ａは、この式（８）を満たす量子化パラメタｑを決定すればよく、例えば、式（８）を満たす最小の量子化パラメタｑを決定して、量子化部１０４に送る。
【０１０６】
なお、上述のように、テーブルインデックスが異なる場合のワースト符号量の差分を、２次元のテーブルについての差分ｄｉｆ［ｔ１，ｔ２］としてモデル化していたが、予め用意した可変長符号化テーブルの特性によっては、１次元のテーブルでモデル化を行うことも可能である。例えば、ゴロムライス符号の可変長符号化テーブルを用いる場合、ある可変長符号化テーブル（例えば、サフィックス長＝ｋ）と、その隣接する可変長符号化テーブル（例えば、サフィックス長＝ｋ＋１、ｋ−１）とは、ちょうど絶対値和が２倍または１／２倍の入力信号に対応する。この関係はサフィックス長が２以上の任意の可変長符号化テーブルについて成立し、このことから異なる可変長符号化テーブルを用いた場合のワースト符号量の差分は、各サフィックス長の絶対値にほとんど依存せず、その差分に大きく依存することになる。このことから、式（７）の代わりに、以下の式（９）のようにモデル化を行うことにより、符号化装置１０ａ内部に保持する情報量を削減することができる。
【０１０７】
Ｂ≧Ｃ１ｘｑ＋Ｃ２＋ｄｉｆ［ｔ１−ｔ２］                          ・・・（９）
【０１０８】
また、ゴロムライス符号以外の符号の可変長符号化テーブルを用いる場合においても、用意する可変長符号化テーブルによっては、上述の式（９）と同様のモデル化を行うことができる。例えば、ハフマン符号に基づく可変長符号化テーブルを用意する場合、可変長符号化テーブルの元となる確率分布を、テーブルインデックスごとに所定の割合で変化させた分布とすればよい。具体的には、例えば、テーブルインデックスが「１」増える毎に分散が２倍となる正規分布を用意し、この分布に基づいてハフマン符号の可変長符号化テーブルを構成しておけば、式（９）のようなモデル化を行うことが可能となる。
【０１０９】
パラメタ決定部１０３ａは、決定した量子化パラメタを量子化部１０４および符号化部１０５ａそれぞれに送る。
【０１１０】
符号化部１０５ａは、テーブル選択部１０１ａからテーブルインデックスおよび選択情報を受け取り、パラメタ決定部１０３ａから量子化パラメタを受け取り、量子化部１０４から量子化値を受け取り、量子化値に対して可変長符号化を行う機能部である。具体的には、選択情報がテーブル選択部１０１ａにより以前に選択した可変長符号化テーブルが選択されたことを示す場合、符号化部１０５ａは、内部に保持しておいた以前に符号化した可変長符号化テーブルを用いて、量子化値を可変長符号化する。なお、符号化部１０５ａは、実際に用いる可変長符号化テーブルについて、第１の実施形態の符号化部１０５と同様に、テーブルインデックス（テーブル選択部１０１ａにより以前に選択した可変長符号化テーブルを示すテーブルインデックス）と、量子化パラメタとに基づき選択するものとしてもよい。一方、選択情報がテーブル選択部１０１ａにより新たに可変長符号化テーブルが選択されたことを示す場合、符号化部１０５ａは、第１の実施形態の符号化部１０５と同一または類似の動作により可変長符号化を行えばよい。符号化部１０５ａは、後続の処理単位で利用できるようにテーブルインデックスの情報を内部に保持する。符号化部１０５ａは、図２に示す符号化プロセッサ５０２により実現される。
【０１１１】
符号化部１０５ａは、テーブルインデックスの符号化方法について、第１の実施形態の符号化部１０５の同方法と異なる方法により符号化を行う。具体的には、符号化部１０５ａは、まず、選択情報（例えば、フラグ）を符号化し、その後、選択情報がその処理単位で選択した可変長符号化テーブルを選択している場合のみ、その可変長符号化テーブルのテーブルインデックスを符号化する。これによって、テーブルインデックスを符号化する際の符号量が削減される。その他の動作において、符号化部１０５ａは、第１の実施形態の符号化部１０５と同一または類似の動作を行う。符号化部１０５ａは、以上のように、選択情報、テーブルインデックス（必要がある場合）、量子化パラメタおよび量子化値を符号化し、符号ストリームとして外部（例えば、ネットワーク４０等）へ出力する。
【０１１２】
以上のように、本実施形態に係る符号化装置１０ａは、第１の実施形態に係る符号化装置１０と同様に、少ない処理量で受信バッファ３０のバッファアンダーフローの発生を抑制する量子化パラメタを設定し、符号化を行うことができる。これによって、符号化処理に要する処理量を低減できるとともに、スキップ等によるバッファアンダーフローの回避手段を含む必要がなく、復号信号の局所的なＳＮＲの低下を抑制することができる。
【０１１３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、および変更を行うことができる。これらの実施形態は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１４】
１  伝送システム
１０、１０ａ  符号化装置
２０  復号装置
３０  受信バッファ
４０  ネットワーク
１０１、１０１ａ  テーブル選択部
１０２  符号量取得部
１０３、１０３ａ  パラメタ決定部
１０４  量子化部
１０５、１０５ａ  符号化部
１０６  符号量制御部
１０７  記憶部
５０１  入力Ｉ／Ｆ
５０２  符号化プロセッサ
５０２ａ  キャッシュ
５０３  ＲＡＭ
５０４  出力Ｉ／Ｆ
５０５  補助記憶装置
５０６  バス
【図１】
0006549057.tif 000002
【図２】
0006549057.tif 000003
【図３】
0006549057.tif 000004
【図４】
0006549057.tif 000005
【図５】
0006549057.tif 000006
【図６】
0006549057.tif 000007
【図７】
0006549057.tif 000008