近年、PCの処理能力の向上、インターネット通信の大容量化などに伴い、デジタルコンテンツの普及が進んできている。動画においても、アナログのVHSからデジタルDVDへと急速に移行中である。動画は膨大な情報量を含んでおり、動画情報をデジタルとして扱うためには、画像圧縮技術が不可欠である。デジタル動画コンテンツは、符号化により情報が圧縮されている。動画圧縮技術は、様々な製品ですでに使われており、例えばDVDレコーダでは、符号化方式としてMPEG−2が用いられている。また、テレビ電話用の携帯電話ではMPEG−4が用いられている。
今後は、ますます動画の利用シーンが広がると予想される。カメラつき携帯電話がムービーとして用いられるようになると、SDカードのような記憶媒体に動画を蓄積する要求が生じる。一方で、映画などの大画面高精細動画データをインターネットからストリーミングで受信し、視聴することもあるであろう。それらに共通していえるのは、高圧縮化符号化への強い要求であり、高圧縮を実現することで同じ蓄積容量なら長時間記録が可能となり、同じネットワーク帯域であればより高画質な動画を送ることが可能となる。
そこで、MPEG(Moving Picture Experts Group)とITU−Tでは、より高圧縮な符号化を目指した次世代符号化方式の標準化を行うJVT(Joint Video Team)を設立し、MPEG−4 AVC/H.264が規格化された。以後、その規格をMPEG−4 AVCと呼ぶことにする。MPEG−4 AVCは、従来のようなピクチャの時間的な相関を利用する動き補償と、空間的な相関を利用するための周波数変換によるハイブリッド符号化器の構成を踏襲している。しかしながら、いくつかのツールを新たに導入するとともに既存のツールを最適化することで、従来の規格(ITU−T H.263やMPEG−4)の2倍の符号化効率を達成している。ここで、ピクチャとはフレームまたはフィールドのことを意味する。
MPEG−4 AVCは高圧縮符号化を実現する反面、符号化に伴い多大な演算量を必要とする。そのためMPEG−4 AVCの処理をLSIに実装する場合、回路規模が大きくなるか、あるいは動作サイクルを増やすために消費電力が大きくなってしまう。LSI回路規模の増大は、LSIのコストを増加させるだけでなく、LSI面積が大きくなり小型軽量のモバイル機器には搭載することができない。また、消費電力の増大は、バッテリで駆動する機器においては、稼動時間を著しく減少させる。また、ソフトウェアで実装する場合には、演算量が多いために非常に高速なCPUが必要になるか、処理時間が膨大になる。
図16は、MPEG−4 AVCを含む従来のMPEG方式で用いられるようなハイブリッド符号化装置の一例である。図16を用いて、従来の動画符号化装置の内部の構成について説明する。動画符号化装置は、動画像の入力を行う入力部2001と、ピクチャ間動き予測のための動きベクトル検出回路2002と、予測画像を作成するための動き補償回路2004と、減算回路2003と、直交変換回路2007と、量子化器2008と、逆量子化器2010と、逆直交変換回路2011と、加算回路2006と、ピクチャ間動き予測の参照ピクチャを保持する参照ピクチャメモリ2005と、一連の情報に対して対応する符号を割り当てる符号化部2012と、符号化されたビット情報を適当な単位で区切り外部に出力する出力部2009とから構成される。
次に従来の動画符号化装置の動作の概要について、図17のフローチャートを用いて説明する。
Step2301:入力部2001は、外部メモリより符号化対象ピクチャを読み込む。外部メモリに読み込むべきピクチャがなくなると動作を終了する。入力部2001は、読み込んだピクチャをマクロブロックと呼ばれるN個のブロックに分割する。
Step2302:つづいて入力部2001は、分割したブロックをマクロブロック番号nが1からNまで順番に、動きベクトル検出回路2002及び減算回路2003に送る。N番のマクロブロックを送り終えると、再び新しいピクチャの読み込みを開始する。(Step2301へ)
Step2303:動きベクトル検出回路2002は、参照ピクチャメモリ2005よりn番のマクロブロックに対応する参照ピクチャの探索エリアを読み出し、動き予測処理を行う。ここで、動きベクトル検出回路2002は、後述の6タップフィルタを用いた小数画素精度のブロックマッチングによる動きベクトルの検出を行なう。そして、動き予測処理により求められたn番のマクロブロックに対応する動きベクトルを、動き補償回路2004に出力する。また同時に動きベクトル検出回路2002は、動きベクトルを符号化部2012へ出力する。参照ピクチャの画像は、参照ピクチャメモリ2005に蓄えられている。
Step2304:動き補償回路2004は、動きベクトル検出回路2002から得た動きベクトルを基に、参照ピクチャメモリ2005から画素を取得する。そして、画素補間によりマクロブロックと同じ形状、大きさを有する予測画像を生成し、減算回路2003および加算回路2006へ出力する。
Step2305:減算回路2003には、入力部2001から符号化対象ピクチャのn番のマクロブロック画像データが供給されると共に、動き補償回路2004で動き補償された参照ピクチャの画像データが供給される。減算回路2003で、符号化対象ピクチャのn番のマクロブロックと動き補償された参照ピクチャの画像データとが減算され、差分データが求められる。この差分データが、直交変換回路2007に供給される。
Step2306:直交変換回路2007では、差分データが直交変換される。直交変換としては、例えばDCT(離散コサイン変換)が使用される。直交変換回路2007により変換された変換係数が量子化器2008に供給される。量子化器2008で、変換係数が量子化される。量子化器2008は、量子化処理に使用した量子化値と量子化された変換係数を符号化部2012と逆量子化器2010に出力する。
Step2307:逆量子化器2010では、受信した量子化値と変換係数を基に、逆量子化を行う。そして、つづく逆直交変換回路2011では逆DCTなどの逆周波数変換を施し、減算回路2003が出力したものと同じn番のマクロブロックに対する差分データを再生する。そして、その差分データを加算回路2006に出力する。
Step2308:加算回路2006には、動き補償回路2004から動き補償された参照ピクチャの画像データが供給される。この予測画像データに、加算回路2006で再生された差分データが加算され、符号化対象ピクチャの画像データが求められる。求められた符号化対象ピクチャの画像データは、次の参照ピクチャとして、参照ピクチャメモリ2005のマクロブロック番号nに相当する位置に蓄えられる。
Step2309:符号化部2012は、量子化器2008から送られた量子化値と量子化された変換係数、動きベクトル検出回路から送られた動きベクトルなどの符号化を行う。符号化にはCAVLCと呼ばれる可変長符号化、CABACと呼ばれる算術符号化などが利用可能である。符号化部2012は、符号化したビット情報を出力部2009に送る。
Step2310:出力部2009は、符号化部2012から受け取ったビット情報を図示しないバッファに蓄え、あらかじめ定められた区切り方に従ってパケット化する。区切り方は、ネットワークへの伝送用途、記録媒体への蓄積用途などに応じて決定される。n番目のマクロブロックに対する全ての処理を終了すると、つづけて(n+1)番目のマクロブロックの処理に移る。(Step2302へ)
上記のようにして、従来の動画符号化装置は、入力画像の符号化を行う。入力部2001は、時系列に沿って順番にピクチャを読み込む。また一方で、時系列の順番を入れ替えてピクチャを読み込むこともできる。その際、例えば0、3、1、2、6、4、5、9、7、8、…のように時間的に後のピクチャが先に読み込まれ先に符号化される。先に符号化されたピクチャは、参照ピクチャとして参照ピクチャメモリ2005に蓄積され、ピクチャ間動き予測処理で利用可能となる。動き予測処理では、利用可能な参照ピクチャによって2つに分類され、時間的に前のピクチャのみを参照ピクチャとして動き予測を行うものをPピクチャと呼び、時間的に前および後のピクチャを参照ピクチャとして動き予測を行うものをBピクチャと呼ぶ。参照ピクチャとして使用されるピクチャは、しかるべき期間、参照ピクチャメモリ2005に保持され、動きベクトル検出回路2002および動き補償回路2004からアクセス可能である。
さて、図16のような高能率符号化装置において、一般に、動きベクトル検出回路2002で動きベクトルを検出する処理が最も負荷が高い。ピクチャ間動き予測方式としてMPEGでは、画像を複数のブロックに分割しブロック単位で動き補償予測処理を行うことになっている。これはテレビ電話等向けの動画像符号化の国際標準化方式ITU−T H.261でも用いられている。また、ブロック単位での動き補償予測としては、ブロックマッチングによる動きベクトル検出に基づく場合が一般的である。図18は、ブロックマッチング法を説明する図である。図18において、2101は符号化対象ピクチャを示し、2102は参照ピクチャを示している。符号化対象ピクチャ2101はブロックに分割され、ブロックごとに参照ピクチャ2102内の探索エリア2106の中で探索が行われる。探索エリア2106のサイズは任意に指定可能である。ここで2103を基準ブロック(対象ブロック)とすると、ブロックマッチング法は、探索エリア2106の中から基準ブロックと最も似かよったブロックを探索し、その結果最も相関度が高いブロックとして予測ブロック2104を検出するものである。類似度の評価にはSAD(Sum of Absolute Difference)が用いられる。ただし、評価尺度としては、これに限定するものではなく、直交変換されたSADであるSADT(SAD Transform)などでも良い。この予測ブロック2104への相対的な位置の差が動きベクトル2104となる。動きベクトル検出回路2002は、このブロックマッチング法に基づいて動きベクトルを検出する。
ブロックマッチングにより検出される動きベクトルの精度を高め、ピクチャ間動き予測の符号化効率を高めるために、従来より動きベクトル検出回路2002で、小数精度動きベクトル検出が行われてきた。小数精度動きベクトル検出は、先に説明したブロックマッチング法に則った手法であり、参照ピクチャ2102の画素を補間することにより、座標軸上で整数座標位置以外の画素を生成して解像度の高い参照画像を構成し、解像度の高い参照画像を用いて動き予測を行うものである。これにより、基準ブロックとより相関度の高い予測ブロックが生成される可能性があり、より一層符号化効率が高まる。
図19は、一般的な小数精度動き予測処理を説明するための図であり、図18における探索エリア2106を構成する画素の詳細を示す。探索エリア2106中で、丸印は整数画素2502を示し、動きベクトル検出回路2002による整数精度動き予測処理の結果、整数精度での予測ブロック2501が得られるものとする。つづいて動きベクトル検出回路2002は、予測ブロック2501の周辺で小数画素精度の動き予測を行うために、探索エリアの画素補間を行う。×印は補間フィルタを用いて1/2画素精度で探索エリアの画素補間を行った結果得られた補間画素2503を示す。動きベクトル検出回路2002では、1/2画素精度の探索エリアを用いて動き予測を行い、1/2画素精度での予測ブロックと動きベクトルを得る。さらに、1/2画素精度動き予測の結果得られた予測ブロックの周辺で、補間フィルタを用いて1/4画素精度で探索エリアの画素補間を行い、図示しない1/4画素精度補間画素を用いて1/4画素精度動き予測処理を行う。その結果、図18に示した最終的な予測ブロック2104と動きベクトル2103が得られる。図19では、整数精度の予測ブロック2501の周辺8近傍までしか補間を行っていないが、補間の範囲を広げ、任意のエリアを小数精度の動き予測の探索エリアとすることが可能である。また説明では、1/4画素精度動き予測までとしたが、さらに精度を高め任意の精度の小数精度動き予測を行うことができる。
このような小数精度動き検出を行う際に、動きベクトル検出回路2002では、1)解像度の高い参照画像を作成する処理と、2)解像度が高く、より広範な探索領域を有する参照画像から動きベクトルを検出する処理が、通常の動き検出処理に加えて必要になる。1)の画素補間に用いるフィルタは、MPEG−2の場合には2タップフィルタによる線形内挿補間である。MPEG−4 AVCでは6タップフィルタによる参照画像が生成される。より詳細には、まず1/2画素精度の補間値を6タップフィルタで生成し、更に1/4画素精度の補間値を1/2画素精度の画素から2タップフィルタで生成する。
図20に、参照画像における整数画素と補間画素を示す。図20を用いて、2タップフィルタと6タップフィルタによる画素補間の違いについて説明する。参照画像中には、太線の円形をした整数画素2201と細線の円形をした1/2画素精度補間画素2202が規則的に並んでいる。ただし、説明に関係のない画素は記載していない。このような補間画素を用いることによって、参照画像の解像度を高めることができる。2タップフィルタは2画素を利用して線形内挿補間を行うフィルタであり、6タップフィルタは6画素を利用した補間を行うフィルタである。ここで補間画素cに着目すると、2タップフィルタは、画素Gと画素Hを利用して画素cを生成する。一方、6タップフィルタは、画素E、画素F、画素G、画素H、画素I、画素Jの6画素を利用して画素cを生成する。
2タップフィルタと6タップフィルタを用いて補間画素を生成する計算式を以下に示す。ここで、w1からw6は6タップフィルタの形状すなわち画素の重みを決定する係数である。
・2タップフィルタによる画素補間:
c = ( G + H + 1)/2
f = ( G + M + 1)/2
g = ( f + h + 1)/2 = ( G + H + M + N + 2)/4
・6タップフィルタによる画素補間:
c = ( w1*E +w2*F + w3*G + w4*H +w5*I + w6*J +(W/2))/W
f = ( w1*A + w2*C + w3*G + w4*M + w5*R + w6*T +(W/2))/W
g = ( w1*d + w2*e + w3*f + w4*h + w5*i + w6*j +(W/2))/W
W = w1+w2+w3+w4+w5+w6
上記計算式から明らかなように、2タップフィルタに比べて6タップフィルタは、6画素を利用して補間画素を推定するので、より高い精度の画素補間が可能となるが、一方で補間画素を一つ生成するための加算および積算の回数が大幅に増加し、演算負荷が高くなる。更に、演算で参照する画素数が増加するため、メモリのアクセス頻度も増加する。
そこで、小数精度動き予測処理の性能を低下させることなく、処理量を削減し、回路規模を縮小する技術が従来より検討されている。例えば、小数精度動き予測処理において、多段階の動き予測を行うことにより、小数精度の動き予測における探索範囲を絞り込み、処理量を削減する手法が記載されている(特許文献1参照)。また、小数精度動き予測処理において、垂直および水平方向のみ画素補間を行い、斜め方向の画素補間を行わないことにより、高解像度参照画像生成のための演算量と、動きベクトル探索の演算量を削減する手法が記載されている(特許文献2参照)。また、小数精度動き予測処理において、小数精度の参照画像を作成する際、6タップフィルタで生成した1ピクチャ分の補間画像をメモリに保持することで、小数精度動き予測の際、各マクロブロックの探索エリア作成に係わる6タップフィルタの冗長な演算を削減する手法が記載されている(特許文献3参照)。図21は、特開2003−348595号公報に開示されている動画符号化装置の構成を示す。画像生成部2401と高解像度参照ピクチャメモリ2402が、図16の従来の動画符号化装置と異なり、高解像度参照ピクチャメモリ2402に1ピクチャ分の補間画像が蓄積される。
特開平7−162868号公報
特開平7−95585号公報
特開2003−348595号公報
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。なお、本発明はこれら実施の形態に何等限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
(実施の形態1)
本発明の第一の実施の形態の動画符号化装置の概要について説明する。本発明の動画符号化装置は、動画像信号を入力とし、画像の符号化を行った後、符号化情報を出力するものであり、映像の蓄積装置や映像伝送装置と組み合わせて幅広く利用可能である。
図1は、本実施の形態の動画符号化装置の構成を示すブロック図である。図16に示した従来の動画符号化装置と動作が同じ構成要素に対しては、同一の符号を付与するものとする。本実施の形態の動画符号化装置は、あらかじめ2タップフィルタによって生成される探索エリアを用いて動きベクトルの探索を行い、探索によって候補として絞り込まれた複数の動きベクトルについて、最終的に6タップフィルタを用いて補間された小数精度の予測ブロックで動き補償を行なう動画符号化装置であって、動きベクトル検出回路101、動き補償回路102、動きベクトル決定部103、減算回路2003、参照ピクチャメモリ2005、加算回路2006、直交変換回路2007、量子化器2008、出力部2009、逆量子化器2010、逆直交変換回路2011および符号化部2012を備える。これにおいて、動きベクトル検出回路101と、動き補償回路102と、動きベクトル決定部103とが従来と異なる構成要素である。
図2は、本実施の形態における動画符号化装置の動作を示すフローチャートである。ただし、ここでは図17に示した従来の動画符号化装置と異なる動作についてのみ説明する。
Step203:小数精度動き予測を行う場合、従来の動きベクトル検出回路は、6タップフィルタによって生成される探索エリアを用いて動きベクトル検出を行うが、本実施の形態の動きベクトル検出回路101は、2タップフィルタによって生成される探索エリアを用いて動きベクトル検出を行う。また、従来の動きベクトル検出回路は、動きベクトルの検出を行った後、符号化部2012に動きベクトルを出力していた(図17のStep2302)が、本実施の形態の動きベクトル検出回路101は符号化部2012に対して出力を行わない。
Step204:本実施の形態の動きベクトル検出回路101は、2タップフィルタによって生成される探索エリアを用いて検出した複数の動きベクトルを動き補償回路102に出力する。
Step205:本実施の形態の動き補償回路102は動きベクトル検出回路101から入力される複数の動きベクトルに対してそれぞれに動き補償を行い、6タップフィルタを用いて複数の予測画像を生成し減算回路2003および動きベクトル決定部103に出力する。それと同時に、予測画像の生成に使われた複数の動きベクトルを動きベクトル決定部103に出力する。
Step206:減算回路2003は、入力部2001から供給される符号化対象ピクチャと、動き補償回路102から入力される複数の予測画像に対して、順番に減算を行い、差分画像データを生成する。この差分画像データが、順番に動きベクトル決定部103に供給される。
Step207:動きベクトル決定部103は、減算部2003から出力される差分画像データの符号化コストを計算し、最も符号化コストが低い動きベクトルを決定し、符号化部2012に出力する。また、同時にその動きベクトルに対応する予測画像を加算回路2006に、差分画像データを直交変換回路2007に出力する。以下のStep208〜Step212は、図17で説明したStep2306〜Step2310と同様であるので説明を省略する。
次に、動きベクトル検出回路101の構成と動作について図を用いて詳細に説明する。
図3は、図1に示した動きベクトル検出回路101の内部の構成を示すブロック図である。動きベクトル検出回路101は、2タップフィルタによって生成される探索エリアを用いて、複数の動きベクトルを検出する回路であって、前方向参照画像バッファ601、後方向参照画像バッファ602、前方向Motion Estimation(ME)603、後方向ME604、2タップ画像補間器605、マクロブロックバッファ606、動きベクトル方向判定部607、前方向動きベクトルバッファ608、および後方向動きベクトルバッファ609を備える。前方向参照画像バッファ601は、前方向の参照ピクチャの探索エリアを保持するバッファである。後方向参照画像バッファ602は、後方向の参照ピクチャの探索エリアを保持するバッファである。前方向ME603は、マクロブロックバッファ606に保持されているマクロブロックと、前方向参照画像バッファ601に保持された探索エリアとを用いて動き予測処理を行う。後方向ME604は、マクロブロックバッファ606に保持されているマクロブロックと後方向参照画像バッファ602に保持された探索エリアを用いて動き予測処理を行う。2タップ画像補間器605は、2タップフィルタにより参照画像の補間を行う。マクロブロックバッファ606は、符号化対象ピクチャのマクロブロックを保持する。前方向動きベクトルバッファ608は、前方向の動きベクトルの候補を保持する。後方向動きベクトルバッファ609は、後方向の動きベクトルの候補を保持する。動きベクトル方向判定部607は、動き予測処理の結果得られた符号化コストから動きベクトルの方向を決定する。
図4は、本実施の形態1における動画符号化装置の動きベクトル検出回路における動き予測処理の流れを示す流れ図である。図4のフローチャートを用いて、動きベクトル検出回路101内部の動作を詳細に説明する。動きベクトル検出回路101内部には、図示しないコントローラが存在し、以下の処理を行なう。
Step701:入力部2001から送られたマクロブロックをマクロブロックバッファ606に保持する。
Step702:コントローラは、マクロブロック番号からそのマクロブロックに対する探索エリアを計算し、参照ピクチャメモリ2005から探索エリアの画像データを前方向参照画像バッファ601と後方向参照画像バッファ602にそれぞれ読み込む。ただし、マクロブロックバッファ606に保持しているマクロブロックがPピクチャのものである場合には、後方向参照画像バッファ602への読み込みは行わず、以後このマクロブロックに対して後方向に関する処理は行われない。
Step703:コントローラは、探索エリアの読み込みが終了すると、前方向ME603と後方向ME604を起動する。前方向ME603は、マクロブロックバッファ606に保持されたマクロブロックと前方向参照画像バッファ601に保持された探索エリアを用いて動き予測処理を行い、評価コストを最小にする前方向の整数画素精度動きベクトルとコスト値とを得る。同様にして、後方向ME604は、マクロブロックバッファ606と後方向参照画像バッファ602に保持された探索エリアとを用いて動き予測処理を行い、評価コストを最小にする後方向の整数画素精度動きベクトルとコスト値とを得る。
Step704:前方向ME603および後方向ME604は、それぞれ整数画素精度動きベクトルを2タップ画像補間器605に送る。2タップ画像補間器605は、整数画素精度動きベクトルに基づいてそれぞれの参照画像バッファから整数画素を読み出し、2タップフィルタを用いて1/2画素精度補間画素を生成し、それぞれの参照画像バッファに書き込む。前述したように、整数精度予測ブロックの周辺でのみ1/2画素精度の補間を行う。
Step705:コントローラは、1/2画素精度補間画素の書き込みが終了すると、前方向ME603と後方向ME604を再び起動する。前方向ME603は、マクロブロックバッファ606と前方向参照画像バッファ601に保持された1/2画素精度探索エリアを用いて動き予測処理を行い、評価コストを最小にする前方向の1/2画素精度動きベクトルとコスト値を得る。同様にして、後方向ME604は、マクロブロックバッファ606と後方向参照画像バッファ602に保持された1/2画素精度画像探索エリアを用いて動き予測処理を行い、評価コストを最小にする後方向の1/2画素精度動きベクトルとコスト値を得る。
Step706:前方向ME603および後方向ME604は、それぞれ1/2画素精度動きベクトルを2タップ画像補間器605に送る。2タップ画像補間器605は、1/2画素精度動きベクトルに基づいてそれぞれの参照画像バッファから整数画素精度と1/2画素精度の画素を読み出し、2タップフィルタを用いて1/4画素精度補間画素を生成し、それぞれの参照画像バッファに書き込む。前述したように、1/2画素精度予測ブロックの周辺でのみ1/4画素精度の補間を行う。
Step707:コントローラは、1/4画素精度補間画素の書き込みが終了すると、前方向ME603と後方向ME604を起動する。前方向ME603は、マクロブロックバッファ606と前方向参照画像バッファ601に保持された1/4画素精度探索エリアを用いて動き予測処理を行い、評価コストを最小にする前方向の1/4画素精度動きベクトルとコスト値を得る。得られた前方向の1/4画素精度動きベクトル(第一動きベクトル)のコスト値を動きベクトル方向判定部607に出力するとともに、前方向の1/4画素精度動きベクトル(第一動きベクトル)を前方向動きベクトルバッファ608に保存する。このとき評価コストを2番目に最小にする1/4画素精度動きベクトル(第二動きベクトル)も前方向動きベクトルバッファ608に記憶しておく。また、必要に応じて第N動きベクトル(Nは3以上)までを記録するようにしても良い。
同様にして、後方向ME604は、マクロブロックバッファ606と後方向参照画像バッファ602に保持された1/4画素精度探索エリアを用いて動き予測処理を行い、評価コストを最小にする後方向の1/4画素精度動きベクトルとコスト値を得る。得られた後方向の1/4画素精度動きベクトル(第一動きベクトル)のコスト値を動きベクトル方向判定部607に出力するとともに、後方向の1/4画素精度動きベクトル(第一動きベクトル)を後方向動きベクトルバッファ609に保存する。このとき評価コストを2番目に最小にする1/4画素精度動きベクトル(第二動きベクトル)も後方向動きベクトルバッファ609に記憶しておく。また、必要に応じて第N動きベクトル(Nは3以上)までを記録するようにしても良い。
Step708:動きベクトル方向判定部607は、前方向ME603と後方向ME604から送られたコスト値から動きベクトルの方向すなわち前方向、後方向、双方向を決定する。決定の仕方としては、例えば、コスト値の差分に所定の閾値を設けておき、前方向のコスト値が後方向のコスト値より著しく小さいとき(すなわち、前方向のコスト値と後方向のコスト値との差分が閾値を超えるとき)には前方向とし、反対に後方向のコスト値が前方向のコスト値より著しく小さいとき(すなわち、後方向のコスト値と前方向のコスト値との差分が閾値を超えるとき)には後方向とし、前方向のコスト値と後方向のコスト値が近い値(すなわち、両者の差分が閾値以下)であるならば双方向とする。ただし、これは一例であり動きベクトルの方向決定は、この方法に限ったものではない。また、マクロブロックがPピクチャのものである場合には、後方向のコスト値は入力されないので、必ず前方向と決定される。
Step709:動きベクトル方向判定部607は、動きベクトルの方向を決定すると、決定した方向の動きベクトルを動きベクトルバッファより取り出し、動き補償回路102に送出する。
(1)双方向と決定した場合は、前方向動きベクトルバッファ608より前方向の第一動きベクトルを取得し、後方向動きベクトルバッファ609より後方向の第一動きベクトルを取得し、動き補償回路102に送る。
(2)また、前方向と決定した場合は、前方向動きベクトルバッファ608より前方向の第一動きベクトルと、評価コストを2番目に最小にする第二動きベクトルとを取得し、動き補償回路102に送出する。必要に応じて第N動きベクトルまでを取得し、送出するようにしてもよい。
(3)同様にして、後方向と決定した場合は、後方向動きベクトルバッファ609より後方向の第一動きベクトルと評価コストを2番目に最小にする第二動きベクトルを取得し、動き補償回路102に送出する。必要に応じて第N動きベクトルまでを取得し、送出するようにしてもよい。
以上のように、動きベクトル検出回路101では2タップフィルタにより生成される参照画像を用いて小数精度動き予測処理が行われ、マクロブロックに対する動きベクトルの候補が絞り込まれる。一方で、動きベクトル検出回路101では6タップフィルタによる参照画像を用いた小数精度動き予測処理は行わないので、従来と比較し、補間画素を生成するための演算量や外部メモリからのデータ転送量を増加することなく動き予測を行うことが可能である。動きベクトル検出回路101での動き予測処理の結果、絞り込まれた2本以上の動きベクトルが動き補償回路102に出力される。
次に、動き補償回路102の構成と動作について図を用いて詳細に説明する。
図5は動き補償回路102内部の構成を示すブロック図である。動き補償回路102は、6タップフィルタにより予測ブロックを生成し、精度の高い動き補償をする回路であって、6タップ画像補間器901、6タップ予測ブロックバッファ902、動きベクトルバッファ903および平均画像生成部904を備える。これにおいて、6タップ画像補間器901は、6タップフィルタにより参照画像の補間を行い、動き補償予測ブロックを生成する。6タップ予測ブロックバッファ902は、6タップ画像補間器901により生成された予測ブロックを保持する。動きベクトルバッファ903は、動きベクトル検出回路101から入力された複数の動きベクトルを保持する。平均画像生成部904は、動きベクトルの方向が双方向予測である場合には、6タップ予測ブロックバッファ902に保持された前方向の動きベクトルに対応する予測ブロックと、後方向の動きベクトルに対応する予測ブロックとから、2つの予測ブロックの平均画像を生成し、双方向予測ブロックとして減算回路2003および動きベクトル決定部103に出力する。
図6は、図5に示した動き補償回路102における動き補償処理の流れを示す流れ図である。図6のフローチャートを用いて、動き補償回路102内部の動作を詳細に説明する。動き補償回路102内部には、図示しないコントローラが存在し、各モジュールの動作タイミングを制御する。
Step1001:動きベクトルバッファ903は、動きベクトル検出回路101から送られた複数本の動きベクトルとそれらの動きベクトルの方向を受け取り、内部の図示しないメモリに保持するとともに、6タップ画像補間器901に動きベクトルおよび方向を出力する。
Step1002:6タップ画像補間器901は、各動きベクトルに対応する予測ブロックを作成するための整数画素を参照ピクチャメモリ2005から読み出す。6タップ画像補間器901は、受け取った動きベクトルの方向が異なるとき、そのマクロブロックは双方向予測であると認識し、コントローラに通知する。
Step1003:6タップ画像補間器901は、6タップフィルタを用いて各動きベクトルに対応する予測ブロックを生成し、生成した予測ブロックを6タップ予測ブロックバッファ902に格納する。
Step1004:動きベクトルの方向が双方向予測でない場合には、コントローラは平均画像生成部904の動作をオフとし、6タップ予測ブロックバッファ902に保持された複数の予測ブロックを、順番に減算回路2003および動きベクトル決定部103に出力する。このとき、送られる予測ブロックの総数(2以上)を動きベクトル決定部103に通知する。
Step1005:コントローラは、それと同時に動きベクトルバッファ903に保持された複数の動きベクトルを動きベクトル決定部103に送出する。
Step1006:動きベクトルの方向が双方向予測である場合には、コントローラは平均画像生成部904の動作をオンとし、6タップ予測ブロックバッファ902に保持された前方向の動きベクトルに対応する予測ブロック、後方向の動きベクトルに対応する予測ブロックを平均画像生成部904に入力する。平均画像生成部904は、2つの予測ブロックの平均画像を生成し、双方向予測ブロックとして減算回路2003および動きベクトル決定部103に出力する。このとき、送られる予測ブロックの総数(常に1個)を動きベクトル決定部103に通知する。
Step1007:コントローラは、それと同時に動きベクトルバッファ903に保持された前方向及び後方向の動きベクトルを動きベクトル決定部103に送出する。
以上のように、動き補償回路102では6タップフィルタを用いて小数精度の動き補償が行われ、符号化対象マクロブロックに対する予測ブロックが生成される。この動き補償処理は、例えばMPEG4−AVCの復号器の仕様で定められており、符号化装置においても省略することのできない処理である。動き補償回路102における動き補償処理の結果、双方向動きベクトルに対しては、1つの双方向予測ブロックが、片方向動きベクトルに対しては複数の予測ブロックが生成される。図7は、2タップフィルタを用いて検出した動きベクトルの符号化コストにより判断して片方向予測か双方向予測かを切り替え、片方向予測の場合には2つの動きベクトルについて6タップ動き予測できることを示す図である。このような双方向の有無による分岐処理は、図7に示すような適応的な判断処理により、演算量の大きい6タップ動き補償回路を最大限に活用できるというメリットがある。2タップ動き予測は、規格本来の6タップ動き予測と比べて画質の低下がある程度は発生するので、可能なかぎり6タップ動き予測を行うことで画質の向上が望まれる。図7に示すように、例えば、6タップ動き予測を、双方向予測候補でn個実行可能なフィルタ回路を搭載している符号化装置においては、最大で、片方向予測候補を2*n個実行可能である。最大でというのは、nが1より大きければ、nの一部を双方向予測とし、残りを片方向予測とするような組み合わせも可能である。これら双方向・片方向の判定は、Pピクチャでは、規格の制約により必ず片方向予測のみとなり、Bピクチャでは、2タップフィルタのコストに基づいて適宜判定することが可能である。例えば、ある双方向予測の候補について、前方のコストと後方のコストとが著しく異なる場合には、少ない方向のみを用いる片方向候補とすれば十分である。このような適応回路動作処理により、最小の6タップフィルタ回路を用いて、最大の画質を得ることが可能である。
次に、動きベクトル決定部103の構成と動作について図を用いて詳細に説明する。
図8は動きベクトル決定部103の内部の構成を示すブロック図である。
動きベクトル決定部103は、予測画像バッファ1101、動きベクトルバッファ1102および符号化コスト計算比較部1103を備える。予測画像バッファ1101は、候補となる複数の予測ブロックを保持する。動きベクトルバッファ1102は、候補となる複数の動きベクトルを保持する。符号化コスト計算比較部1103は、マクロブロックの符号化コストを計算し比較する。比較の結果、マクロブロックの符号化コストを最小にする動きベクトルを決定し、それに対応する差分画像データを直交変換回路2007に出力する。
図9は、動きベクトル決定部103における処理の流れを示す流れ図である。図9のフローチャートを用いて、動きベクトル決定部103内部の動作を詳細に説明する。動きベクトル決定部103内部には、図示しないコントローラが存在し、各モジュールの動作タイミングを制御する。
Step1201:コントローラには、動き補償回路102から送られる予測ブロックの総数Nがあらかじめ通知される。そして、内部に保持する受信した予測画像の個数nを0に初期化する。また、符号化コスト計算比較部1103内部の図示しない最小コストメモリの値をメモリの最大値に初期化する。ここでは動きベクトルの最大数が2である場合を説明する。双方向予測は2本の動きベクトルからなるので、双方向予測の場合にはN=1となり、片方向予測の場合にはN=1以外(この場合には2)となる。
Step1202:動き補償回路102から送られた予測ブロックは、予測画像バッファ1101の一時記憶領域に保持される。そしてコントローラは、受信した予測画像の個数nをインクリメントする。
Step1203:Nが1のときは、双方向予測の場合であり、動き補償回路102から前方、後方2本の動きベクトルが送られ、両方とも動きベクトルバッファ1102の主記憶領域に保持される。
Step1204:そしてコントローラは、符号化コスト計算比較部1103の動作をオフにし、減算回路2003から入力された差分ブロックを、そのまま直交変換回路2007に出力する。
Step1205:さらに、予測画像バッファ1101の一時記憶領域に保持されている予測ブロックを加算回路2006に出力する。
Step1206:動きベクトルバッファ1102の主記憶領域に保持されている双方向動きベクトルを符号化部2012に出力する。
Step1207:Nが1でないときは、片方向予測の場合であり、動き補償回路102から送られた動きベクトルは、動きベクトルバッファ1102の一次記憶領域に保持される。
Step1208:動きベクトルを受け取ると、コントローラは、符号化コスト計算比較部1103の動作をオンにし、減算回路2003から入力された差分ブロックのコスト計算を行う。
Step1209:そして符号化コスト計算比較部1103内部の図示しない最小コストメモリの値と比較し、差分ブロックのコスト値の方が大きいときは、次の予測ブロックを受信する。(Step1202へ)
Step1210:最小コストメモリの値よりも差分ブロックのコスト値が小さいときは、差分ブロックのコスト値を最小コストメモリに上書きする。
Step1211:そして、コントローラは予測画像バッファ1101の一時記憶領域に保持されている予測ブロックを予測画像バッファ1101の主記憶領域に移動する。同時に、動きベクトルバッファ1102の一次記憶領域に保持されている動きベクトルを動きベクトルバッファ1102の主記憶領域に移動する。
Step1212:n<Nであるならば、次の予測ブロックを受信する。(Step1202へ)
Step1213:n=Nであるならば、符号化コスト計算比較部1103は、減算回路2003から入力された差分ブロックを直交変換回路2007に出力する。
Step1214:さらに、予測画像バッファ1101の主記憶領域に保持されている予測ブロックを加算回路2006に出力する。
Step1215:動きベクトルバッファ1102の主記憶領域に保持されている片方向動きベクトルを符号化部2012に出力する。
以上のように、動きベクトル決定部103では片方向予測の場合において、複数の差分ブロックの符号化コストを計算し比較することにより、符号化コストを最小にする動きベクトルを順次決定する。候補数が複数ある場合でも、順次比較を行い、その時点でのベストのみを残しておけばよいので、複数候補から選択するための作業メモリ等は増加しない。同様に、ベストを求めるための処理も全候補を符号化コストの昇順又は降順に並び替えて符号化コストが最小のものを選択する方法ではなく、比較処理を候補数分だけ実施すればよいだけなので、演算量は十分に小さい。したがって、本発明に述べるような2タップフィルタを用いる方法は、従来の6タップフィルタを用いる方法の低処理量・高画質な方法として、置き換えることに何ら支障は無く、6タップフィルタによる参照画像を使用する小数精度動き予測と同様の高効率圧縮を実現することができる。なおここでは、片方向予測と判定されたときには、符号化コストを最小にする動きベクトルを1つ決定すると説明したが、前方向の片方向予測と判定された場合には、符号化コストの小さいものから順に、2本の動きベクトルを決定するとしてもよい。
次に、従来に比べて演算量を増加させることなく、且つ必要なメモリを増加することなく動画符号化を行う本発明の動画符号化装置の動き予測処理が、6タップフィルタによる参照画像を使用する小数精度動き予測と同様の高効率圧縮を実現する仕組みを説明する。高効率圧縮を実現するためには、具体的には、6タップフィルタによる参照画像生成を行う小数精度動き予測処理で得られる動きベクトルと、本発明の動画符号化装置の動きベクトル検出回路101、動き補償回路102、動きベクトル決定部103による小数精度動き予測処理で得られる動きベクトルが一致することが必要となる。
図10は、本発明の動画符号化装置における動きベクトル検出回路101、動き補償回路102、動きベクトル決定部103により動きベクトルが得られる過程を示すフローチャートである。図10を用いて詳細に説明する。
Step301:動きベクトル検出回路101では、符号化対象のマクロブロックに対する探索エリアを参照ピクチャメモリ2005から読み込み、整数精度動き予測を行う。その結果、整数精度の動きベクトルを得る。
Step302:動きベクトル検出回路101では、得られた整数精度の動きベクトルの周辺で、2タップフィルタを用いて小数精度動き予測のための参照画像を生成する。
Step303:その参照画像を用いて小数精度動き予測を行い、複数の動きベクトル候補を得る。前述のstep705とstep 706で述べたように、1/2画素精度で符号化コストを最小にするブロックの位置を求め、その位置のブロックの周辺でさらに1/4画素精度で符号化コストを最小にするn個を求める方法もあるし、あるいは、整数精度で検出された符号化コストを最小にするブロックの位置の周辺の全ての1/4画素精度位置の中から、符号化コストを最小にするn個を求めてもよい。いずれにしても、相対的に精度の悪い2タップフィルタでn個へ絞り込み、相対的に精度の良い6タップフィルタで最終的なベクトルを絞り込む。このとき、動き予測に使われる参照画像は、6タップフィルタによって生成される参照画像とは厳密には異なり、従って得られた動きベクトル候補の中で、最も符号化コストが小さいものが、必ずしも6タップフィルタによる参照画像生成を行う小数精度動き予測処理で得られる動きベクトルと一致するとは限らない。一方で、2タップフィルタと6タップフィルタによって生成される参照画像は大変類似しているので、得られた複数の動きベクトル候補の中に、6タップフィルタによって生成された参照画像を用いた小数精度動き予測処理で得られる動きベクトルと一致するものが含まれている可能性は極めて高い。
Step304:動き補償回路102は、複数の動きベクトル候補に対して動き補償を行い、それらに対する予測ブロックを生成する。このとき動き補償回路102は、参照ピクチャメモリ2005から動きベクトルで示されるブロックの画素補間に必要な画素を取得し、6タップフィルタを用いて予測ブロックを生成する。
Step305:動きベクトル決定部103は、複数の予測ブロックの符号化コストを計算し、比較することにより、最も符号化コストが低い動きベクトルを得ることができる。得られた動きベクトルは、6タップフィルタによる参照画像を使用する小数精度動き予測処理で得られる動きベクトルと一致する。ここで、予測ブロックの符号化コストの計算と比較は、6タップフィルタにより作成される参照画像を使用して小数精度動きベクトル検出を行うのと全く同一の内容の処理である。
以上のように、本発明の動画符号化装置の動き予測では、6タップフィルタとは異なるフィルタを用いて高解像度参照画像を生成し、小数精度動きベクトル検出を行う。それにより、参照画像生成に係わる演算量を増加させることなく、且つ必要なメモリを増加することなく複数の動きベクトル候補に絞り込むことができる。一方で、6タップフィルタによる参照画像を使用する小数精度動き予測によって得られる動きベクトルは、多くの場合、これらの動きベクトル候補に含まれる。そこで、これら複数の動きベクトル候補に対して6タップフィルタを用いた動き補償を行い、予測ブロックを生成し符号化コストを比較することで、動きベクトル候補の中から6タップフィルタによる参照画像を使用する小数精度動き予測によって得られる動きベクトルと一致するものを選択することができる。符号化に用いられる動きベクトルが一致することから、本発明の動画符号化装置の動き予測処理は、6タップフィルタによる参照画像を使用する小数精度動き予測と同様の高効率圧縮を実現することができる。
以上に説明してきたように、本動画符号化装置は、動きベクトル検出回路101で2タップフィルタによる参照画像を使用して小数精度で動き予測し、動きベクトルの絞込みを行うことで、従来に比べて演算負荷を増加させることなく動きベクトル候補を得ることができる。そして、動き補償回路102で動き補償を行う際に、絞り込まれた複数の動きベクトル候補に対して6タップフィルタを用いた動き補償予測ブロックの生成を行う。さらに動きベクトル決定部103で、各動きベクトルに対応する差分ブロックの符号化コストを計算し比較することにより、従来に比べて演算量を増加させることなく、且つ必要なメモリも増加することなく、6タップフィルタによる参照画像を使用する小数精度動き予測と行う場合と同様の高圧縮率を維持することができる。
なお、ブロック図(図1、図3、図5および図8など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。
例えばメモリ以外の機能ブロックが1チップ化されていても良い。
なお、ここでは、集積回路をLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。
さらに、本発明のLSIには、バッファまたはメモリが実装されていてもよいし、いなくてもよい。
(実施の形態2)
さらに、上記各実施の形態1で示した動画符号化方法および動画復号化方法の構成を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録するようにすることにより、上記各実施の形態1で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
図11は、上記実施の形態1の動画符号化方法および動画復号化方法をコンピュータシステムにより実現するためのプログラムを格納するための記録媒体についての説明図である。
図11(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図11(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクFD上に割り当てられた領域に、上記プログラムとしての動画符号化方法および動画復号化方法が記録されている。
また、図11(c)は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしての動画符号化方法および動画復号化方法を、フレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記動画符号化方法および動画復号化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、CD−ROM、メモリカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
(実施の形態3)
さらにここで、上記実施の形態1で示した動画像の符号化方法や動画像の復号化方法の応用例とそれを用いたシステムを説明する。
図12は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
このコンテンツ供給システムex100は、例えば、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex107〜ex110を介して、コンピュータex111、PDA(personal digital assistant)ex112、カメラex113、携帯電話ex114、カメラ付きの携帯電話ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図12のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex107〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、PDC(Personal Digital Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、若しくはGSM(Global System for Mobile Communications)方式の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
また、ストリーミングサーバex103は、カメラex113から基地局ex109、電話網ex104を通じて接続されており、カメラex113を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex116で撮影した動画データはコンピュータex111を介してストリーミングサーバex103に送信されてもよい。カメラex116はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex116で行ってもコンピュータex111で行ってもどちらでもよい。また、符号化処理はコンピュータex111やカメラex116が有するLSIex117において処理することになる。なお、動画像の符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込んでもよい。さらに、カメラ付きの携帯電話ex115で動画データを送信してもよい。このときの動画データは携帯電話ex115が有するLSIで符号化処理されたデータである。
このコンテンツ供給システムex100では、ユーザがカメラex113、カメラex116等で撮影しているコンテンツ(例えば、音楽ライブを撮影した映像等)を上記実施の形態1同様に符号化処理してストリーミングサーバex103に送信する一方で、ストリーミングサーバex103は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等がある。このようにすることでコンテンツ供給システムex100は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
このシステムを構成する各機器の符号化、復号化には上記各実施の形態1で示した動画符号化装置あるいは動画復号化装置を用いるようにすればよい。
その一例として携帯電話について説明する。
図13は、上記実施の形態1で説明した動画像の符号化方法と動画像の復号化方法を用いた携帯電話ex115を示す図である。携帯電話ex115は、基地局ex110との間で電波を送受信するためのアンテナex201、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex203、カメラ部ex203で撮影した映像、アンテナex201で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex202、操作キーex204群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex208、音声入力をするためのマイク等の音声入力部ex205、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex207、携帯電話ex115に記録メディアex207を装着可能とするためのスロット部ex206を有している。記録メディアex207はSDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものである。
さらに、携帯電話ex115について図14を用いて説明する。携帯電話ex115は表示部ex202及び操作キーex204を備えた本体部の各部を統括的に制御するようになされた主制御部ex311に対して、電源回路部ex310、操作入力制御部ex304、画像符号化部ex312、カメラインターフェース部ex303、LCD(Liquid Crystal Display)制御部ex302、画像復号化部ex309、多重分離部ex308、記録再生部ex307、変復調回路部ex306及び音声処理部ex305が同期バスex313を介して互いに接続されている。
電源回路部ex310は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付デジタル携帯電話ex115を動作可能な状態に起動する。
携帯電話ex115は、CPU、ROM及びRAM等でなる主制御部ex311の制御に基づいて、音声通話モード時に音声入力部ex205で集音した音声信号を音声処理部ex305によってデジタル音声データに変換し、これを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。また携帯電話機ex115は、音声通話モード時にアンテナex201で受信した受信データを増幅して周波数変換処理及びアナログデジタル変換処理を施し、変復調回路部ex306でスペクトラム逆拡散処理し、音声処理部ex305によってアナログ音声データに変換した後、これを音声出力部ex208を介して出力する。
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex204の操作によって入力された電子メールのテキストデータは操作入力制御部ex304を介して主制御部ex311に送出される。主制御部ex311は、テキストデータを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して基地局ex110へ送信する。
データ通信モード時に画像データを送信する場合、カメラ部ex203で撮像された画像データをカメラインターフェース部ex303を介して画像符号化部ex312に供給する。また、画像データを送信しない場合には、カメラ部ex203で撮像した画像データをカメラインターフェース部ex303及びLCD制御部ex302を介して表示部ex202に直接表示することも可能である。
画像符号化部ex312は、本願発明で説明した動画符号化装置を備えた構成であり、カメラ部ex203から供給された画像データを上記実施の形態1で示した動画符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex308に送出する。また、このとき同時に携帯電話機ex115は、カメラ部ex203で撮像中に音声入力部ex205で集音した音声を音声処理部ex305を介してデジタルの音声データとして多重分離部ex308に送出する。
多重分離部ex308は、画像符号化部ex312から供給された符号化画像データと音声処理部ex305から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex201を介して基地局ex110から受信した受信データを変復調回路部ex306でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex308に送出する。
また、アンテナex201を介して受信された多重化データを復号化するには、多重分離部ex308は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex313を介して当該符号化画像データを画像復号化部ex309に供給すると共に当該音声データを音声処理部ex305に供給する。
次に、画像復号化部ex309は、本願発明で説明した動画復号化装置を備えた構成であり、画像データのビットストリームを上記実施の形態1で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをLCD制御部ex302を介して表示部ex202に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex305は、音声データをアナログ音声データに変換した後、これを音声出力部ex208に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
なお、上記システムの例に限られず、最近は衛星、地上波によるデジタル放送が話題となっており、図15に示すようにデジタル放送用システムにも上記実施の形態1の少なくとも動画符号化装置または動画復号化装置のいずれかを組み込むことができる。具体的には、放送局ex409では映像情報のビットストリームが電波を介して通信または放送衛星ex410に伝送される。これを受けた放送衛星ex410は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex406で受信し、テレビ(受信機)ex401またはセットトップボックス(STB)ex407などの装置によりビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex402に記録したビットストリームを読み取り、復号化する再生装置ex403にも上記実施の形態1で示した動画復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex404に表示される。また、ケーブルテレビ用のケーブルex405または衛星/地上波放送のアンテナex406に接続されたセットトップボックスex407内に動画復号化装置を実装し、これをテレビのモニタex408で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に動画復号化装置を組み込んでも良い。また、アンテナex411を有する車ex412で衛星ex410からまたは基地局ex107等から信号を受信し、車ex412が有するカーナビゲーションex413等の表示装置に動画を再生することも可能である。
更に、画像信号を上記実施の形態1で示した動画符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex421に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex420がある。更にSDカードex422に記録することもできる。レコーダex420が上記実施の形態1で示した動画復号化装置を備えていれば、DVDディスクex421やSDカードex422に記録した画像信号を再生し、モニタex408で表示することができる。
なお、カーナビゲーションex413の構成は例えば図14に示す構成のうち、カメラ部ex203とカメラインターフェース部ex303、画像符号化部ex312を除いた構成が考えられ、同様なことがコンピュータex111やテレビ(受信機)ex401等でも考えられる。
また、上記携帯電話ex114等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
このように、上記実施の形態1で示した動画像の符号化方法あるいは動画像の復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態1で説明した効果を得ることができる。
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。