| 【発明の名称】 |
動き補償処理方法 |
| 【発明者】 |
【氏名】坪岡 健男 【住所又は居所】神奈川県横浜市神奈川区守屋町3丁目12番地 日本ビクター株式会社内
|
| 【要約】 |
【課題】圧縮符号化された動画像の復号に用いる動き補償処理の効率の悪化を抑える。
【解決手段】現在復号されるマクロブロック44の次に復号されるマクロブロック45の動きベクトルを、復号された動きベクトル51,52の差分ベクトル54を利用して予測し、予測ベクトル53が指し示す領域を次参照領域48として予測し、次参照領域48より大きい領域の画素データをデータキャッシュに格納する。 |
【特許請求の範囲】
【請求項1】 動き補償を用いてマクロブロック単位で圧縮符号化された画像を復号する際に用いる動き補償処理方法であって、 現在復号中のマクロブロックの動きベクトルを復号する復号ステップと、 前記動きベクトルが指す現在の参照領域の次に参照する次参照領域を、復号された2つ以上の動きベクトルを利用して予測する予測ステップと、 この予測ステップで予測した前記次参照領域を含む前記次参照領域よりも大きい領域の画素データをこの画素データが記憶されている主記憶手段から読み出してキャッシュメモリに格納する格納ステップと、 前記予測ステップ及び前記格納ステップと並行して前記現在の参照領域の画素データに対する動き補償演算を行う演算ステップと を有することを特徴とする動き補償処理方法。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、圧縮符号化された画像の復号に用いる動き補償処理方法に関する。 【背景技術】 【0002】 近年、画像信号を圧縮して情報量を削減する方法として種々の画像圧縮技術が提案されており、その代表的なものとしてH.264|MPEG−4 AVC(ITU−T Rec. H.264|ISO/IEC 14496−10 MPEG−4 Part10 Advanced Video Coding)などを始めとするMPEGビデオ技術がある。 【0003】 MPEGビデオ技術においては、動画像信号の時間冗長性を削減するために動き補償(MC:Motion Compensation)処理が行われるが、この動き補償処理は処理量が多く、長時間を要する。 【0004】 従来、動き補償処理に要する時間を短縮する動き補償処理方法として、特許文献1に開示されたものがある。図7は特許文献1に開示された動き補償処理システムを示すブロック図である。 【0005】 図7に示す動き補償処理システムによれば、主記憶12に格納された画像データの一部は参照画像としてデータキャッシュ13へ転送され、データキャッシュ13からレジスタファイル15へ供給される。そして、レジスタファイル15上のデータは演算器16により動き補償処理演算される。 【0006】 データキャッシュコントローラ14は主記憶12の一部をデータキャッシュ13に反映する制御を行う。また、データキャッシュコントローラ14は、レジスタファイル15からアドレスを与えることで、主記憶12からデータキャッシュ13へデータをプリロードする機能を有する。 【0007】 特許文献1には、MPEGビデオ復号技術を利用した組み込み機器への実施例において、図7に示す主記憶12から演算処理装置11上のデータキャッシュ13へのデータ転送は、データキャッシュ13からレジスタファイル15へのデータ転送よりも長く時間を要することが述べられている。したがって、大容量だがアクセスの低速な主記憶12と、アクセスは高速だが小容量のデータキャッシュ13とを効率よく使い分ける必要がある。 【0008】 特許文献1に開示された動き補償処理方法では、現在の動き補償処理に続く次の動き補償処理で参照する参照領域(以下、次参照領域と呼ぶ)を、現在復号した動きベクトルから仮定し、仮定した次参照領域の画素データを主記憶12からデータキャッシュ13へと予め転送するプリロードを行う。このデータ転送を現在復号した動きベクトルに対する動き補償処理(現在の動き補償処理)と並行して行うことで、動き補償処理全体に要する時間の短縮が図られている。 【0009】 図8は特許文献1に開示された動き補償処理方法で次参照領域を仮定する方法の説明図である。次参照領域を仮定する方法は図8に示すように、現在復号中の画像21において、現在復号中のマクロブロック23の現在復号された動きベクトル31と次に復号する動きベクトルとが同じであると仮定し、仮定した動きベクトル32が指す領域を次参照領域26と仮定するものである。 【0010】 この仮定によって求められる次参照領域26は、参照画像22中の現在の動きベクトル31が指し示す現在の参照領域25の右隣に隣接した領域となり、次のマクロブロック24は次参照領域26を参照して復号される。 【特許文献1】特開平11−215509号公報 【発明の開示】 【発明が解決しようとする課題】 【0011】 しかし、上述の次参照領域を仮定する方法は、近接する複数の動きベクトルの傾向を吟味していない。また、特許文献1においてデータキャッシュ13に先読みする画素データの分量は、仮定が正しかった場合に必要十分な最低限の分量か、それよりも少ない分量に限られている。 【0012】 これら2点を合わせ考えると、次参照領域が仮定よりずれる場合や、仮定から全く外れる可能性があることが容易に想像される。 【0013】 また、仮定から外れた場合やずれた場合には、データキャッシュ13に保持していない部分の画素データを主記憶12から転送する必要が生じる。仮定から全く外れてはいないものの、ずれた場合にもデータ転送を行うことになり、データキャッシュ13に参照すべきデータがない間は動き補償処理を行えず、動き補償処理の効率が悪化するという問題があった。 【0014】 そこで本発明は、動き補償処理の効率の悪化を抑える動き補償処理方法を提供することを目的とする。 【課題を解決するための手段】 【0015】 本発明の動き補償処理方法は、動き補償を用いてマクロブロック単位で圧縮符号化された画像を復号する際に用いる動き補償処理方法であって、現在復号中のマクロブロックの動きベクトルを復号する復号ステップと、前記動きベクトルが指す現在の参照領域の次に参照する次参照領域を、復号された2つ以上の動きベクトルを利用して予測する予測ステップと、この予測ステップで予測した前記次参照領域を含む前記次参照領域よりも大きい領域の画素データをこの画素データが記憶されている主記憶手段から読み出してキャッシュメモリに格納する格納ステップと、前記予測ステップ及び前記格納ステップと並行して前記現在の参照領域の画素データに対する動き補償演算を行う演算ステップとを有することを特徴とする。 【発明の効果】 【0016】 本発明の動き補償処理方法によれば、マクロブロックの動きベクトル復号後にこの動きベクトルが指す参照領域の次に参照する次参照領域を、復号された2つ以上の動きベクトルを利用して予測し、予測した次参照領域を含む次参照領域よりも大きい領域の画素データをこの画素データが記憶されている主記憶手段から読み出してキャッシュメモリに格納するので、予測が当たる確率が高く、予測とずれた場合であってもそのずれを吸収することができる。これにより、主記憶手段からデータキャッシュへのデータ転送回数を抑え、動き補償処理の効率の悪化を抑えることができる。 【0017】 また、MPEGビデオ復号処理の負荷を抑え、機器の小型化、低消費電力化、低価格化を図ることができる。 【発明を実施するための最良の形態】 【0018】 本発明の実施の一形態として、MPEGビデオ復号技術を利用したものを図面を参照して説明する。 【0019】 (実施例) 本発明の動き補償処理方法を実施する動き補償処理システムは、図7に示す従来の動き補償処理システムと同様である。図7は組み込み機器における典型的なデータパス構成を示している。 【0020】 図7に示す動き補償処理システムは、演算処理装置11と、主記憶12とから構成されている。そして、演算処理装置11は、データキャッシュ13と、データキャッシュコントローラ14と、レジスタファイル15と、演算器16とを有する。 【0021】 主記憶12は、現在復号中の画像に対し、すでに復号を終えた画像データを格納し、 動き補償の演算に利用する参照画像領域の画素データを必要に応じてデータキャッシュ13に転送する。 【0022】 データキャッシュ13は、主記憶12から供給された参照画像領域の画素データと、レジスタファイル15から供給された復号された動きベクトルを格納し、演算器16で行うデータ演算の必要に応じてレジスタファイル15にデータを供給する。また、現在復号中の画像のうち復号を終えた部分をレジスタファイル15から受け取り、順次主記憶12に供給する。 【0023】 レジスタファイル15はデータキャッシュ13から供給されたデータ演算のための各種のデータを格納し、演算器16はレジスタファイル15上のデータに対してデータ演算を行う。データ演算により生成されたデータは必要に応じてレジスタファイル15からデータキャッシュ13に供給される。 【0024】 データキャッシュコントローラ14は、レジスタファイル15/データキャッシュ13間、及びデータキャッシュ13/主記憶12間のデータのやり取りを制御し、演算器16の行うデータ演算と並列にデータ転送を行うことを可能とする。 【0025】 次に、本実施例の動き補償処理方法を図1に基づいて説明する。図1は本発明の実施例の動き補償処理方法を示すフローチャートである。 【0026】 現在のマクロブロックに対する動き補償処理を開始すると、まずステップS10では、演算器16は、現在のマクロブロックに対する動きベクトルを復号する。データキャッシュコントローラ14は、復号された現在の動きベクトルをレジスタファイル15からデータキャッシュ13に送るように制御する。 【0027】 次いで、ステップS20では、演算器16は、後述する方法で次の動きベクトルを予測し、次の動きベクトルが指す領域を次参照領域として予測する。 【0028】 そして、ステップS30では、データキャッシュコントローラ14は、次参照領域を主記憶12からデータキャッシュ13に転送するように制御する。 【0029】 一方、ステップS40では、データキャッシュコントローラ14は、現在の動きベクトルが指す現在の参照領域をデータキャッシュ13からレジスタファイル15に送るよう制御し、演算器16は、現在の参照領域を参照して現在のマクロブロックに対する動き補償演算を行う。このステップS40は、ステップS20,S30と並行して行う。 【0030】 そして、現在のマクロブロックに対する動き補償処理終了後、次のマクロブロックに対する動き補償処理を開始するためステップS10に戻り、予測した動きベクトルを復号する。次の動きベクトル及び次参照領域の予測が当たった場合には次のマクロブロックに対する動き補償処理も滞りなく進めることができる。 【0031】 ここで、ステップS20における次の動きベクトル及び次参照領域の予測について説明する。一般に、MPEG符号化、復号技術の扱う動きベクトルは周囲のブロックの動きベクトルと強い相関を示す傾向にあることが知られている。 【0032】 そこで、次に復号すべき動きベクトルの周囲の、復号を終えている動きベクトル群の傾向を調べ、傾向を反映した形で次の動きベクトルの予測を行う。この傾向を判断するには、動きベクトル群のうちの、任意の複数の動きベクトルについてそれぞれ動きベクトル同士の差分を調べて差分ベクトルを求め、この差分ベクトルが任意の閾値の範囲内にあれば同じ傾向にあると判断してよい。 【0033】 そして、差分ベクトルを用いて次の動きベクトル(これを予測ベクトルと呼ぶ)を予測する。以下に、参照する動きベクトルを近隣の動きベクトル2つとする予測ベクトル算出方法及び次参照領域を予測する方法の例を、図2〜図4に基づいて説明する。 【0034】 図2(a)は次参照領域を予測する方法の例1を示す説明図、図2(b)は予測ベクトル算出方法の例1を示す説明図である。図2(a),(b)に示す方法では、次に復号すべき動きベクトルの左隣の動きベクトル(現在復号された動きベクトル52)と、さらに左隣の復号された動きベクトル51とを参照する。 【0035】 図2(a)に示すように、現在復号中の画像41において、すでに復号された動きベクトル51、現在復号された動きベクトル52は、参照画像42中の参照領域46,47をそれぞれ参照する。それぞれ動き補償処理を行って、マクロブロック43についてはすでに復号されており、マクロブロック44が現在復号される。 【0036】 ここで、図2(b)に示すように、動きベクトル51から動きベクトル52への差分ベクトル54より、動きベクトル52と差分ベクトル54(=ベクトル54´)とのベクトル和を求め、次の動きベクトルと予測する予測ベクトル53を得る。 【0037】 そして、予測ベクトル53が指し示す領域は次参照領域48としてデータキャッシュ13に読み込まれ、次のマクロブロック45の動き補償演算を行うときに参照される。 【0038】 図3(a)は次参照領域を予測する方法の例2を示す説明図、図3(b)は予測ベクトル算出方法の例2を示す説明図である。図3(a),(b)に示す方法では、次に復号すべき動きベクトルの左隣の動きベクトル(現在復号された動きベクトル72)と、次に復号すべき動きベクトルの上方に隣接する復号された動きベクトル71を参照する。 【0039】 図3(a)に示すように、現在復号中の画像61において、すでに復号された動きベクトル71、現在復号された動きベクトル72は参照画像62の参照領域66,67をそれぞれ参照し、それぞれ動き補償処理を行って、マクロブロック63についてはすでに復号されており、マクロブロック64の領域が現在復号される。 【0040】 ここで、図3(b)に示すように、動きベクトル71から動きベクトル72への差分ベクトル74より、動きベクトル72と差分ベクトル74(=ベクトル74´)とのベクトル和を求め、次の動きベクトルと予測する予測ベクトル73を得る。 【0041】 そして、予測ベクトル73が指し示す領域は次参照領域68としてデータキャッシュ13に読み込まれ、次のマクロブロック65の動き補償演算を行うときに参照される。 【0042】 図4(a)は次参照領域を予測する方法の例3を示す説明図、図4(b)は予測ベクトル算出方法の例3を示す説明図である。図4(a),(b)に示す方法では、次に復号すべき動きベクトルの上方に隣接する動きベクトル91と、動きベクトル91の右隣に隣接する動きベクトル92を参照する。 【0043】 図4(a)に示すように、現在復号中の画像81において、すでに復号された動きベクトル91,92は参照画像82の参照領域86,87をそれぞれ参照し、それぞれ動き補償処理を行ってマクロブロック83,84が復号される。 【0044】 ここで、図4(b)に示すように、動きベクトル91から動きベクトル92への差分ベクトル94より、動きベクトル92と差分ベクトル94(=ベクトル94´)とのベクトル和を求め、次の動きベクトルと予測する予測ベクトル93を得る。 【0045】 そして、予測ベクトル93が指し示す領域は次参照領域88としてデータキャッシュ13に読み込まれ、次のマクロブロック85の動き補償演算を行うときに参照される。 【0046】 なお、次の動きベクトルの予測に用いる周囲の動きベクトルについては、以上のように近接する2つのベクトルを利用してその差分ベクトルを用いて行っても良いし、または3つ以上のベクトルを利用してそれぞれの差分ベクトルを調べて行っても良い。また、予測ベクトルの求め方については、次に復号すべきベクトルからの距離に応じた重み付けを行って複数の動きベクトルとその差分ベクトルから求めても良い。 【0047】 また、データキャッシュ13に読み込む画素データの分量は予測された領域よりも大きめにすれば、実際の参照領域が予測とずれた場合でもそのずれをすべて吸収できる確率が高くなる。 【0048】 参照領域のデータ量は対象とするMPEG技術の種類等により異なり、MPEG−4 AVCの場合、動き補償処理の参照領域はマクロブロックおよびその周辺画素を合わせたものが必要となる。図5は参照領域の一例を示す説明図、図6はデータキャッシュに読み込む領域の一例を示す説明図である。 【0049】 輝度成分でマクロブロックサイズが16×16画素の場合、図5に示すように、マクロブロック101と、マクロブロック101の左側と上側にさらに3画素ずつ、左側と下側に2画素ずつの合わせて21×21画素の周辺画素が参照領域102として必要である。 なお、この場合、色差成分ではマクロブロックサイズでは8×8画素、参照領域は13×13画素となる。参照領域102の画素値は動き補償処理においてマクロブロック101の1/2精度画素、1/4精度画素それぞれの画素値を算出する際に必要となる。 【0050】 このような大きさの予測された参照領域102に対し、例えば図6に示すように、予測された参照領域102を含む範囲32×21画素の領域を転送領域103としてデータキャッシュ13に読み込んでも良い。これは横方向がマクロブロック2個分に相当する。 【0051】 このように本実施例の動き補償処理方法によれば、復号された2つ以上の動きベクトルから求めた予測ベクトルが指す領域を次参照領域として予測し、予測した次参照領域を含む次参照領域よりも大きい領域の画素データをキャッシュメモリ13に格納するので、予測が当たる確率が高く、予測とずれた場合であってもそのずれを吸収することができる。これにより、主記憶12からデータキャッシュ13へのデータ転送回数を抑え、動き補償処理の効率の悪化を抑えることができる。 【0052】 また、MPEGビデオ復号処理の負荷を抑え、機器の小型化、低消費電力化、低価格化を図ることができる。 【図面の簡単な説明】 【0053】 【図1】本発明の実施例の動き補償処理方法を示すフローチャートである。 【図2】(a)は次参照領域を予測する方法の例1を示す説明図、(b)は予測ベクトル算出方法の例1を示す説明図である。 【図3】(a)は次参照領域を予測する方法の例2を示す説明図、(b)は予測ベクトル算出方法の例2を示す説明図である。 【図4】(a)は次参照領域を予測する方法の例3を示す説明図、(b)は予測ベクトル算出方法の例3を示す説明図である。 【図5】参照領域の一例を示す説明図である。 【図6】データキャッシュに読み込む領域の一例を示す説明図である。 【図7】特許文献1に開示された動き補償処理システムを示すブロック図である。 【図8】特許文献1に開示された動き補償処理方法で次参照領域を仮定する方法の説明図である。 【符号の説明】 【0054】 11 演算処理装置 12 主記憶 13 データキャッシュ 14 データキャッシュコントローラ 15 レジスタファイル 16 演算器 21,41,61,81 現在復号中の画像 22,42,62,82 参照画像 23,24,43,44,45,63,64,65,83,84,85,101 マクロブロック 25 現在の参照領域 26,48,68,88 次参照領域 31,32,51,52,71,72,91,92 動きベクトル 46,47,66,67,86,87,102 参照領域 53,73,93 予測ベクトル 54,74,94 差分ベクトル 54´,74´,94´ ベクトル 103 転送領域
|
| 【出願人】 |
【識別番号】000004329 【氏名又は名称】日本ビクター株式会社 【住所又は居所】神奈川県横浜市神奈川区守屋町3丁目12番地
|
| 【出願日】 |
平成17年3月28日(2005.3.28) |
| 【代理人】 |
【識別番号】100083806 【弁理士】 【氏名又は名称】三好 秀和
【識別番号】100101247 【弁理士】 【氏名又は名称】高橋 俊一
|
| 【公開番号】 |
特開2006−279330(P2006−279330A) |
| 【公開日】 |
平成18年10月12日(2006.10.12) |
| 【出願番号】 |
特願2005−92992(P2005−92992) |
|