(57)【要約】【課題】  圧縮符号化された動画像の復号に用いる動き補償処理の効率の悪化を抑える。【解決手段】  現在復号されるマクロブロック４４の次に復号されるマクロブロック４５の動きベクトルを、復号された動きベクトル５１，５２の差分ベクトル５４を利用して予測し、予測ベクトル５３が指し示す領域を次参照領域４８として予測し、次参照領域４８より大きい領域の画素データをデータキャッシュに格納する。【選択図】  図２
2006279330.tif 000002
【特許請求の範囲】
【請求項１】
動き補償を用いてマクロブロック単位で圧縮符号化された画像を復号する際に用いる動き補償処理方法であって、
現在復号中のマクロブロックの動きベクトルを復号する復号ステップと、
前記動きベクトルが指す現在の参照領域の次に参照する次参照領域を、復号された２つ以上の動きベクトルを利用して予測する予測ステップと、
この予測ステップで予測した前記次参照領域を含む前記次参照領域よりも大きい領域の画素データをこの画素データが記憶されている主記憶手段から読み出してキャッシュメモリに格納する格納ステップと、
前記予測ステップ及び前記格納ステップと並行して前記現在の参照領域の画素データに対する動き補償演算を行う演算ステップと
を有することを特徴とする動き補償処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮符号化された画像の復号に用いる動き補償処理方法に関する。
【背景技術】
【０００２】
近年、画像信号を圧縮して情報量を削減する方法として種々の画像圧縮技術が提案されており、その代表的なものとしてＨ．２６４｜ＭＰＥＧ−４  ＡＶＣ（ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ．２６４｜ＩＳＯ／ＩＥＣ  １４４９６−１０  ＭＰＥＧ−４  Ｐａｒｔ１０  Ａｄｖａｎｃｅｄ Ｖｉｄｅｏ Ｃｏｄｉｎｇ）などを始めとするＭＰＥＧビデオ技術がある。
【０００３】
ＭＰＥＧビデオ技術においては、動画像信号の時間冗長性を削減するために動き補償（ＭＣ：Ｍｏｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ）処理が行われるが、この動き補償処理は処理量が多く、長時間を要する。
【０００４】
従来、動き補償処理に要する時間を短縮する動き補償処理方法として、特許文献１に開示されたものがある。図７は特許文献１に開示された動き補償処理システムを示すブロック図である。
【０００５】
図７に示す動き補償処理システムによれば、主記憶１２に格納された画像データの一部は参照画像としてデータキャッシュ１３へ転送され、データキャッシュ１３からレジスタファイル１５へ供給される。そして、レジスタファイル１５上のデータは演算器１６により動き補償処理演算される。
【０００６】
データキャッシュコントローラ１４は主記憶１２の一部をデータキャッシュ１３に反映する制御を行う。また、データキャッシュコントローラ１４は、レジスタファイル１５からアドレスを与えることで、主記憶１２からデータキャッシュ１３へデータをプリロードする機能を有する。
【０００７】
特許文献１には、ＭＰＥＧビデオ復号技術を利用した組み込み機器への実施例において、図７に示す主記憶１２から演算処理装置１１上のデータキャッシュ１３へのデータ転送は、データキャッシュ１３からレジスタファイル１５へのデータ転送よりも長く時間を要することが述べられている。したがって、大容量だがアクセスの低速な主記憶１２と、アクセスは高速だが小容量のデータキャッシュ１３とを効率よく使い分ける必要がある。
【０００８】
特許文献１に開示された動き補償処理方法では、現在の動き補償処理に続く次の動き補償処理で参照する参照領域（以下、次参照領域と呼ぶ）を、現在復号した動きベクトルから仮定し、仮定した次参照領域の画素データを主記憶１２からデータキャッシュ１３へと予め転送するプリロードを行う。このデータ転送を現在復号した動きベクトルに対する動き補償処理（現在の動き補償処理）と並行して行うことで、動き補償処理全体に要する時間の短縮が図られている。
【０００９】
図８は特許文献１に開示された動き補償処理方法で次参照領域を仮定する方法の説明図である。次参照領域を仮定する方法は図８に示すように、現在復号中の画像２１において、現在復号中のマクロブロック２３の現在復号された動きベクトル３１と次に復号する動きベクトルとが同じであると仮定し、仮定した動きベクトル３２が指す領域を次参照領域２６と仮定するものである。
【００１０】
この仮定によって求められる次参照領域２６は、参照画像２２中の現在の動きベクトル３１が指し示す現在の参照領域２５の右隣に隣接した領域となり、次のマクロブロック２４は次参照領域２６を参照して復号される。
【特許文献１】特開平１１−２１５５０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、上述の次参照領域を仮定する方法は、近接する複数の動きベクトルの傾向を吟味していない。また、特許文献１においてデータキャッシュ１３に先読みする画素データの分量は、仮定が正しかった場合に必要十分な最低限の分量か、それよりも少ない分量に限られている。
【００１２】
これら２点を合わせ考えると、次参照領域が仮定よりずれる場合や、仮定から全く外れる可能性があることが容易に想像される。
【００１３】
また、仮定から外れた場合やずれた場合には、データキャッシュ１３に保持していない部分の画素データを主記憶１２から転送する必要が生じる。仮定から全く外れてはいないものの、ずれた場合にもデータ転送を行うことになり、データキャッシュ１３に参照すべきデータがない間は動き補償処理を行えず、動き補償処理の効率が悪化するという問題があった。
【００１４】
そこで本発明は、動き補償処理の効率の悪化を抑える動き補償処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の動き補償処理方法は、動き補償を用いてマクロブロック単位で圧縮符号化された画像を復号する際に用いる動き補償処理方法であって、現在復号中のマクロブロックの動きベクトルを復号する復号ステップと、前記動きベクトルが指す現在の参照領域の次に参照する次参照領域を、復号された２つ以上の動きベクトルを利用して予測する予測ステップと、この予測ステップで予測した前記次参照領域を含む前記次参照領域よりも大きい領域の画素データをこの画素データが記憶されている主記憶手段から読み出してキャッシュメモリに格納する格納ステップと、前記予測ステップ及び前記格納ステップと並行して前記現在の参照領域の画素データに対する動き補償演算を行う演算ステップとを有することを特徴とする。
【発明の効果】
【００１６】
本発明の動き補償処理方法によれば、マクロブロックの動きベクトル復号後にこの動きベクトルが指す参照領域の次に参照する次参照領域を、復号された２つ以上の動きベクトルを利用して予測し、予測した次参照領域を含む次参照領域よりも大きい領域の画素データをこの画素データが記憶されている主記憶手段から読み出してキャッシュメモリに格納するので、予測が当たる確率が高く、予測とずれた場合であってもそのずれを吸収することができる。これにより、主記憶手段からデータキャッシュへのデータ転送回数を抑え、動き補償処理の効率の悪化を抑えることができる。
【００１７】
また、ＭＰＥＧビデオ復号処理の負荷を抑え、機器の小型化、低消費電力化、低価格化を図ることができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施の一形態として、ＭＰＥＧビデオ復号技術を利用したものを図面を参照して説明する。
【００１９】
（実施例）
本発明の動き補償処理方法を実施する動き補償処理システムは、図７に示す従来の動き補償処理システムと同様である。図７は組み込み機器における典型的なデータパス構成を示している。
【００２０】
図７に示す動き補償処理システムは、演算処理装置１１と、主記憶１２とから構成されている。そして、演算処理装置１１は、データキャッシュ１３と、データキャッシュコントローラ１４と、レジスタファイル１５と、演算器１６とを有する。
【００２１】
主記憶１２は、現在復号中の画像に対し、すでに復号を終えた画像データを格納し、
動き補償の演算に利用する参照画像領域の画素データを必要に応じてデータキャッシュ１３に転送する。
【００２２】
データキャッシュ１３は、主記憶１２から供給された参照画像領域の画素データと、レジスタファイル１５から供給された復号された動きベクトルを格納し、演算器１６で行うデータ演算の必要に応じてレジスタファイル１５にデータを供給する。また、現在復号中の画像のうち復号を終えた部分をレジスタファイル１５から受け取り、順次主記憶１２に供給する。
【００２３】
レジスタファイル１５はデータキャッシュ１３から供給されたデータ演算のための各種のデータを格納し、演算器１６はレジスタファイル１５上のデータに対してデータ演算を行う。データ演算により生成されたデータは必要に応じてレジスタファイル１５からデータキャッシュ１３に供給される。
【００２４】
データキャッシュコントローラ１４は、レジスタファイル１５／データキャッシュ１３間、及びデータキャッシュ１３／主記憶１２間のデータのやり取りを制御し、演算器１６の行うデータ演算と並列にデータ転送を行うことを可能とする。
【００２５】
次に、本実施例の動き補償処理方法を図１に基づいて説明する。図１は本発明の実施例の動き補償処理方法を示すフローチャートである。
【００２６】
現在のマクロブロックに対する動き補償処理を開始すると、まずステップＳ１０では、演算器１６は、現在のマクロブロックに対する動きベクトルを復号する。データキャッシュコントローラ１４は、復号された現在の動きベクトルをレジスタファイル１５からデータキャッシュ１３に送るように制御する。
【００２７】
次いで、ステップＳ２０では、演算器１６は、後述する方法で次の動きベクトルを予測し、次の動きベクトルが指す領域を次参照領域として予測する。
【００２８】
そして、ステップＳ３０では、データキャッシュコントローラ１４は、次参照領域を主記憶１２からデータキャッシュ１３に転送するように制御する。
【００２９】
一方、ステップＳ４０では、データキャッシュコントローラ１４は、現在の動きベクトルが指す現在の参照領域をデータキャッシュ１３からレジスタファイル１５に送るよう制御し、演算器１６は、現在の参照領域を参照して現在のマクロブロックに対する動き補償演算を行う。このステップＳ４０は、ステップＳ２０，Ｓ３０と並行して行う。
【００３０】
そして、現在のマクロブロックに対する動き補償処理終了後、次のマクロブロックに対する動き補償処理を開始するためステップＳ１０に戻り、予測した動きベクトルを復号する。次の動きベクトル及び次参照領域の予測が当たった場合には次のマクロブロックに対する動き補償処理も滞りなく進めることができる。
【００３１】
ここで、ステップＳ２０における次の動きベクトル及び次参照領域の予測について説明する。一般に、ＭＰＥＧ符号化、復号技術の扱う動きベクトルは周囲のブロックの動きベクトルと強い相関を示す傾向にあることが知られている。
【００３２】
そこで、次に復号すべき動きベクトルの周囲の、復号を終えている動きベクトル群の傾向を調べ、傾向を反映した形で次の動きベクトルの予測を行う。この傾向を判断するには、動きベクトル群のうちの、任意の複数の動きベクトルについてそれぞれ動きベクトル同士の差分を調べて差分ベクトルを求め、この差分ベクトルが任意の閾値の範囲内にあれば同じ傾向にあると判断してよい。
【００３３】
そして、差分ベクトルを用いて次の動きベクトル（これを予測ベクトルと呼ぶ）を予測する。以下に、参照する動きベクトルを近隣の動きベクトル２つとする予測ベクトル算出方法及び次参照領域を予測する方法の例を、図２〜図４に基づいて説明する。
【００３４】
図２（ａ）は次参照領域を予測する方法の例１を示す説明図、図２（ｂ）は予測ベクトル算出方法の例１を示す説明図である。図２（ａ），（ｂ）に示す方法では、次に復号すべき動きベクトルの左隣の動きベクトル（現在復号された動きベクトル５２）と、さらに左隣の復号された動きベクトル５１とを参照する。
【００３５】
図２（ａ）に示すように、現在復号中の画像４１において、すでに復号された動きベクトル５１、現在復号された動きベクトル５２は、参照画像４２中の参照領域４６，４７をそれぞれ参照する。それぞれ動き補償処理を行って、マクロブロック４３についてはすでに復号されており、マクロブロック４４が現在復号される。
【００３６】
ここで、図２（ｂ）に示すように、動きベクトル５１から動きベクトル５２への差分ベクトル５４より、動きベクトル５２と差分ベクトル５４（＝ベクトル５４´）とのベクトル和を求め、次の動きベクトルと予測する予測ベクトル５３を得る。
【００３７】
そして、予測ベクトル５３が指し示す領域は次参照領域４８としてデータキャッシュ１３に読み込まれ、次のマクロブロック４５の動き補償演算を行うときに参照される。
【００３８】
図３（ａ）は次参照領域を予測する方法の例２を示す説明図、図３（ｂ）は予測ベクトル算出方法の例２を示す説明図である。図３（ａ），（ｂ）に示す方法では、次に復号すべき動きベクトルの左隣の動きベクトル（現在復号された動きベクトル７２）と、次に復号すべき動きベクトルの上方に隣接する復号された動きベクトル７１を参照する。
【００３９】
図３（ａ）に示すように、現在復号中の画像６１において、すでに復号された動きベクトル７１、現在復号された動きベクトル７２は参照画像６２の参照領域６６，６７をそれぞれ参照し、それぞれ動き補償処理を行って、マクロブロック６３についてはすでに復号されており、マクロブロック６４の領域が現在復号される。
【００４０】
ここで、図３（ｂ）に示すように、動きベクトル７１から動きベクトル７２への差分ベクトル７４より、動きベクトル７２と差分ベクトル７４（＝ベクトル７４´）とのベクトル和を求め、次の動きベクトルと予測する予測ベクトル７３を得る。
【００４１】
そして、予測ベクトル７３が指し示す領域は次参照領域６８としてデータキャッシュ１３に読み込まれ、次のマクロブロック６５の動き補償演算を行うときに参照される。
【００４２】
図４（ａ）は次参照領域を予測する方法の例３を示す説明図、図４（ｂ）は予測ベクトル算出方法の例３を示す説明図である。図４（ａ），（ｂ）に示す方法では、次に復号すべき動きベクトルの上方に隣接する動きベクトル９１と、動きベクトル９１の右隣に隣接する動きベクトル９２を参照する。
【００４３】
図４（ａ）に示すように、現在復号中の画像８１において、すでに復号された動きベクトル９１，９２は参照画像８２の参照領域８６，８７をそれぞれ参照し、それぞれ動き補償処理を行ってマクロブロック８３，８４が復号される。
【００４４】
ここで、図４（ｂ）に示すように、動きベクトル９１から動きベクトル９２への差分ベクトル９４より、動きベクトル９２と差分ベクトル９４（＝ベクトル９４´）とのベクトル和を求め、次の動きベクトルと予測する予測ベクトル９３を得る。
【００４５】
そして、予測ベクトル９３が指し示す領域は次参照領域８８としてデータキャッシュ１３に読み込まれ、次のマクロブロック８５の動き補償演算を行うときに参照される。
【００４６】
なお、次の動きベクトルの予測に用いる周囲の動きベクトルについては、以上のように近接する２つのベクトルを利用してその差分ベクトルを用いて行っても良いし、または３つ以上のベクトルを利用してそれぞれの差分ベクトルを調べて行っても良い。また、予測ベクトルの求め方については、次に復号すべきベクトルからの距離に応じた重み付けを行って複数の動きベクトルとその差分ベクトルから求めても良い。
【００４７】
また、データキャッシュ１３に読み込む画素データの分量は予測された領域よりも大きめにすれば、実際の参照領域が予測とずれた場合でもそのずれをすべて吸収できる確率が高くなる。
【００４８】
参照領域のデータ量は対象とするＭＰＥＧ技術の種類等により異なり、ＭＰＥＧ−４  ＡＶＣの場合、動き補償処理の参照領域はマクロブロックおよびその周辺画素を合わせたものが必要となる。図５は参照領域の一例を示す説明図、図６はデータキャッシュに読み込む領域の一例を示す説明図である。
【００４９】
輝度成分でマクロブロックサイズが１６×１６画素の場合、図５に示すように、マクロブロック１０１と、マクロブロック１０１の左側と上側にさらに３画素ずつ、左側と下側に２画素ずつの合わせて２１×２１画素の周辺画素が参照領域１０２として必要である。  なお、この場合、色差成分ではマクロブロックサイズでは８×８画素、参照領域は１３×１３画素となる。参照領域１０２の画素値は動き補償処理においてマクロブロック１０１の１／２精度画素、１／４精度画素それぞれの画素値を算出する際に必要となる。
【００５０】
このような大きさの予測された参照領域１０２に対し、例えば図６に示すように、予測された参照領域１０２を含む範囲３２×２１画素の領域を転送領域１０３としてデータキャッシュ１３に読み込んでも良い。これは横方向がマクロブロック２個分に相当する。
【００５１】
このように本実施例の動き補償処理方法によれば、復号された２つ以上の動きベクトルから求めた予測ベクトルが指す領域を次参照領域として予測し、予測した次参照領域を含む次参照領域よりも大きい領域の画素データをキャッシュメモリ１３に格納するので、予測が当たる確率が高く、予測とずれた場合であってもそのずれを吸収することができる。これにより、主記憶１２からデータキャッシュ１３へのデータ転送回数を抑え、動き補償処理の効率の悪化を抑えることができる。
【００５２】
また、ＭＰＥＧビデオ復号処理の負荷を抑え、機器の小型化、低消費電力化、低価格化を図ることができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例の動き補償処理方法を示すフローチャートである。
【図２】（ａ）は次参照領域を予測する方法の例１を示す説明図、（ｂ）は予測ベクトル算出方法の例１を示す説明図である。
【図３】（ａ）は次参照領域を予測する方法の例２を示す説明図、（ｂ）は予測ベクトル算出方法の例２を示す説明図である。
【図４】（ａ）は次参照領域を予測する方法の例３を示す説明図、（ｂ）は予測ベクトル算出方法の例３を示す説明図である。
【図５】参照領域の一例を示す説明図である。
【図６】データキャッシュに読み込む領域の一例を示す説明図である。
【図７】特許文献１に開示された動き補償処理システムを示すブロック図である。
【図８】特許文献１に開示された動き補償処理方法で次参照領域を仮定する方法の説明図である。
【符号の説明】
【００５４】
１１    演算処理装置
１２    主記憶
１３    データキャッシュ
１４    データキャッシュコントローラ
１５    レジスタファイル
１６    演算器
２１，４１，６１，８１    現在復号中の画像
２２，４２，６２，８２    参照画像
２３，２４，４３，４４，４５，６３，６４，６５，８３，８４，８５，１０１    マクロブロック
２５    現在の参照領域
２６，４８，６８，８８    次参照領域
３１，３２，５１，５２，７１，７２，９１，９２    動きベクトル
４６，４７，６６，６７，８６，８７，１０２    参照領域
５３，７３，９３    予測ベクトル
５４，７４，９４    差分ベクトル
５４´，７４´，９４´    ベクトル
１０３    転送領域
【図１】
2006279330.tif 000003
【図２】
2006279330.tif 000004
【図３】
2006279330.tif 000005
【図４】
2006279330.tif 000006
【図５】
2006279330.tif 000007
【図６】
2006279330.tif 000008
【図７】
2006279330.tif 000009
【図８】
2006279330.tif 000010