以下に、図面を参照しながら、本発明の各実施形態に係る符号化装置および符号化方法を詳細に説明する。ただし、図面は模式的なものであるため、具体的な構成は以下の説明を参酌して判断すべきものである。
(第1の実施形態)
図1は、第1の実施形態に係る伝送システムの全体構成の一例を示す図である。図1を参照しながら、本実施形態に係る伝送システム1の全体構成について説明する。
図1に示すように、本実施形態に係る伝送システム1は、符号化装置10と、復号装置20と、受信バッファ30と、を含む。符号化装置10から出力される信号(後述する符号ストリーム)は、ネットワーク40を介して、受信バッファ30に蓄積される。なお、符号化装置10から受信バッファ30へ送信される伝送路は、ネットワーク40のような有線の伝送路に限定されるものではなく、符号化装置10から無線通信により信号がネットワーク40に送信されるものとしてもよい。また、図1に示す伝送システム1の構成では、復号装置20と、受信バッファ30とが別体となっている構成を示しているが、これに限定されるものではなく、例えば、復号装置20は、受信バッファ30を含むものとし、復号装置20による復号処理の前段に受信バッファ30が配置されるものとしてもよい。
符号化装置10は、外部から入力される入力信号を符号化し、その符号を外部(例えば、ネットワーク40)に出力する装置である。具体的には、符号化装置10は、入力信号を量子化し、量子化した信号である量子化値を可変長符号化して出力する。
ここで、入力信号としては、例えば、音声、画像、映像、3次元ボリュームデータ、各種センサの出力信号(1次元または多次元の信号)、無線または有線の伝送路における伝送信号(ベースバンド信号)等が挙げられる。なお、入力信号は上述のいずれかの信号に限定されるものではなく、例えば、入力ビット数に対しエントロピーの小さい各種信号、または、後述する予測符号化もしくは変換符号化によりエントロピーが削減された信号を入力信号としてもよい。
例えば、符号化装置10は、入力信号に対する前処理として、入力信号を近接サンプルに基づき予測し、その予測値との差分値(予測残差)を求め(予測処理)、この予測残差を入力信号として量子化および可変長符号化するものとしてもよい(いわゆる、予測符号化)。例えば、温度センサ等の出力信号の場合、時間的に近接する信号同士は類似の値を持っている可能性が高く、予測処理により情報量(エントロピー)を削減することが可能となる。
また、符号化装置10は、入力信号または上述の予測残差に対して離散フーリエ変換、離散コサイン変換または離散ウェーブレット変換等の変換処理を行い、その変換後の信号を入力信号として量子化および可変長符号化するものとしてもよい(いわゆる、変換符号化)。例えば、画像信号、特に自然画像においては、空間周波数の低い領域に信号が集中する傾向があり、周波数変換処理を行うことにより、空間周波数が高い領域のエントロピーを削減することが可能である。画像信号の場合では、予測処理および変換処理の併用によってさらに高効率にエントロピーを削減する方法が一般に知られている。
このように、入力信号に応じた適切な予測処理または変換処理を行うことによりエントロピーを削減し、この信号(またはその量子化値)を可変長符号化することによって高効率な符号化が実現される。本実施形態においては、便宜上、入力ビット数に対しエントロピーの低い入力信号(例えば、予測残差等)を想定し、これを量子化および可変長符号化して出力する符号化装置について説明する。
復号装置20は、符号化装置10から出力された符号化された信号が蓄積された受信バッファ30から、所定時間ごとの復号タイミングに所定単位の符号を引き去り、引き去った符号を復号する装置である。
受信バッファ30は、符号化装置10から出力された符号化された信号を一定のレートで蓄積する記憶装置である。また、受信バッファ30は、復号装置20の復号機能の前段に配置されており、復号装置20によって、所定時間ごとの復号タイミングに所定単位の符号が復号のために引き去られる。
ネットワーク40は、符号化装置10と受信バッファ30とを接続する無線または有線の伝送路である。
図2は、第1の実施形態に係る符号化装置のハードウェア構成の一例を示す図である。図2を参照しながら、本実施形態に係る符号化装置10のハードウェア構成について説明する。
図2に示すように、本実施形態に係る符号化装置10は、入力I/F501と、符号化プロセッサ502と、キャッシュ502aと、RAM(Random Access Memory)503と、出力I/F504と、補助記憶装置505と、を備えている。入力I/F501、符号化プロセッサ502、RAM503、出力I/F504、および補助記憶装置505は、アドレスバスおよびデータバス等のバス506によって互いに通信可能に接続されている。
入力I/F501は、外部から入力信号を入力するためのインターフェースである。
符号化プロセッサ502は、図1に示す符号化装置10の全体の動作を制御する演算装置である。符号化プロセッサ502は、符号化処理を実行する。
キャッシュ502aは、符号化プロセッサ502が処理をする際のデータをワークエリアとして一時的に記憶するメモリである。
RAM503は、符号化プロセッサ502の符号化処理により生成した符号ストリーム等を一時記憶する揮発性記憶装置である。RAM503は、例えば、SRAM(Static RAM)またはDRAM(Dynamic RAM)である。
出力I/F504は、符号化プロセッサ502の符号化処理により生成した符号ストリームを外部に出力するためのインターフェースである。
補助記憶装置505は、後述する可変長符号化テーブル等を記憶する記憶装置である。補助記憶装置505は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリまたは光ディスク等の電気的、磁気的または光学的に記憶可能な記憶装置である。なお、補助記憶装置505は、符号化装置10が備えるものとしているが、これに限定されるものではなく、符号化装置10の外部に設置されているのとしてもよく、この場合、補助記憶装置505に記憶されたデータは、インターフェースを介して符号化装置10と通信されるものとすればよい。また、上述の補助記憶装置505に記憶される情報は、補助記憶装置505に記憶する代わりに処理方法(論理回路またはプログラム)として組み込むものとしてもよい。
なお、図2に示す符号化装置10のハードウェア構成は一例であり、その他の構成によって実現されるものとしてもよい。
図3は、第1の実施形態に係る符号化装置のブロック構成の一例を示す図である。図4は、受信バッファの占有符号量の制御を説明する図である。図3および4を参照しながら、本実施形態に係る符号化装置10のブロック構成および動作について説明する。
図3に示すように、本実施形態に係る符号化装置10は、テーブル選択部101(選択部)と、符号量取得部102(取得部)と、パラメタ決定部103(決定部)と、量子化部104と、符号化部105と、符号量制御部106と、記憶部107と、を有する。
テーブル選択部101は、外部から入力信号を受信し、所定の処理単位毎に、入力信号の特性に基づいて、記憶部107に予め記憶されている1以上の可変長符号化テーブルの中から、1の可変長符号化テーブルを選択する機能部である。ここで、入力信号の特性としては、例えば、入力信号の信号値の絶対値和または分散等であればよい。また、可変長符号化テーブルとは、入力信号を、例えば、ゴロムライス符号、または指数ゴロム符号等の既知の符号に変換(可変長符号化)するためテーブルである。テーブル選択部101は、記憶部107に予め記憶されている1以上の可変長符号化テーブルから、入力信号に対して可変長符号化を行った場合の符号量が小さくなる可変長符号化テーブルを選択する。例えば、ゴロムライス符号の可変長符号化テーブルの場合、テーブル選択部101は、入力信号の分散が小さい場合には、ゴロムライス符号の可変長符号化テーブルを特定するパラメタであるサフィックス長が短い可変長符号化テーブルを選択することにより、その可変長符号化テーブルにより符号化した場合の符号量を削減することが出来る。一方、テーブル選択部101は、入力信号の分散が大きい場合には、サフィックス長が長い可変長符号化テーブルを選択することにより、その可変長符号化テーブルにより符号化した場合の符号量を削減することが出来る。
テーブル選択部101は、選択した可変長符号化テーブルを示す情報(以下、テーブルインデックスと称する場合がある)を、符号量取得部102および符号化部105それぞれに送る。例えば、ゴロムライス符号の可変長符号化テーブルの場合、サフィックス長をテーブルインデックスとすればよい。テーブル選択部101は、図2に示す符号化プロセッサ502により実現される。
なお、入力信号の特性(絶対値和または分散)と可変長符号化テーブルとの対応関係を予め定めておき、この対応関係を規定する情報(例えば、数式またはルックアップテーブル等)を記憶部107に記憶させておき、テーブル選択部101は、この対応関係を規定する情報を参照することによって、可変長符号化テーブルを選択するものとしてもよい。例えば、ゴロムライス符号の場合、入力信号の絶対値和とサフィックス長とは対数の関係にあることから、テーブル選択部101は、対応関係を規定する情報として、絶対値和からサフィックス長を算出する数式を用い、特性値(絶対値和)から算出したサフィックス長により可変長符号化テーブルを選択するものとすればよい。
また、上述では、1以上の可変長符号化テーブルが予め記憶部107に記憶されているものとしたが、これに限定されるものではなく、テーブル選択部101は、入力信号を特性(絶対値和あるいは分散)に基づいて分類し、各グループに分類された入力信号の出現頻度に基づいて、特定の符号(例えば、ハフマン符号)に符号化する可変長符号化テーブルを作成するものとしてもよい。これによって、入力信号に最適な可変長符号化テーブルを作成することができ、高効率な符号化を実現することができる。また、上述において、1以上の可変長符号化テーブルは、予め記憶部107に記憶されるものとしてが、これに限定されるものではなく、1以上の可変長符号化の処理方法を予め用意しておいてもよい。例えば、ゴロムライス符号の場合、入力信号からプレフィックス長およびサフィックス値の各パラメタを算出し、これら値に基づいて可変長符号を構成することにより、可変長符号化を行うことが可能である。このように所定の演算処理として規定可能な可変長符号化方法を用いる場合、この演算ロジックを符号化装置に用意しておくことにより、記憶部107に可変長符号化テーブルを記憶することの代わりとすることができる。
また、上述において、入力信号の特性として絶対値和および分散を例に挙げたが、これらに限定されるものではなく、入力信号の特性として、入力信号の平均値を用いるものとしてもよい。一般に、音声または画像等において予測符号化を行う場合、予測後の信号は0を中心に分布する傾向がある。しかし、符号化装置10に0以外を中心に分布するような入力信号が入力される場合には、入力信号の平均値に基づいて可変長符号化テーブルの選択を行うことにより、より高効率な符号化が実現される場合がある。
また、テーブル選択部101は、記憶部107に記憶された1以上の可変長符号化テーブルから、入力信号の特性に基づいて、1の可変長符号化テーブルを選択するものとしたが、これに限定されるものではなく、記憶部107に記憶された可変長符号化テーブルは単一のテーブルであり、これを用いるものとしてもよい。入力信号の特性がほとんど変化しないような場合、単一の可変長符号化テーブルを用いるものとしても、高効率な符号化が行える場合がある。この場合、1以上の可変長符号化テーブルの中から1の可変長符号化テーブルを選択する必要がないので、符号化装置10はテーブル選択部101を有する必要はない。この場合、符号量取得部102および符号化部105は、この単一の可変長符号化テーブルが選択されているものとみなして後述の処理を行うものとすればよい。
符号量取得部102は、テーブル選択部101からテーブルインデックスを受け取り、このテーブルインデックスに基づいて、基準符号量を取得する機能部である。符号量取得部102による基準符号量の取得方法については、後述する。符号量取得部102は、取得した基準符号量をパラメタ決定部103へ送る。符号量取得部102は、図2に示す符号化プロセッサ502により実現される。
パラメタ決定部103は、符号量取得部102から基準符号量を受け取り、符号量制御部106から割り当て符号量を受け取り、基準符号量および割り当て符号量に基づいて、量子化パラメタを決定する機能部である。パラメタ決定部103による量子化パラメタの決定方法については、後述する。パラメタ決定部103は、決定した量子化パラメタを量子化部104および符号化部105それぞれに送る。パラメタ決定部103は、図2に示す符号化プロセッサ502により実現される。
量子化部104は、外部から入力信号を受信し、パラメタ決定部103から量子化パラメタを受け取り、入力信号を量子化パラメタにより量子化を行って量子化値を得る機能部である。例えば、量子化部104は、以下の式(1)に基づいて、量子化を行う。
x1=round(x0/2q) ・・・(1)
上述の式(1)において、x0は入力信号を示し、x1は量子化値を示し、qは量子化パラメタを示す。また、round()は小数点以下を四捨五入する関数を示す。この関数round()による処理を行うことによって、復号装置20により符号化された符号を復号する場合に、四捨五入を行わない場合と比較して、復号した信号の誤差を低減することができる。また、上述の式(1)により量子化された量子化値は、量子化幅(式(1)の2q)に応じて小さくなるので分散が小さくなる。量子化部104は、量子化によって得た量子化値を、符号化部105へ送る。量子化部104は、図2に示す符号化プロセッサ502により実現される。
なお、量子化部104は、上述の式(1)を用いて量子化を行うことに限定されるものではなく、その他の方式に基づいて量子化を行ってもよい。例えば、H.264/MPEG−4 AVC(Advanced Video Coding)等における量子化と同様の処理を行ってもよい。
符号化部105は、テーブル選択部101からテーブルインデックスを受け取り、パラメタ決定部103から量子化パラメタを受け取り、量子化部104から量子化値を受け取り、量子化値に対して可変長符号化を行う機能部である。具体的には、符号化部105は、テーブルインデックスおよび量子化パラメタに基づいて、記憶部107に記憶されている1以上の可変長符号化テーブルの中から、1の可変長符号化テーブルを選択し、その可変長符号化テーブルにより量子化値に対して可変長符号化を行う。上述のように、量子化値は、量子化幅に応じて小さくなるので分散が小さくなることから、符号化部105は、入力信号よりも分散の小さくなった量子化値に対応した可変長符号化テーブルを用いて可変長符号化を行うことにより、発生する符号量を小さくすることができる。
ここで、上述の式(1)を用いて量子化を行い、ゴロムライス符号の可変長符号化テーブルを用いる場合を考える。また、上述のように、ゴロムライス符号のサフィックス長を、可変長符号化テーブルのテーブルインデックスとして考える。符号化部105は、上述のテーブル選択部101により選択された可変長符号化テーブルは、量子化を行わない、すなわち、例えば、式(1)においては、量子化パラメタq=0の場合に最適な可変長符号化テーブルであるので、受け取った量子化パラメタqが「0」である場合、テーブル選択部101が選択した可変長符号化テーブルにより可変長符号化を行うものとすればよい。また、パラメタ決定部103により決定された量子化パラメタqが「1」である場合、上述の式(1)によれば、量子化値は入力信号の約1/2になることから、分散が1/2の信号(量子化値)に対応する可変長符号化テーブルが最適となる。ゴロムライス符号の可変長符号化テーブルの場合、これはサフィックス長が1小さい可変長符号化テーブルに対応する。このことから、テーブル選択部101により選択された可変長符号化テーブルのテーブルインデックスをkとすると、符号化部105は、記憶部107に記憶された、サフィックス長がk−qとなるゴロムライス符号の可変長符号化テーブルにより可変長符号化を行えばよい。なお、ゴロムライス符号のサフィックス長は0以上であることから、例えば、k−qが0未満となる場合、符号化部105は、サフィックス長が0のゴロムライス符号の可変長符号化テーブルを用いて可変長符号化を行うものとすればよい。なお、例えば、式(1)以外の方法によって量子化を行う場合、上述と同様に、各量子化パラメタに対応する分散の変化度合に応じた可変長符号化テーブルを選択するものとしてもよい。
なお、ハフマン符号の可変長符号化テーブルにより可変長符号化を行う場合も、同様の方法により可変長符号化テーブルを選択して符号化を行ってよい。ハフマン符号の可変長符号化テーブルを利用する場合、予め複数の特性値(信号の絶対値和または分散)に対応するテーブルを用意しておき、テーブル選択部101がいずれかを選択する。符号化部105は、ゴロムライス符号の可変長符号化テーブルを用いる場合と同様、ハフマン符号の可変長符号化テーブルのテーブルインデックスと、量子化パラメタとに基づいて、量子化値の分散(または絶対値和)を取得し、これに対応する、または最も近い可変長符号化テーブルを用いて、量子化値に対して可変長符号化を行うものとすればよい。ここで用いるハフマン符号の可変長符号化テーブルについては、分散または絶対値和ごとに分類された信号の出現頻度に基づいて予め作成されたものであってもよい。
また、例えば、ゴロムライス符号等の符号無し整数を想定した可変長符号化テーブルによる可変長符号化を行う場合、かつ、量子化値が符号付き整数である場合に、符号化部105は、以下の式(2)によって、量子化値を符号無し整数へと変換した後に可変長符号化を行うものとしてもよい。
x2=−2・x1 (if x1≦0)
x2=2・x1+1 (if x1>0) ・・・(2)
上述の式(2)において、x1は符号付きの量子化値を示し、x2は符号無し整数に変換された値を示す。なお、上述の式(2)による変換を行う代わりに、符号ビットを別途符号化し、量子化値の絶対値についてゴロムライス符号の可変長符号化テーブルによる可変長符号化を行ってもよい。
符号化部105は、さらに、復号装置20による復号処理に用いるため、テーブルインデックスおよび量子化パラメタについても符号化する。この場合、テーブルインデックスおよび量子化パラメタは、例えば、予め定められたビット数により固定長で符号化されてもよいし、予め定められた可変長符号化テーブルを用いて可変長符号化を行ってもよい。また、テーブルインデックスおよび量子化パラメタは、予測符号化を行ってもよい。テーブルインデックスおよび量子化パラメタの特性が大きく変化しない場合に、過去に符号化した値(例えば、直前に符号化した値)を用いてこれらの値を予測(例えば、0次予測または1次予測等)し、その予測残差を符号化することにより発生する符号量を削減することが可能である。
符号化部105は、以上のように、テーブルインデックス、量子化パラメタおよび量子化値を符号化し、符号ストリームとして外部(例えば、ネットワーク40等)へと出力する。また、符号化部105は、符号化した符号の符号量(発生符号量)を、符号量制御部106へ送る。符号化部105は、図2に示す符号化プロセッサ502により実現される。
符号量制御部106は、符号化部105から発生符号量を受け取り、割り当て符号量を設定する機能部である。符号量制御部106は、受信バッファ30において占有している符号の量(以下、占有符号量という)をモデル化し、受信バッファ30においてバッファアンダーフローが発生しないような符号化部105における発生符号量となるように、割り当て符号量を設定する。
例えば、符号量制御部106は、MPEG−2におけるVBV(Video Buffer Verifier)、または、M.264/MPEG−4 AVCにおけるHRD(Hypothetical Reference Decoder)等のバッファモデルと同一または類似のモデル化を行うことによって、受信バッファ30においてバッファアンダーフローが発生しない割り当て符号量を設定するものとしてもよい。
具体的には、例えば、図4に示すような受信バッファ30の占有符号量のモデル化を行ってもよい。図4において、縦軸は受信バッファ30で占有する符号量(占有符号量)を示し、横軸は時間を示している。図4に示すように、受信バッファ30は、初期状態において占有符号量が「0」の状態にあり、ここから、一定のビットレートで符号化装置10から出力された符号が蓄積される。その後、所定の初期遅延時間が経過すると、復号装置20が復号を開始し、最初の処理単位における符号量に相当する符号が復号装置20によって受信バッファ30から引き去られる。以降は、所定の処理単位毎に、符号化装置10から出力される符号の蓄積と、復号装置20による符号の引き去りとが繰り返される。このような図4に示すモデルにおいて、占有符号量が「0」を下回った場合にバッファアンダーフローが発生する。すなわち、各処理単位において、復号装置20による符号の引き去りのタイミングにおける占有符号量よりも、符号化部105が出力する符号の符号量(発生符号量)が大きい場合に、バッファアンダーフローが発生する。
そこで、符号量制御部106は、各処理単位における符号の引き去りのタイミングでの占有符号量と同一または小さい符号量を、割り当て符号量として設定する。符号化装置10は、ある処理単位の入力信号の量子化値を、割り当て符号量よりも小さい符号量となるように可変長符号化を行うことによって、バッファアンダーフローの発生を抑制することが可能となる。ここで、割り当て符号量は、各処理単位における符号の引き去りのタイミングでの占有符号量と同一の符号量として設定されてもよいが、これに限定されるものではなく、これよりも小さい符号量として設定されてもよい。
また、受信バッファ30の占有符号量が一定以上である状態、すなわち、符号化部105により発生可能な符号量に余裕がある場合に、ある処理単位においてこの余裕分を一度に消費してしまうよりは、後続の複数の処理単位でこの余裕分を分割したほうが、発生符号量が安定しやすい。このことから、特に占有符号量が大きい場合に、占有符号量よりも小さい符号量を割り当て符号量として設定することによって、復号装置20により復号された信号の品質を安定化させることが可能となる。
符号量制御部106は、設定した割り当て符号量を、パラメタ決定部103へ送る。符号量制御部106は、図2に示す符号化プロセッサ502により実現される。
記憶部107は、テーブル選択部101および符号化部105が参照する1以上の可変長符号化テーブル等を記憶する機能部である。記憶部107は、図2に示す補助記憶装置505により実現される。
なお、図3に示したテーブル選択部101、符号量取得部102、パラメタ決定部103、量子化部104、符号化部105、符号量制御部106、および記憶部107は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図3で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図3の1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
また、図3に示したテーブル選択部101、符号量取得部102、パラメタ決定部103、量子化部104、符号化部105、および符号量制御部106は、いずれも図2に示す符号化プロセッサ502により実現されるものとしたが、これに限定されるものではない。すなわち、上述の各機能部のうち少なくともいずれかが、記憶装置(例えば、図2に示す補助記憶装置505)等の記憶媒体に記憶されているプログラムがCPU(Central Processing Unit)により実行されることによって実現されるものとしてもよい。
図5は、各量子化パラメタに対するワースト符号量を示すグラフの一例を示す図である。図3および5を参照しながら、符号量取得部102による基準符号量の取得方法、およびパラメタ決定部103による量子化パラメタの決定方法の詳細について説明する。
上述したように、テーブル選択部101は、外部から受信した入力信号の絶対値和または分散等に基づいて、入力信号に対して可変長符号化を行った場合の符号量が小さくなる可変長符号化テーブルを選択するものとしている。逆に言えば、あるテーブルインデックスが示す可変長符号化テーブルが与えられた場合に、対応する入力信号の取り得る値はある有限の範囲に制限されることになる。例えば、ある可変長符号化テーブルが入力信号の絶対値和≦128に対応するテーブルである場合、この可変長符号化テーブルが与えられれば、処理単位内の入力信号が取り得る値は、その絶対値和が128以下となる任意の数値(入力信号が整数値の場合、任意の整数)群に限定される。入力信号が限定されれば、これらの入力信号を、対応する可変長符号化テーブルで符号化した場合の発生符号量が取得可能であり、例えば、総当たり等の方法によって、この可変長符号化テーブルにより入力信号を符号化した場合の最大の符号量が取得可能である。この取得した符号量は、量子化を行わない場合の最大の符号量であるが、量子化が行われた量子化値についても、同様に、符号化した場合の最大の符号量が取得可能である。この最大の符号量を、予め取得しておいてもよい。
また、量子化パラメタと量子化幅とが単調増加の関係にある場合、量子化パラメタが大きくなるほど、その量子化パラメタで量子化した量子化値を符号化した際の符号量は小さくなる。例えば、上述の式(1)のように、量子化幅が量子化パラメタの指数関数として表現される場合、符号化された符号量は、量子化パラメタに対する一次式で近似することができる。この性質は、上述の最大の符号量についても同様である。そこで、図5に示すように、予め、一次式によって最大の符号量のモデル化を行う。具体的には、あるテーブルインデックスが示す可変長符号化テーブルで符号化する場合に、任意の量子化パラメタを用いた場合の最大の符号量を取得(例えば、総当たりによる)し、図5に示すように、これらの最大の符号量のすべてを上回る一次式を設定する(下記の式(3))。
WB=C1xq+C2 (C1<0、C2>0) ・・・(3)
上述の式(3)において、C1は、一次式の傾きであり、量子化パラメタqの増加と共に符号量は減少するので負値である。また、C2は、一次式の切片である。そして、WBは、一次式で算出される符号量を示し、以下、ワースト符号量という。すなわち、式(3)は、各量子化パラメタに対するワースト符号量を示す一次式となる。
そして、テーブルインデックス毎に、上述の式(3)に示す一次式の傾きC1および切片C2を予め取得しておく。すなわち、テーブルインデックスが決まれば、ワースト符号量を示す一次式が決定されることになる。これによって、各テーブルインデックスについて、特定の量子化パラメタに対するワースト符号量が容易に算出できる。また、このテーブルインデックスと、ワースト符号量を示す一次式(すなわち、傾きC1および切片C2)との対応関係の情報は、例えば、予め記憶部107に記憶されているものとすればよい。そして、符号量取得部102は、記憶部107を参照して、テーブル選択部101から受け取ったテーブルインデックスに対応するワースト符号量を示す一次式を特定し、例えば、その一次式の切片C2を、基準符号量として取得する。なお、一次式の傾きC1についてはテーブルインデックス間で共通としてもよく、この場合はテーブルインデックス毎に切片C2のみを予め記憶しておけばよい。
パラメタ決定部103は、符号量取得部102により取得された基準符号量を有するワースト符号量を示す一次式を特定し、ワースト符号量が符号量制御部106から受け取った割り当て符号量を超えないように量子化パラメタを決定する。これによって、受信バッファ30におけるバッファアンダーフローの発生を抑制することが可能になる。具体的には、ワースト符号量WBが、上述の式(3)でモデル化されていることから、割り当て符号量Bについて、下記の式(4)が満たされていればよい。
B≧C1xq+C2 ・・・(4)
また、この式(4)から量子化パラメタqについて整理すると、下記の式(5)が得られる。
q≧(B−C2)/C1 ・・・(5)
パラメタ決定部103は、この式(5)を満たす量子化パラメタqを決定すればよく、例えば、式(5)を満たす最小の量子化パラメタqを決定して、量子化部104に送る。なお、復号装置20の復号信号の品質の安定化を目的として、量子化パラメタqの変動を抑えるため、上述の式(5)を満たす範囲で、直前までの量子化パラメタに類似する値を量子化パラメタとして決定するものとしてもよい。
なお、上述の式(3)に示すワースト符号量を示す一次式は、図5に示すように、各量子化パラメタに対応する最大の符号量の全てを上回る一次式に設定するものとしたが、これに限定されるものではない。例えば、各量子化パラメタに対応する最大の符号量のうち2点を接続するグラフであって、その他の最大符号量と差分の絶対値和が最小となるグラフを示す一次式に設定するものとしてもよい。また、上述のように設定した一次式が示すグラフについて、その切片が所定範囲(例えば、元のグラフの切片の1〜2倍の範囲)でシフトさせたグラフを示す一次式であってもよい。
図6は、第1の実施形態に係る符号化装置の符号化処理の一例を示すフローチャートである。図6を参照しながら、本実施形態に係る符号化装置10の符号化処理の流れを総括的に説明する。
<ステップS11>
テーブル選択部101は、外部から入力信号を受信する。そして、ステップS12へ移行する。
<ステップS12>
テーブル選択部101は、所定の処理単位毎に、入力信号の特性(例えば、入力信号の信号値の絶対値和または分散等)に基づいて、記憶部107に予め記憶されている1以上の可変長符号化テーブルの中から、1の可変長符号化テーブルを選択する。テーブル選択部101は、選択した可変長符号化テーブルを示す情報(以下、テーブルインデックスと称する場合がある)を、符号量取得部102および符号化部105それぞれに送る。そして、ステップS13へ移行する。
<ステップS13>
符号量取得部102は、テーブル選択部101からテーブルインデックスを受け取り、このテーブルインデックスに基づいて、基準符号量を取得する。具体的には、符号量取得部102は、記憶部107を参照して、テーブル選択部101から受け取ったテーブルインデックスに対応するワースト符号量を示す一次式を特定し、例えば、その一次式の切片C2を、基準符号量として取得する。符号量取得部102は、取得した基準符号量をパラメタ決定部103へ送る。そして、ステップS14へ移行する。
<ステップS14>
パラメタ決定部103は、符号量取得部102から基準符号量を受け取り、符号量制御部106から割り当て符号量を受け取り、基準符号量および割り当て符号量に基づいて、量子化パラメタを決定する。具体的には、パラメタ決定部103は、符号量取得部102により取得された基準符号量を有するワースト符号量を示す一次式を特定し、ワースト符号量が符号量制御部106から受け取った割り当て符号量を超えないように量子化パラメタを決定する。パラメタ決定部103は、決定した量子化パラメタを量子化部104および符号化部105それぞれに送る。そして、ステップS15へ移行する。
<ステップS15>
量子化部104は、外部から入力信号を受信し、パラメタ決定部103から量子化パラメタを受け取り、入力信号を量子化パラメタにより量子化を行って量子化値を得る。量子化部104は、量子化によって得た量子化値を、符号化部105へ送る。そして、ステップS16へ移行する。
<ステップS16>
符号化部105は、テーブル選択部101からテーブルインデックスを受け取り、パラメタ決定部103から量子化パラメタを受け取り、量子化部104から量子化値を受け取り、量子化値に対して可変長符号化を行う。例えば、テーブル選択部101により選択された可変長符号化テーブルのテーブルインデックスをkとすると、符号化部105は、記憶部107に記憶された、サフィックス長がk−qとなるゴロムライス符号の可変長符号化テーブルにより可変長符号化を行う。そして、ステップS17へ移行する。
<ステップS17>
符号量制御部106は、符号化部105から発生符号量を受け取り、割り当て符号量を設定する。符号量制御部106は、受信バッファ30において占有している占有符号量をモデル化し、受信バッファ30においてバッファアンダーフローが発生しないような符号化部105における発生符号量となるように、割り当て符号量を設定する。
以上のステップS11〜S17に示したように、符号化装置10は、入力した入力信号に対して符号化処理を行う。
以上のように、本実施形態に係る符号化装置10では、可変長符号化テーブルを示すテーブルインデックス毎に、ワースト符号量をモデル化することにより、割り当て符号量以下の符号量となる量子化パラメタを、少ない処理量で取得して符号化を行うことができる。これによって、少ない処理量で受信バッファ30のバッファアンダーフローの発生を抑制した信号の符号化を実現することができる。また、バッファアンダーフローの発生が抑制されることから、符号化処理においてスキップ等のバッファアンダーフローの回避手段を含む必要がなく、これによる局所的なSNR(Signal−to−Noise Ratio)の低下を抑制することができる。
なお、符号化部105は、上述のように、量子化のほかに、テーブルインデックスおよび量子化パラメタについても符号化を行っている。この場合、パラメタ決定部103は、これらの符号量を考慮して量子化パラメタを決定するものとしてもよい。具体的には、例えば、これらのパラメタを固定のビット数により符号化する場合、処理単位毎に、当該ビット数を上述の式(4)における右辺に加算した上で、量子化パラメタの算出を行ってもよい。または、例えば、テーブルインデックスおよび量子化パラメタを予測符号化する場合、処理単位毎に、テーブルインデックスおよび量子化パラメタそれぞれの値における符号量を算出して上述の式(4)に反映してもよく、または、より簡単に、予測符号化した場合の発生しうる最大符号量を予め求めておき、この最大符号量を加算した上で量子化パラメタの算出を行ってもよい。
また、本実施形態に係る符号化装置10は、量子化パラメタが大きくなるほど、分散の小さい信号に対応する可変長符号化テーブルを利用して符号化を行うものとしている。しかし、量子化パラメタが所定値以上の場合、量子化パラメタが大きくなっても符号が削減されにくくなる場合がある。例えば、ゴロムライス符号を用いる場合において、量子化パラメタが、テーブル選択部101により選択された可変長符号化テーブルのテーブルインデックスとしてのサフィックス長を上回る場合、それ以上分散の小さいテーブルが用意されていないことにより、量子化パラメタが大きくなっても符号が削減されにくくなる。そこで、テーブル選択部101により選択された可変長符号化テーブル(すなわち、量子化を行わない場合に利用される可変長符号化テーブル)は、予め定められた複数の可変長符号化テーブルのうち、分散の大きい信号に対応する可変長符号化テーブルに限定してもよい。例えば、ゴロムライス符号の可変長符号化テーブルを用いる場合、テーブル選択部101は、サフィックス長が予め定められた所定値より大きい可変長符号化テーブルのみを選択する。この場合、テーブル選択部101は、所定値k0より大きいサフィックス長kを選択する。符号化部105は、量子化パラメタをqとした場合に、サフィックス長k−qの可変長符号化テーブルで符号化を行うが、ここでk−qはk0未満となっても問題ない。このようなテーブル選択部101による可変長符号化テーブルの選択によって、符号化部105が符号化に用いる可変長符号化テーブルが用意されていないような場合(すなわち、k−q<0となるような場合)が発生しにくくなり、ワースト符号量のモデル化がより正確に行えるようになる。
また、上述の式(3)に示すワースト符号量のモデル化の際、各量子化パラメタに対応する最大の符号量をすべて上回る一次式を設定するものとしたが、ワースト符号量が必ずしも直線で正確にモデル化できない場合がある。このような場合に、一部の量子化パラメタに対応する最大の符号量を外れ値とみなし、これを下回るような一次式でモデル化を行うものとしてもよい。この場合、外れ値とみなされた最大の符号量に対応する量子化パラメタを用いた場合、受信バッファ30においてバッファアンダーフローが発生してしまう可能性があるが、他の部分について正確にモデル化していれば、全体として符号化効率を向上させることが可能となる。なお、この場合、バッファアンダーフローの発生を完全に回避することができなくなるため、バッファアンダーフローが発生した場合には、以降の符号化をスキップする等の処理を行う必要がある。ここで、上述のワースト符号量のモデルの外れ値と見なした部分において、モデルに対する最大の符号量のはみ出し部分が十分に小さければ、バッファアンダーフローの発生時の不足ビット数は十分小さい(例えば、数ビット)と見込むことができる。例えば、符号化部105が符号化を行う際、最初に、量子化パラメタおよびテーブルインデックスを符号化し、その後、量子化値を符号化するようにすれば、バッファアンダーフローが発生する部分は、その処理単位の最後の数ビットに相当するため、バッファアンダーフローが発生してもその影響は処理単位内のごく一部(例えば、最後の数シンボル)にとどめることができる。さらに、量子化値の符号化方法についても、最初に処理単位内の各量子化値の符号情報または上位ビット部分の情報を符号化し、その後に下位ビットの情報を符号化すれば、バッファアンダーフローの影響範囲が下位ビット部分にとどまるため、信号の完全な欠落を防ぎ、ある程度まで復号することが可能となる。例えば、ゴロムライス符号の可変長符号化テーブルを用いる場合、信号の符号情報、符号のプレフィックス部分、サフィックス部分の順に符号化を行えばよい。この場合、符号のプレフィックス部分の長さから復号信号の絶対値の値域が制限されるため、この情報からある程度の精度での復号が行える。このような符号化方法により、バッファアンダーフローが発生した場合のSNRの大幅な低下を防ぐことができる。
また、バッファアンダーフローが発生した場合、符号化部105は、受信バッファ30においてバッファアンダーフローがちょうど発生する符号量まで符号化を行い、処理単位内におけるそれ以降の符号を破棄してもよい。その後、符号化部105は、次の処理単位から符号化を再開する。復号装置20は、受信バッファ30内のすべての符号を読み込み、処理単位内で復号可能な部分まで復号を行う。復号不可能な信号については、予め定められた値(例えば、「0」等)で置き換えを行ってもよい。その後、復号装置20は、次の処理単位において、受信バッファ30の先頭から符号を読み込み、復号を再開することができる。
また、上述の符号化部105による符号化については、受信バッファ30におけるバッファアンダーフローの発生を抑制する方法について説明してきたが、バッファオーバーフローについても同一または類似の方法により、その発生を抑制することが可能である。具体的には、符号量制御部106は割り当て符号量の代わりに、バッファオーバーフローが発生しない最低限の符号量を出力する。符号化装置10はワースト符号量の代わりに、処理単位ごとに各可変長符号化テーブルで最低限発生する符号量を予めモデル化しておく。パラメタ決定部103は、このモデルに基づき、テーブルインデックスと符号量制御部106が出力した符号量とに基づいて、量子化パラメタを設定する。バッファオーバーフローの発生を抑制する場合、上述の式(4)の不等号を反転させた形の数式を満たせばよいことから、量子化パラメタの上限値を得ることができ、この範囲で任意の量子化パラメタを選択すればよい。なお、量子化パラメタの上限値が、予め定められた最低値(上述の式(1)の量子化を行う場合、例えば「0」)を下回る可能性があるが、これは最低値を用いた場合でもバッファオーバーフローが発生する可能性が残ることを意味する。実際に発生する符号量が不足してバッファオーバーフローが発生しそうな場合、処理単位の符号の最後に余剰符号を付加することによって、発生符号量を水増しさせ、バッファオーバーフローの発生を抑制するものとしてもよい(いわゆる、ビット・スタッフィング処理)。
また、上述のバッファオーバーフローの発生を抑制する方法は、上述のバッファアンダーフローの発生を抑制する方法と併用して用いられるものとしてもよい。この場合、パラメタ決定部103は、割り当て符号量および最低限の符号量と、テーブルインデックスとから量子化パラメタの上限値と下限値とを算出し、この範囲に収まる量子化パラメタを設定すればよい。
また、本実施形態に係る符号化装置10においては、テーブルインデックスおよび量子化パラメタは、処理単位ごとに決定することとしているが、これに限定されるものではない。例えば、量子化パラメタについては第1の処理単位ごとに決定し、テーブルインデックスについては第1の処理単位よりも小さい第2の処理単位ごとに選択するようにしてもよい。例えば、変換符号化を行う場合、変換係数の位置ごとに符号の分散は異なり得る。このような場合に、例えば、前半の係数(例えば、画像の場合における空間周波数が低い信号)と、後半の係数(例えば、画像の場合における空間周波数が高い信号)とで異なるテーブルインデックスを選択することにより、符号化効率を高めることが可能である。この場合、パラメタ決定部103は、第1の処理単位内のそれぞれの第2の処理単位についてワースト符号量をモデル化し、その量子化パラメタに対応するワースト符号量の和が割り当て符号量を下回るように量子化パラメタを設定すればよい。
(第2の実施形態)
第2の実施形態に係る符号化装置について、第1の実施形態に係る符号化装置10と相違する点を中心に説明する。第1の実施形態では、所定の処理単位毎に、可変長符号化テーブルの選択を行って可変長符号化を行う動作を説明した。本実施形態では、前回選択した可変長符号化テーブルの情報を再利用する動作について説明する。なお、本実施形態に係る伝送システムの全体構成、および符号化装置のハードウェア構成は、第1の実施形態で説明した構成と同様である。
図7は、第2の実施形態に係る符号化装置のブロック構成の一例を示す図である。図7を参照しながら、本実施形態に係る符号化装置10aのブロック構成および動作について説明する。
図7に示すように、本実施形態に係る符号化装置10aは、テーブル選択部101a(選択部)と、符号量取得部102(取得部)と、パラメタ決定部103a(決定部)と、量子化部104と、符号化部105aと、符号量制御部106と、記憶部107と、を有する。なお、符号量取得部102、量子化部104、符号量制御部106、および記憶部107の動作は、第1の実施形態で説明した内容と同様である。
テーブル選択部101aは、外部から入力信号を受信し、所定の処理単位毎に、入力信号の特性に基づいて、記憶部107に予め記憶されている1以上の可変長符号化テーブルの中から、1の可変長符号化テーブルを選択する機能部である。なお、入力信号の特性に基づいて、可変長符号化テーブルを選択する方法は、第1の実施形態のテーブル選択部101と同一または類似の動作であってよい。テーブル選択部101aは、さらに、選択情報を生成する。ここで、選択情報とは、その処理単位で選択した可変長符号化テーブル、および以前(例えば、直前)に選択した可変長符号化テーブルのうち、いずれの可変長符号化テーブルを用いるかを示す情報である。
入力信号の特性(分散または絶対値和等)が以前と同一または類似であった場合、以前に選択した可変長符号化テーブルを用いることにより、符号化部105aにおいてテーブルインデックスを符号化する必要がなくなり符号量を低減することができる。一方、入力信号の特性が以前と異なる場合には、テーブル選択部101aは、新たに可変長符号化テーブルを選択することにより、符号化効率を向上させることができる。
また、テーブル選択部101aによる選択情報の設定は、例えば以下のように行う。まず、テーブル選択部101aは、各処理単位において、可変長符号化テーブルを選択するために入力信号の特性値(分散値または絶対値和等)を取得する。テーブル選択部101aは、取得した特性値と、以前に選択した可変長符号化テーブルに対応する特性値とを比較し、その差が所定の閾値未満である場合、以前に選択した可変長符号化テーブルを再度選択する。差が所定の閾値より大きい場合、テーブル選択部101aは、その処理単位において、入力信号の特性値に基づき、新たに可変長符号化テーブルを選択する。なお、特性値の比較処理にあたっては、特性値そのものの比較をおこなう代わりに、その対数値の差分について閾値判定をおこなってもよい。一般に符号化時の発生符号量は、特性値の対数に相関することから、このように比較を行うことにより符号化効率の高い可変長符号化テーブルの選択が可能となる。
テーブル選択部101aは、選択した可変長符号化テーブルを示すテーブルインデックスを、符号量取得部102および符号化部105aそれぞれに送り、生成した選択情報を、パラメタ決定部103aおよび符号化部105aそれぞれに送る。テーブル選択部101aは、図2に示す符号化プロセッサ502により実現される。
パラメタ決定部103aは、符号量取得部102から基準符号量を受け取り、符号量制御部106から割り当て符号量を受け取り、テーブル選択部101aから選択情報を受け取り、量子化パラメタを決定する機能部である。パラメタ決定部103aは、図2に示す符号化プロセッサ502により実現される。パラメタ決定部103aによる量子化パラメタの決定方法は、選択情報がテーブル選択部101aにより新たに可変長符号化テーブルが選択されたことを示す場合、第1の実施形態のパラメタ決定部103の動作と同一または類似の方法によって、量子化パラメタを決定すればよい。一方、選択情報がテーブル選択部101aにより以前に選択した可変長符号化テーブルが選択されたことを示す場合、パラメタ決定部103aは、以下のような動作によって、量子化パラメタを決定する。
第1の実施形態では、パラメタ決定部103は、符号量取得部102により取得された基準符号量を有する、上述の式(3)に示すワースト符号量を示す一次式を特定するものとしているが、選択情報がテーブル選択部101aにより以前に選択した可変長符号化テーブルが選択されたことを示す場合、パラメタ決定部103aは、テーブル選択部101aにより以前に選択された可変長符号化テーブルを用いる。この場合、テーブル選択部101aにより新たに選択された可変長符号化テーブル(最適な可変長符号化テーブル)を用いて符号化を行う場合よりも符号量が大きくなる場合がある。この場合、上述の式(3)に示すワースト符号量を示す一次式を利用すると、ワースト符号量の予測精度が悪くなり、その結果、符号化効率が低下するという問題がある。そこで、以下の式(6)に示すように、可変長符号化テーブルの差異による符号量の増加分を別の項として付加して、ワースト符号量のモデル化を行う。
WB=C1xq+C2+dif[t1,t2] (C1<0、C2>0)・・・(6)
上述の式(6)において、C1およびC2は、上述の式(3)で対応する値と同一または類似の値でよい。t1は、入力信号の特性値(絶対値和または分散等)に対応した可変長符号化テーブルのテーブルインデックスを示し、t2は、テーブル選択部101aにより以前選択された可変長符号化テーブルのテーブルインデックスを示す。そして、dif[t1,t2]は、テーブルインデックスがt1である場合と、t2である場合とで符号化された符号量の差分を示す。dif[t1,t2]は、t1=t2のとき、「0」であってよく、t1およびt2の可変長符号化テーブルの分散が異なるほど、大きくなっていく。dif[t1,t2]の値は、任意のテーブルインデックスt1に対応する入力信号を、テーブルインデックスt2に対応する可変長符号化テーブルで、例えば、総当たりで符号化を行う等により取得することができる。各t1、t2について総当たりで符号化を行ってワースト符号量を取得し、t1=t2の場合のワースト符号量との差分をとったものがdif[t1,t2]となる。上述の式(6)によりワースト符号量のモデル化を行えば、その後のパラメタ決定部103aによる量子化パラメタの決定方法については、第1の実施形態のパラメタ決定部103の動作と類似である。具体的には、割り当て符号量Bについて、下記の式(7)が満たされていればよい。
B≧C1xq+C2+dif[t1,t2] ・・・(7)
また、この式(7)から量子化パラメタqについて整理すると、下記の式(8)が得られる。
q≧(B−C2−dif[t1,t2])/C1 ・・・(8)
パラメタ決定部103aは、この式(8)を満たす量子化パラメタqを決定すればよく、例えば、式(8)を満たす最小の量子化パラメタqを決定して、量子化部104に送る。
なお、上述のように、テーブルインデックスが異なる場合のワースト符号量の差分を、2次元のテーブルについての差分dif[t1,t2]としてモデル化していたが、予め用意した可変長符号化テーブルの特性によっては、1次元のテーブルでモデル化を行うことも可能である。例えば、ゴロムライス符号の可変長符号化テーブルを用いる場合、ある可変長符号化テーブル(例えば、サフィックス長=k)と、その隣接する可変長符号化テーブル(例えば、サフィックス長=k+1、k−1)とは、ちょうど絶対値和が2倍または1/2倍の入力信号に対応する。この関係はサフィックス長が2以上の任意の可変長符号化テーブルについて成立し、このことから異なる可変長符号化テーブルを用いた場合のワースト符号量の差分は、各サフィックス長の絶対値にほとんど依存せず、その差分に大きく依存することになる。このことから、式(7)の代わりに、以下の式(9)のようにモデル化を行うことにより、符号化装置10a内部に保持する情報量を削減することができる。
B≧C1xq+C2+dif[t1−t2] ・・・(9)
また、ゴロムライス符号以外の符号の可変長符号化テーブルを用いる場合においても、用意する可変長符号化テーブルによっては、上述の式(9)と同様のモデル化を行うことができる。例えば、ハフマン符号に基づく可変長符号化テーブルを用意する場合、可変長符号化テーブルの元となる確率分布を、テーブルインデックスごとに所定の割合で変化させた分布とすればよい。具体的には、例えば、テーブルインデックスが「1」増える毎に分散が2倍となる正規分布を用意し、この分布に基づいてハフマン符号の可変長符号化テーブルを構成しておけば、式(9)のようなモデル化を行うことが可能となる。
パラメタ決定部103aは、決定した量子化パラメタを量子化部104および符号化部105aそれぞれに送る。
符号化部105aは、テーブル選択部101aからテーブルインデックスおよび選択情報を受け取り、パラメタ決定部103aから量子化パラメタを受け取り、量子化部104から量子化値を受け取り、量子化値に対して可変長符号化を行う機能部である。具体的には、選択情報がテーブル選択部101aにより以前に選択した可変長符号化テーブルが選択されたことを示す場合、符号化部105aは、内部に保持しておいた以前に符号化した可変長符号化テーブルを用いて、量子化値を可変長符号化する。なお、符号化部105aは、実際に用いる可変長符号化テーブルについて、第1の実施形態の符号化部105と同様に、テーブルインデックス(テーブル選択部101aにより以前に選択した可変長符号化テーブルを示すテーブルインデックス)と、量子化パラメタとに基づき選択するものとしてもよい。一方、選択情報がテーブル選択部101aにより新たに可変長符号化テーブルが選択されたことを示す場合、符号化部105aは、第1の実施形態の符号化部105と同一または類似の動作により可変長符号化を行えばよい。符号化部105aは、後続の処理単位で利用できるようにテーブルインデックスの情報を内部に保持する。符号化部105aは、図2に示す符号化プロセッサ502により実現される。
符号化部105aは、テーブルインデックスの符号化方法について、第1の実施形態の符号化部105の同方法と異なる方法により符号化を行う。具体的には、符号化部105aは、まず、選択情報(例えば、フラグ)を符号化し、その後、選択情報がその処理単位で選択した可変長符号化テーブルを選択している場合のみ、その可変長符号化テーブルのテーブルインデックスを符号化する。これによって、テーブルインデックスを符号化する際の符号量が削減される。その他の動作において、符号化部105aは、第1の実施形態の符号化部105と同一または類似の動作を行う。符号化部105aは、以上のように、選択情報、テーブルインデックス(必要がある場合)、量子化パラメタおよび量子化値を符号化し、符号ストリームとして外部(例えば、ネットワーク40等)へ出力する。
以上のように、本実施形態に係る符号化装置10aは、第1の実施形態に係る符号化装置10と同様に、少ない処理量で受信バッファ30のバッファアンダーフローの発生を抑制する量子化パラメタを設定し、符号化を行うことができる。これによって、符号化処理に要する処理量を低減できるとともに、スキップ等によるバッファアンダーフローの回避手段を含む必要がなく、復号信号の局所的なSNRの低下を抑制することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、および変更を行うことができる。これらの実施形態は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。