首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / Motion compensating apparatus

Motion compensating apparatus

阅读:959发布:2021-08-01

专利汇可以提供Motion compensating apparatus专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To provide a motion compensating apparatus which can reduce the number of pixels for reading out pixel data from a multi-frame memory, and can realize reduction in transmission and motion compensation in sub-pixel precision pixel generation, for efficient motion compensated pixel generation. SOLUTION: The motion compensation apparatus includes a frame memory transmission control unit 101, which with regard to a plurality of motion compensation blocks, transmits reference pixels required in motion compensation prediction collectively or on a per motion compensation block basis, from a multi-frame memory 104 which stores a reference picture used in inter-picture motion compensation prediction, to a local reference memory 102. COPYRIGHT: (C)2006,JPO&NCIPI,下面是Motion compensating apparatus专利的具体信息内容。

  • 動画像を構成するピクチャ間で動き補償をブロック単位で行う動き補償装置であって、
    参照ピクチャを記憶するピクチャメモリと、
    前記ピクチャメモリから転送される前記参照ピクチャの参照画素データを記憶する局所メモリと、
    複数の前記ブロックの動き補償で必要とされる参照領域を含む転送領域を特定する領域特定手段と、
    前記領域特定手段によって特定された前記転送領域の参照画素データを前記ピクチャメモリから前記局所メモリへ転送する参照画素転送手段と、
    前記局所メモリに記憶されている前記参照画素データを用いて動き補償を行う動き補償手段と を備えることを特徴とする動き補償装置。
  • 前記参照画素転送手段は、前記転送領域の画素数に基づいて前記転送領域を一括で転送するか、または前記ブロック毎に転送するかを切り替える ことを特徴とする請求項1記載の動き補償装置。
  • 前記参照画素転送手段は、前記転送領域の画素数が所定の閾値を超えない場合には、前記転送領域の参照画素データを一括で転送し、前記転送領域の画素数が所定の閾値を超える場合には、前記転送領域の参照画素データを前記ブロック毎に転送する ことを特徴とする請求項2記載の動き補償装置。
  • 前記参照画素転送手段は、前記所定の閾値として、前記ブロックの一つにおいて動き補償で必要とされる参照領域に、前記ピクチャメモリと前記局所メモリとの間の転送単位の制限によって動き補償では必要ないが同時に転送される不要領域を加えた領域の画素数を、一括で処理する候補となっている複数の前記ブロックについて総和した値以上の値を用いる ことを特徴とする請求項3記載の動き補償装置。
  • 前記参照画素転送手段は、複数の前記ブロックが同じ参照ピクチャを参照するか否かを判定し、同じ参照ピクチャを参照しない場合には、前記転送領域の参照画素データを前記ブロック毎に転送する ことを特徴とする請求項1記載の動き補償装置。
  • 前記領域特定手段は、複数の前記ブロックに対応する動きベクトル、ブロックサイズ、および小数精度画素生成方法の少なくとも1つに基づいて前記転送領域を特定する ことを特徴とする請求項1記載の動き補償装置。
  • 前記領域特定手段は、前記転送領域を少なくとも1つの矩形領域として特定する ことを特徴とする請求項1記載の動き補償装置。
  • 前記局所メモリは、前記ピクチャメモリから転送された前記転送領域に含まれる前記参照領域の参照画素データのみを記憶する ことを特徴とする請求項1記載の動き補償装置。
  • 前記参照画素転送手段は、前記転送領域の中で前記参照領域を含む、前記ピクチャメモリと前記局所メモリとの間の転送単位のみを実転送する ことを特徴とする請求項1記載の動き補償装置。
  • 前記動き補償手段は、さらに、前記局所メモリに記憶されている前記参照画素データを用いて小数精度画素データ生成のためのフィルタ演算を行う ことを特徴とする請求項1記載の動き補償装置。
  • 前記動き補償手段は、前記局所メモリに記憶されている前記参照画素データに対して、前記転送領域毎に一括で前記フィルタ演算を行う ことを特徴とする請求項10記載の動き補償装置。
  • 前記動き補償手段は、前記局所メモリに記憶されている前記参照画素データに対して、いずれかの前記ブロックで小数画素精度の動き補償が必要とされるフィルタ必要領域に関してのみフィルタ演算を行う ことを特徴とする請求項11記載の動き補償装置。
  • 前記動き補償装置は、さらに、
    前記ピクチャメモリと前記局所メモリとの間に小数精度画素データ生成のためのフィルタ演算の一部を行う第1フィルタ演算手段を備え、
    前記動き補償手段は、前記第1フィルタ演算手段でフィルタ演算を行わない残りのフィルタ演算を行う ことを特徴とする請求項10記載の動き補償装置。
  • 動画像を構成するピクチャ間で動き補償をブロック単位で行う動き補償方法であって、
    複数の前記ブロックの動き補償で必要とされる参照領域を含む転送領域を特定する領域特定ステップと、
    前記領域特定ステップにおいて特定された前記転送領域の参照画素データを、参照ピクチャを記憶するピクチャメモリから局所メモリへ転送する参照画素転送ステップと、
    前記局所メモリに記憶されている前記参照画素データを用いて動き補償を行う動き補償ステップと を含むことを特徴とする動き補償方法。
  • 動画像を構成するピクチャ間で動き補償をブロック単位で行うための集積回路であって、
    参照ピクチャを記憶する外部メモリから転送される前記参照ピクチャの参照画素データを記憶する局所メモリと、
    複数の前記ブロックの動き補償で必要とされる参照領域を含む転送領域を特定する領域特定手段と、
    前記領域特定手段によって特定された前記転送領域の参照画素データを前記外部メモリから前記局所メモリへ転送する参照画素転送手段と、
    前記局所メモリに記憶されている前記参照画素データを用いて動き補償を行う動き補償手段と を備えることを特徴とする集積回路。
  • 说明书全文

    本発明は、ピクチャ間で動き補償予測を行う動き補償装置に関する。

    近年、マルチメディアアプリケーションの発展に伴い、画像・音声・テキストなど、あらゆるメディアの情報を統一的に扱うことが一般的になってきた。 この時、全てのメディアをディジタル化することにより、統一的にメディアを扱うことが可能になる。 しかしながら、ディジタル化された画像は膨大なデータ量を持つため、蓄積・伝送のためには、画像の情報圧縮技術が不可欠である。

    その一方で、圧縮した画像データを相互運用するためには、圧縮技術の標準化も重要である。 画像圧縮技術の標準規格としては、例えば、ITU‐T(国際電気通信連合 電気通信標準化部門)のH. 261、H. 263や、ISO/IEC(国際標準化機構 国際電気標準会議)のMPEG(Moving Picture Experts Group)−1、MPEG−2、MPEG−4など、また、ITU−TとMPEGの合同であるJVT(Joint Video Team)により現在標準化が進められているH. 264(MPEG−4AVC)がある。

    一般に動画像の符号化では、時間方向および空間方向の冗長性を削減することによって情報量の圧縮を行う。 そこで、時間的な冗長性の削減を目的とする画面間予測符号化では、前方または後方のピクチャを参照してブロック単位で動きの検出および予測画像の作成を行い、得られた予測画像と符号化対象ピクチャとの差分値に対して符号化を行う。 ここで、ピクチャとは1枚の画面を表す用語であり、プログレッシブ画像ではフレームを意味し、インタレース画像ではフレームもしくはフィールドを意味する。 ここで、インタレース画像とは、1つのフレームが時刻の異なる2つのフィールドから構成される画像である。 インタレース画像の符号化や復号化処理においては、1つのフレームをフレームのまま処理したり、2つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。

    参照画像を持たず画面内予測符号化を行うものをIピクチャと呼ぶ。 また、1枚の参照画像のみを参照し画面間予測符号化を行うものをPピクチャと呼ぶ。 また、同時に2枚の参照画像を参照して画面間予測符号化を行うことができるものをBピクチャと呼ぶ。 Bピクチャは表示時間が前方もしくは後方から任意の組み合わせとして2枚のピクチャを参照することが可能である。 参照画像(参照ピクチャ)は符号化の基本単位であるマクロブロックごとに指定することができるが、符号化を行ったビットストリーム中に先に記述される方の参照ピクチャを第1参照ピクチャ、後に記述される方を第2参照ピクチャとして区別する。 ただし、これらのピクチャを符号化する場合の条件として、参照するピクチャが既に符号化されている必要がある。

    Pピクチャ又はBピクチャの符号化には、動き補償画面間予測符号化が用いられている。 動き補償画面間予測符号化とは、画面間予測符号化に動き補償を適用した符号化方式である。 動き補償とは、単純に参照フレームの画素値から予測するのではなく、ピクチャ内の各部の動き量(以下、これを「動きベクトル」と呼ぶ。)を検出し、当該動き量を考慮した予測を行うことにより予測精度を向上すると共に、データ量を減らす方式である。 例えば、符号化対象ピクチャの動きベクトルを検出し、その動きベクトルの分だけシフトした予測値と符号化対象ピクチャとの予測残差を符号化することによりデータ量を減している。 この方式の場合には、復号化の際に動きベクトルの情報が必要になるため、動きベクトルも符号化されて記録又は伝送される。

    動きベクトルはマクロブロック単位で検出されており、具体的には、符号化対象ピクチャ側のマクロブロックを固定しておき、参照ピクチャ側のマクロブロックを探索範囲内で移動させ、基準ブロックと最も似通った参照ブロックの位置を見つけることにより、動きベクトルが検出される。

    図17は従来の画面間予測符号化装置の構成を示すブロック図である。
    この画面間予測符号化装置は、動き検出部401、マルチフレームメモリ402、減算部403、減算部404、動き補償部405、符号化部406、加算部407、動きベクトルメモリ408、および動きベクトル予測部409を備えている。

    動き検出部401は、マルチフレームメモリ402から出される動き検出参照画素MEpelと画面信号Vinとを比較し、動きベクトルMVと参照ピクチャ番号RefNoを出力する。 参照ピクチャ番号RefNoは、複数の参照画像の中から選択された、対象画像で参照する参照画像を特定する識別信号である。 動きベクトルMVは、動きベクトルメモリ408に一時的に記憶されたのち近傍動きベクトルPrevMVとして動きベクトル予測部409へ出力される。 動きベクトル予測部409は、入力された近傍動きベクトルPrevMVを参照して予測動きベクトルPredMVを予測する。 減算部404は動きベクトルMVから予測動きベクトルPredMVを減算し、その差を動きベクトル予測差分DifMVとして出力する。

    一方、マルチフレームメモリ402は、参照ピクチャ番号RefNoおよび動きベクトルMVで示される画素を動き補償参照画素MCpel1として出力する。 動き補償部405は、小数画素精度の参照画素を生成し、参照画面画素MCpel2として出力する。 減算部403は、画面信号Vinから参照画面画素MCpel2を減算し、画面予測誤差DifPelを出力する。

    符号化部406は、画面予測誤差DifPelと動きベクトル予測差分DifMVと参照ピクチャ番号RefNoを可変長符号化し、符号化信号Strを出力する。 なお、符号化時に画面予測誤差の復号化結果である復号画面予測誤差RecDifPelも同時に出力する。 復号画面予測誤差RecDifPelは、画面予測誤差DifPelに符号化誤差が重畳されたものであり、画面間予測復号化装置で符号化信号Strを復号化して得られる画面間予測誤差と一致する。

    加算部407は、参照画面画素MCpel2に復号画面予測誤差RecDifPelを加算し、復号画面RecPelとしてマルチフレームメモリ402に記憶される。 但し、マルチフレームメモリ402の容量を有効に利用するため、マルチフレームメモリ402に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ402に記憶する必要が無い画面の復号画面RecPelはマルチフレームメモリ402に記憶されない。

    なお、符号化の処理は16×16画素のマクロブロックと呼ばれる単位で行われ、H. 264では、動き補償のブロックは、4×4、4×8、8×4、8×8、8×16、16×8、16×16の7通りの動き補償のブロック(以下、簡単のため小ブロックと記載することもある。)サイズからマクロブロック単位で適切なブロックサイズを選択して符号化に使用する。 ここで、マクロブロックは、まずマクロブロックパーティション(8×8のサイズが4つ、8×16のサイズが2つ、16×8のサイズが2つ、もしくは16×16)のサイズの分割、また、8×8のマクロブロックパーティションに関してはさらに、サブマクロブロックパーティション(4×4のサイズが4つ、4×8のサイズが2つ、8×4のサイズが2つ、もしくは8×8)のサイズに2段階で小ブロックに分割することができる。

    図18は従来の画面間予測復号化装置の構成を示すブロック図である。 なお、同図において、図17に示す画面間予測符号化装置と同様の部分については同じ符号を付し、その説明を省略する。

    図18に示す従来の画面間予測復号化装置は、図17に示す従来の画面間予測符号化装置で符号化された符号化信号Strを復号化して復号画面信号Voutを出力する装置であり、マルチフレームメモリ402、動き補償部405、加算部407、加算部501、動きベクトルメモリ408、動きベクトル予測部409、および復号化部502を備えている。

    復号化部502は、符号化信号Strを復号化し、復号画面予測誤差RecDifPel、動きベクトル予測差分DifMV、および参照ピクチャ番号RefNoを出力する。 加算部501は、動きベクトル予測部409から出力される予測動きベクトルPredMVと動きベクトル予測差分DifMVを加算し、動きベクトルMVを復号する。

    マルチフレームメモリ402は、参照ピクチャ番号RefNoおよび動きベクトルMVで示される画素を動き補償参照画素MCpel1として出力する。 動き補償部405は、小数画素精度の参照画素を生成し、参照画面画素MCpel2として出力する。 加算部407は、参照画面画素MCpel2に復号画面予測誤差RecDifPelを加算し、復号画面RecPelとしてマルチフレームメモリ402へ記憶する。 但し、マルチフレームメモリ402の容量を有効に利用するため、マルチフレームメモリ402に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ402に記憶する必要が無い画面の復号画面RecPelはマルチフレームメモリ402に記憶されない。 以上のようにして、復号画面信号Vout、すなわち復号画面RecPelを符号化信号Strから正しく復号化することができる。

    ところで、H. 264規格では1/4画素までの単位で動き補償を行うことが許可されている(MPEG−4 Simple Profileでは1/2画素まで)。 この際、H. 264規格ではその線形フィルタ画素補間の方法として6タップフィルタが採用されており、1/2精度画素を周辺の6画素から求めることが決められている。 この6タップフィルタによる画素補間の方法について、図19を用いて説明する。

    図19はH. 264における輝度成分の画素補間方法を説明するための概略図である。
    画素F00、F01、F02、F03、F04、F05、F10、F11、F12、F13、F14、F15、F20、F21、F22、F23、F24、F25、F30、F31、F32、F33、F34、F35、F40、F41、F42、F43、F44、F45、F50、F51、F52、F53、F54、及びF55は整数精度画素位置の画素であり、斜線をつけた四形で表している。 ここで、画素A、B、C、D、E、F、G、H、I、J、K、L、M、N、P、Q、R、S、T、及びUは、それぞれの位置及びその画素値を表している。

    また、小数精度画素位置の画素に関しては、白抜きの四角で表している。 画素aa、bb、b、s、gg、及びhhは平方向に、cc、dd、h、m、ee及びffは垂直方向に6タップフィルタを行った中間計算画素値及びその位置を示している。

    画素a、c、d、e、f、g、i、j、k、n、p、q及びrは各小数精度画素位置における2回目の6タップフィルタと線形補間を行った画素値及びその位置を表している。

    従って、整数精度画素の画素G、H、M及びNで囲まれる小数精度画素位置の値を求めるには、周囲6×6の画素が必要である。

    また、動き補償を行うブロック単位では、図20に示すように動き補償を行うブロックの画素が位置する領域901に対して、H. 264の輝度成分では6タップフィルタを用いるため、対象のブロックを上に2画素、下に3画素、左に2画素及び右に3画素分の水平垂直両方向に計5画素分広くした領域902の画素が必要となる。 従って、4×4、4×8、8×4、8×8、8×16、16×8及び16×16の各ブロックサイズに対して小数画素精度の動き補償を行う場合は、それぞれ9×9、9×13、13×9、13×13、13×21、21×13、21×21の画素領域が必要となる。

    一方、色差成分に関しては、小数精度画素の周囲4つの整数精度画素から線形補間で生成する。 色差成分の場合の動き補償ブロックサイズは、2×2、2×4、4×2、4×4、4×8、8×4及び8×8であり、それぞれの参照画素領域は、3×3、3×5、5×3、5×4、5×9、9×5及び9×9である(例えば、非特許文献1参照)。

    ところで、上述のように復号化処理にはマルチフレームメモリ402からの参照画素の読出しが必要であり、さらに入力される符号化データのピクチャ順序と復元されたフレーム順序とは異なることがあるので、復号画面RecPelは表示タイミングまでマルチフレームメモリ402に一旦保持させる必要がある。 これらの参照画素の読出し、復号画面RecPelの格納及びその表示などのアクセスによりマルチフレームメモリ402へのバス占有率は一般的に極めて高くなっている。

    そのため、復号化処理に必要なメモリ容量を低減するために、マルチフレームメモリを他の機能、例えばOSD(On Screen Display)等に用いるメモリとして利用しようとしても、バス占有率が高いことから兼用することが困難であると言う問題がある。

    このような課題に対しては、従来の画像復号化方法として、マルチフレームメモリ402へのアクセス回数を低減する手法が提案されている。 例えば、特許文献1には、処理対象ブロックが必要とする動き補償の参照画素領域と一つ前のブロックが必要とする参照画素領域で、共通領域を判定し共通領域以外の画素のみを更新することによりマルチフレームメモリ402へのアクセス回数を低減することが記載されている。

    特開平10−215457号公報

    " Draft ITU−T Recomendation and Final Standard of Joint Video Specification ",Joint Video Team(JVT) of ISO/IEC MPEG & ITU−T VCEG,JVT−I050,Sep. 2003 pp. 122−125

    しかしながら、圧縮効率の向上のために動き補償予測の方式が増加しているH. 264規格などでは、動き補償を行うブロック単位が輝度成分では4×4、4×8、8×4、色差成分では2×2、2×4、4×2など、極めて小さい範囲で実施することが可能となっているため共通部分が殆ど無い場合も多く生じる。

    図21は、復号対象のブロックと直前に復号するブロックが参照する画素領域の一例を示す概略図である。 図21(a)は8×8のブロック、また図21(b)は2×2のブロックの状態を表している。

    例えば図21(a)に示すように8×8のブロックサイズで復号対象のブロックが参照する領域911と、直前に復号するブロックが参照する領域912との重なり部分が領域913であり、この領域913が、動き補償部405の有する局所参照メモリの中の非更新領域となる。 ここで、参照画面上における領域911と領域912との絶対座標の差が(4,3)であって、bi−linearによる線形補間などによりフィルタタップ数が2タップである場合、水平方向の重なりが5画素、垂直方向の重なりが6画素となるため、非更新領域の画素数は30(=5×6)画素となる。

    一方、図21(b)においては、2×2のブロックサイズで復号対象のブロックが参照する領域914と、直前に復号するブロックが参照する領域915との、参照画面上における絶対座標の差が図21(a)の場合と同じく(4,3)であり、フィルタタップ数が2である場合、非更新領域として重なる画素は一つも存在しない状態となる。

    また、マルチフレームメモリ402のアクセスバス幅によっては、うまく非共通部分だけを転送することが出来ず、共通部分に関しても結局転送してしまいアクセス回数を低減することができないなどの可能性もある。 図22は、復号画面921の一部を示した一例であり、水平方向に4画素で1アクセス単位、つまり1画素は1バイトで構成されるので、4バイトバス幅のメモリで構成されている場合を示した図である。

    例えば、図22に示すように2×2のブロックサイズで復号対象のブロックの直前に復号するブロックが参照する斜線の領域で表した領域923が、4バイト境界の先頭から配置されており、太線で囲んだ復号対象のブロックが参照する領域922との絶対座標の差が(1,0)であるとすれば、9画素中6画素が共通領域となり、本来は点の領域として示した領域924の3画素のみを更新すればよいことになる。 しかしながら、4バイトバス幅のメモリ構成となっていることを想定しているため、領域922の転送には領域923も含めた4バイト×3行のメモリ転送を行う必要があり、結局全画素を再送することになる。

    さらに、輝度の8×8、8×16、16×8及び16×16、色差の4×4、4×8、8×4及び8×8のブロック(以下、「マクロブロックパーティションタイプ」と略す。)サイズでは、たとえ同じマクロブロック内の隣り合う小ブロックであったとしても、別の参照画像を用いた動き補償が可能となっているため、もともと共通部分が存在しないことも予想される。 ただし、輝度の4×4、4×8、8×4及び8×8のブロック、色差の2×2、2×4、4×2及び4×4のブロック(以下、「サブマクロブロックパーティションタイプ」と略す。)サイズでは、同じマクロブロックパーティション内のものであれば同じ参照画像を用いる。

    つまり、圧縮効率の向上のために動き補償予測で選択できる参照画像枚数やブロック形状の種類を増やしており、また高次タップのフィルタ補間を用いるH. 264規格などにおいては、従来技術にある共通領域の判定による参照メモリの更新領域制限では、マルチフレームメモリ402へのアクセス回数の低減ができない可能性が大きい。

    本発明は、このような課題に鑑みてなされたものであり、効率的な動き補償画素生成のために、マルチフレームメモリからの画素データの読み出し画素数を削減し、転送処理及び小数精度画素生成動き補償処理の削減を実現することができる動き補償装置を提供することを目的とする。

    上記目的を達成するため、本発明に係る動き補償装置は、動画像を構成するピクチャ間で動き補償をブロック単位で行う動き補償装置であって、参照ピクチャを記憶するピクチャメモリと、前記ピクチャメモリから転送される前記参照ピクチャの参照画素データを記憶する局所メモリと、複数の前記ブロックの動き補償で必要とされる参照領域を含む転送領域を特定する領域特定手段と、前記領域特定手段によって特定された前記転送領域の参照画素データを前記ピクチャメモリから前記局所メモリへ転送する参照画素転送手段と、前記局所メモリに記憶されている前記参照画素データを用いて動き補償を行う動き補償手段とを備えることを特徴とする。

    これによって、ピクチャ間の動き補償予測を行う場合に、ピクチャメモリからブロックで必要となる参照画素データを複数分まとめて転送した方が効率的な場合には、参照画素データを一括転送することによって複数のブロック間で重複している参照領域をブロック処理ごとに重複して転送する必要がなくなるため、ピクチャメモリへのアクセス数を減少させることによってバス占有率の削減と、処理サイクルの削減が実現できる。

    また、前記領域特定手段は、前記転送領域を少なくとも1つの矩形領域として特定してもよい。 これによって、転送領域のアドレス生成を比較的容易にし、領域特定手段および参照画素転送手段等の実装面積を削減することが可能となる。

    また、前記局所メモリは、前記ピクチャメモリから転送された前記転送領域に含まれる前記参照領域の参照画素データのみを記憶してもよい。 これによって、不要な画素データを局所メモリに格納しないようにすることで、その実装容量を削減し、同時に無駄な書き込み処理動作の削減を図ることが可能となる。

    また、前記参照画素転送手段は、前記転送領域の中で前記参照領域を含む、前記ピクチャメモリと前記局所メモリとの間の転送単位のみを実転送してもよい。 これによって、ピクチャメモリへの不要なメモリアクセスも削減するため、バス占有率の削減と処理サイクルの削減が実現できる。

    また、前記動き補償手段は、さらに、前記局所メモリに記憶されている前記参照画素データを用いて小数精度画素データ生成のためのフィルタ演算を行ってもよい。 ここで、前記動き補償手段は、前記局所メモリに記憶されている前記参照画素データに対して、前記転送領域毎に一括で前記フィルタ演算を行ってもよい。 これによって、小数精度画素データの生成をブロック毎に行うことで同じ画素位置に対して重複して実施していたフィルタ処理を、一括でフィルタ処理を行う場合には一回の処理で済ますことができるため、処理量の削減を行うことが可能となる。

    また、前記動き補償手段は、前記局所メモリに記憶されている前記参照画素データに対して、いずれかの前記ブロックで小数画素精度の動き補償が必要とされるフィルタ必要領域に関してのみフィルタ演算を行ってもよい。 これによって、小数精度画素データの生成において、重複して実施していたフィルタ処理を一回の処理で済ますだけでなく、不要なフィルタ箇所を判断し積極的に処理を行わないことにより、さらなる処理量の削減を行うことが可能となる。

    また、前記動き補償装置は、さらに、前記ピクチャメモリと前記局所メモリとの間に小数精度画素データ生成のためのフィルタ演算の一部を行う第1フィルタ演算手段を備え、前記動き補償手段は、前記第1フィルタ演算手段でフィルタ演算を行わない残りのフィルタ演算を行ってもよい。 これによって、局所メモリへの読み込み時にフィルタ処理の一部または小数画素精度の動き補償位置によっては全部を同時実施することができるため、処理サイクルの削減を図ることが可能となる。

    さらに、本発明は、このような動き補償装置として実現することができるだけでなく、このような動き補償装置が含む特徴的な手段をステップとして含む動き補償方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。 そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。

    以上の説明から明らかなように、本発明に係る動き補償装置によれば、ピクチャ間の動き補償予測を行う場合に、ピクチャメモリからブロックで必要となる参照画素データを複数分まとめて転送した方が効率的な場合には、参照画素データを一括転送することによって複数のブロック間で重複している参照領域をブロック処理ごとに重複して転送する必要がなくなるため、ピクチャメモリへのアクセス数を減少させることによってバス占有率の削減と、処理サイクルの削減が実現できる。

    以下、本発明の各実施の形態について、それぞれ図面を参照しながら説明する。
    (実施の形態1)
    図1は、本発明の実施の形態1に係る動き補償装置が用いられる画面間予測復号化装置の構成を示すブロック図である。 なお、図18に示す従来の画面間予測復号化装置と同様の部分については同じ符号を付し、その説明を省略する。

    本発明の実施の形態1による画面間予測復号化装置は、図1に示すようにフレームメモリ転送制御部101、局所参照メモリ102、局所メモリ転送制御部103、マルチフレームメモリ104、動き補償部105、加算部407、加算部501、動きベクトルメモリ408、動きベクトル予測部409、および復号化部502を備えている。

    マルチフレームメモリ(ピクチャメモリ)104は、加算部407より出力された復号画面RecPelを記憶する。 動き補償部105は、小数画素精度の参照画素を生成し、参照画面画素MCpel2として出力する。

    局所参照メモリ102は、マルチフレームメモリ104と動き補償部105との間に位置するメモリであり、動き補償部105のみが参照し、マルチフレームメモリ104から動き補償参照画素MCpel1が入力される。 局所参照メモリ102からは画素MCpel3が出力され、動き補償部105に入力される。

    フレームメモリ転送制御部101は、参照ピクチャ番号RefNoおよび動きベクトルMVに基づいて動き補償に必要な参照画素を特定し、マルチフレームメモリ104の画素読み出しを制御する制御回路(領域特定手段および参照画素転送手段を構成)であり、制御信号FrmCtrSndによりマルチフレームメモリ104の送信制御を行い、制御信号FrmCtrRcvにより局所参照メモリ102の受信制御を行い、さらに制御信号FrmCtrLclによって局所参照メモリ102と動き補償部105の動作制御を行う局所メモリ転送制御部103の制御を行う。

    局所メモリ転送制御部103は、入力された制御信号FrmCtrLclにより、マルチフレームメモリ104から局所参照メモリ102にどのような状態で画素転送されたかを判断し、制御信号LclCtrSndにより局所参照メモリ102の送信制御を行い、制御信号LclCtrRcvにより受信制御を行う。

    以下、本実施の形態1の画面間予測復号化装置について詳細な動作を説明する。 マルチフレームメモリ104から動き補償部105への画素転送及び動き補償予測画像生成以外の動作は、従来構成における復号化処理と同じである。 従来構成における復号化の動作と異なるのは、動き補償を行う小ブロック単位の大きさや位置など状態によって、整数精度画素データの転送領域を一括もしくは個別に切り替えてマルチフレームメモリ104から動き補償参照画素MCpel1を読み出し、局所参照メモリ102に蓄える動作になる部分である。 さらに、局所参照メモリ102に蓄えられた整数画素精度の動き補償参照画素MCpel1に対して、対象の小ブロックに必要な小数画素精度の動き補償位置や、一括もしくは個別で送られる転送領域単位などの状態によって、小数画素精度動き補償のためのフィルタの実施を一括もしくは個別に切り替えて動き補償参照画素MCpel3として読み出し、動き補償部105でフィルタ処理を行い参照画面画素Mcpel2として出力する動作である。

    ここでは、H. 264規格を一例として処理制御動作を説明する。 H. 264では、16画素×16画素のマクロブロックよりも小さなブロックで動き補償を行うことが可能となっている。 つまり、輝度成分では上記した背景技術で説明したように、16×16のマクロブロックサイズの他に、16×8、8×16、8×8、8×4、4×8及び4×4の小ブロック単位での動き補償予測が可能である。 一方、色差成分では、小ブロックサイズの8×8、8×4、4×8、4×2、2×4、及び2×2の動き補償予測が可能となっているが、全体的に輝度成分の縦と横が半分となったマクロブロック及び小ブロックであるため、以後輝度成分を中心として説明する。

    また、同じ8×8のマクロブロックパーティションに属する複数のサブマクロブロックパーティションは必ず同じ参照ピクチャを参照画像として用いるが、同じマクロブロックであったとしても、マクロブロックパーティション毎に異なる参照ピクチャを参照画像として用いることができるため、ひとまずここでは小ブロックは、8×4、4×8及び4×4のサブマクロブロックパーティションであるものと想定して説明を続ける。

    まず、図2から図11を用いて、フレームメモリ転送制御部101の詳細な動作説明を行う。 図2は、フレームメモリ転送制御部101が行う概略制御の流れを示すフローチャートである。

    ステップS200は、マクロブロックパーティション毎に行う動き補償参照画素MCpel1の転送処理の開始を示している。

    まず、フレームメモリ転送制御部101は、まとめて転送する候補となる小ブロックの領域和を計算する(ステップS201)。

    フレームメモリ転送制御部101は、ステップS201で求めた領域和が、一括転送を行った方が有利か小ブロック毎に転送を行った方が有利かを条件分けするための閾値を超えているかどうかを判定する(ステップS202)。

    ステップS202の判定で閾値を超えている場合(ステップS202でYes)は、小ブロック毎に転送する(ステップS203)。

    ステップS202の判定で閾値を超えていない場合(ステップS202でNo)は、参照領域を一括で転送する(ステップS204)。

    ステップS205は、動き補償参照画素MCpel1の転送処理の終了を示している。
    以上の手順で小ブロックの転送を一括で行うか小ブロック毎に行うか判断して、転送を制御する。 以下、ステップS201の小ブロックにおける和領域の導出方法の詳細とステップS202の閾値の導出方法を説明するが、まずは準備として小ブロックの参照画素の領域計算について詳細を述べ、続いて和領域の導出方法と閾値の導出方法をそれぞれ説明する。

    図3と図4を用いて小ブロックの参照画素の領域計算について詳細な動作説明を行う。
    図3は、参照画像上の小ブロック領域及び小ブロックの周辺画素を含んだ参照画像領域を示す模式図である。 図3(a)は参照画像として必要な領域を表しており、図3(b)から(e)を代表する模式図である。 図3(b)は、小数画素精度の動き補償を必要としない場合に参照される領域を表しており、小ブロックの大きさと同じ領域サイズとなっている。 図3(c)は、水平方向のみの小数画素精度の動き補償を必要とする場合の参照領域を示しており、図3(d)は、垂直方向のみの小数画素精度の動き補償を必要とする場合の参照領域を示している。 また、図3(e)は、水平垂直の両方向の小数画素精度動き補償を必要とする場合の参照領域を示している。

    図3の各図において丸印の一つ一つが参照画素を示しているが、中でも画素P300、P301、P302、P303、P310、P311、P312、P313、P320、P322、P330、P332、P340及びP342の太線の丸印は参照領域の角に位置する画素を示している。

    画素P300、P301、P302及びP303は、図3(a)で示した参照画素領域の四隅であり、それぞれの座標は、(xLn,yTn)、(xRn,yTn)、(xRn,yBn)、(xLn,yBn)であるとする。

    また、画素P310、P311、P312及びP313は、図3(b)で示した参照画素領域の四隅であり、左上の画素の位置を(xOn,yOn)とし、小ブロックの水平画素数をbWn−1、垂直画素数をbHn−1とした場合のそれぞれの画素位置が、それぞれ(xOn,yOn)、(xOn+bWn−1,yOn)、(xOn,yOn+bHn−1)、(xOn+bWn−1,yOn+bHn−1)となっていることを示している。

    さらに、画素P320とP322は、図3(c)で示した参照画素領域の左上と右下の対角の二隅を、画素P330とP332は、図3(d)で示した参照画素領域の左上と右下の対角の二隅を、画素P340とP342は、図3(e)で示した参照画素領域の左上と右下の対角の二隅をそれぞれ表している。

    図4は、各小ブロックが参照画像として必要とする画素領域を計算するフローチャートを示している。 図4のフローチャートに従って処理を進めていくと、図3(a)で示した参照画素の四隅の位置が求まり、図3(b)、図3(c)、図3(d)もしくは図3(e)のいずれかの領域に定まる。 ここで、小数精度画素生成のためのフィルタタップ数をTとし、マルチフレームメモリ104からの転送においてバス幅等によって制限される転送単位をAlignとする。

    ステップS400は、小ブロックにおける参照画素の領域計算の開始を示している。
    まず、対象とする小ブロックの水平方向の小数画素精度動き補償が必要かどうかを判定する(ステップS401)。

    ステップS401の判定で水平方向の小数画素精度動き補償が不要な場合(ステップS401でNo)は、xLn=xOn、xRn=xOn+bWn−1とする(ステップS402)。 ここで、水平方向の小数画素精度動き補償が不要となるのは、動きベクトルMVで示される水平方向の動き補償位置が整数精度画素位置となる場合である。

    ステップS401の判定で水平方向の小数画素精度動き補償が必要な場合(ステップS401でYes)は、xLn=xOn−T/2+1、xRn=xOn+bWn−1+T/2とする(ステップS403)。

    ステップS402もしくはステップS403の処理の後、対象とする小ブロックの垂直方向の小数画素精度動き補償が必要かどうかを判定する(ステップS404)。

    ステップS404の判定で垂直方向の小数画素精度動き補償が不要な場合(ステップS404でNo)は、yTn=yOn、yBn=yOn+bHn−1とする(ステップS405)。 ここで、垂直方向の小数画素精度動き補償が不要となるのは、動きベクトルMVで示される垂直方向の動き補償位置が整数精度画素位置となる場合である。

    ステップS404の判定で垂直方向の小数画素精度動き補償が必要な場合(ステップS404でYes)は、yTn=yTn−T/2+1、yBn=yOn+bHn−1+T/2とする(ステップS406)。

    ステップS405もしくはステップS406の処理の後、さらにマルチフレームメモリ104からの転送で転送画素数単位の制限がある場合は、xLn=(xLn/Align)*Align、xRn=(xRn/Align)*(Align+1)−1とする(ステップS407)。

    ステップS408は、小ブロックにおける参照画素の領域計算の終了を示している。
    図4のフローチャートで示した処理を行うことにより、参照画素の転送で必要な画素領域が求まる。 また、マルチフレームメモリ104からの転送で転送画素数単位の制限が無い場合は、ステップS407の処理は不要である。 ここで、参照画素の転送で必要な画素領域は、ステップS402とステップS405を通る処理を行った場合、図3(b)の領域となる。 同様に、ステップS403とステップS405の場合は図3(c)、ステップS402とステップS406の場合は図3(d)、ステップS403とステップS406の場合は図3(e)の各領域となり、参照画素領域が決定される。

    ただし、処理の簡略化のために、図4に示したフローチャートに従って算出するのではなく、不要な参照画素を含む可能性はあるが、単に最大の参照領域である図3(e)の領域を用いることも可能である。

    次に、図5から図11を用いて複数の小ブロック参照画素が集まった和の領域計算について詳細な動作説明を行う。

    図5は、参照画面上に4つの小ブロックの参照領域が存在する場合の一例を示す模式図である。

    図5において、画素P500、P501、P502及びP503は参照画面RefPicの四隅を示しており、画面の横と縦の画素数をmaxWidthとmaxHeightとした時に、それぞれ、(0,0)、(maxWidht−1,0)、(maxWidht−1,maxHeight−1)及び(0,maxHeight−1)の画素位置であることを示している。 また、画素P510、P511、P512及びP513は4つの小ブロックに対する参照画素領域の左上の画素位置を示しており、それぞれ、(xL0,yL0)、(xL1,yL1)、(xL2,yL2)及び(xL3,yL3)の座標であるものとする。

    また、ここでは、複雑になるため図示しないが、以降それぞれの参照画素領域でフィルタに必要な周辺画素を伴わない小ブロックのサイズと同じ領域の左上画素位置をそれぞれ、(xO0,yO0)、(xO1,yO1)、(xO2,yO2)及び(xO3,yO3)とした時、(xO0,yO0)から(xO1,yO1)、(xO2,yO2)及び(xO3,yO3)までの差分位置をここではそれぞれ、(+2,+2)、(+6,−3)及び(+9,+3)であるものとする。

    図6は、図5で示した左上画素P510、P511、P512及びP513を持つ4つの小ブロックの参照画素からなる和領域を示す模式図であり、図6(a)は任意の形状の画素領域を転送する場合の和領域、図6(b)は参照領域を全て含む矩形部分を和領域としていることを示したものである。 ここで、太枠線B6aとB6bが和領域を表す境界線となっており、この太枠線B6aとB6bの内側の画素をマルチフレームメモリ104から局所参照メモリ102に動き補償画素MCpel1として転送することになる。 図6(b)において、画素P600及びP602の白丸印はそれぞれ、矩形領域における左上と右下の画素位置を示しており、それぞれ(xMin,yMin)、(xMax,yMax)の座標となっているとする。 また、図6の例では各小ブロックが4×4のサブマクロブロックパーティションの形状となっており、ここでは各小ブロックの参照画素領域は最大の領域となる図3(e)の領域を用いており、マルチフレームメモリ104からの転送で転送画素数単位の制限が無い場合であるものとする。 また、図6(a)に示す任意の形状の画素領域を転送する場合の和領域は、複数の矩形領域の組み合わせとして表すことも可能である。

    和領域の導出方法は複数存在するが、ここでは、図6(a)と図6(b)の領域を求めるマーキングによる方法と単矩形座標算出による方法の2つの手法を例として挙げ説明を続ける。

    まず、転送領域のマーキングによる和領域の導出について説明する。
    図7は、転送領域のマーキングによる和領域導出のフローチャートを示している。 この手法を用いると任意の形状の和領域を求めることが可能である。 ステップS700は、マーキングによる和領域の導出処理の開始を示している。

    まず、転送領域を示す転送マップの各画素位置の初期化を行う(ステップS701)。
    マーキング処理対象を転送候補の小ブロックの一つ目に設定する(ステップS702)。

    処理対象の小ブロックが存在する画素位置を転送マップにフラグを立てる(ステップS703)。

    一括転送を行う候補の小ブロック、すなわち一つのマクロブロックパーティションに含まれる全てのサブマクロブロックパーティションの処理を行ったかどうか判定する(ステップS704)。

    ステップS704の判定結果で全ての小ブロックに対して処理が出来ていない場合(ステップS704でNo)は、次の小ブロックを処理対象に設定し(ステップS705)、再びステップS703の処理に戻る。

    ステップS704の判定結果で全ての小ブロックに対して処理が出来ている場合(ステップS704でYes)は、最終処理として必要であればマルチフレームメモリからの転送単位の制限に対応するためのアライメント処理を行う(ステップS706)。 なお、ステップS706は、各小ブロックの参照領域が既に転送単位の制限を考慮した領域になっている場合は不要な処理である。

    ステップS707は、マーキングによる和領域の導出処理の終了を示しており、図7で示したフローチャートに従って処理した結果、図6(a)の丸印を含む太枠線B6aのマーキング領域ができあがり、転送領域として導出できる。

    続いて、単矩形座標算出による和領域の導出について説明する。
    図8は単矩形座標算出による和領域導出のフローチャートを示している。 この手法を用いると、複数の参照画素の転送領域を一つの矩形領域で包含した和領域を求めることが可能である。 ステップS800は、単矩形座標算出による和領域の導出処理の開始を示している。

    まず、転送領域を示す対角画素の画素位置の初期化(xMin=maxWidth、xMax=0、yMin=maxHeight、yMax=0)を行う(ステップS801)。 ここで、maxWidthは、画面サイズの横の最大値であり、maxHeightは、画面サイズの縦の最大値であるとする。

    処理対象の候補の小ブロックを一つ目に設定する(ステップS802)。
    処理対象の小ブロックの左端の水平画素位置が矩形領域の左端の水平画素位置よりも小さい座標となっているかどうか、つまりxMin>xLnとなっているかどうかを判定する(ステップS803)。

    ここで、ステップS803の判定が正しい場合(ステップS803でYes)は、矩形領域の左端の座標に処理対象の左端の座標を代入(xMin=xLn)する(ステップS804)。

    次に、処理対象の小ブロックの右端の水平画素位置が矩形領域の右端の水平画素位置よりも大きい座標となっているかどうか、つまりxMax<xRnとなっているかどうかを判定する(ステップS805)。

    ここで、ステップS805の判定が正しい場合(ステップS805でYes)は、矩形領域の右端の座標に処理対象の右端の座標を代入(xMax=xRn)する(ステップS806)。

    次に、処理対象の小ブロックの上端の垂直画素位置が矩形領域の上端の垂直画素位置よりも小さい座標となっているかどうか、つまりyMin>yTnとなっているかどうかを判定する(ステップS807)。

    ここで、ステップS807の判定が正しい場合(ステップS807でYes)は、矩形領域の上端の座標に処理対象の上端の座標を代入(yMin=yTn)する(ステップS808)。

    次に、処理対象の小ブロックの下端の垂直画素位置が矩形領域の下端の垂直画素位置よりも大きい座標となっているかどうか、つまりyMax<yBnとなっているかどうかを判定する(ステップS809)。

    ここで、ステップS809の判定が正しい場合(ステップS809でYes)は、矩形領域の上端の座標に処理対象の上端の座標を代入(yMax=yBn)する(ステップS810)。

    一括転送を行う候補の小ブロック、すなわち一つのマクロブロックパーティションに含まれる全てのサブマクロブロックパーティションの処理を行ったかどうか判定する(ステップS811)。

    ステップS811の判定結果で全ての小ブロックに対して処理が出来ていない場合(ステップS811でNo)は、次の小ブロックを処理対象に設定し(ステップS812)、再びステップS803の処理に戻る。

    ステップS811の判定結果で全ての小ブロックに対して処理が出来ている場合(ステップS811でYes)は、最終処理として必要であればマルチフレームメモリからの転送単位の制限に対応するためのアライメント処理を行う(ステップS813)。 なお、ステップS813は、各小ブロックの参照領域が既に転送単位の制限を考慮した領域になっている場合は不要な処理である。

    ステップS814は、単矩形座標算出による和領域導出処理の終了を示しており、図8で示したフローチャートに従って処理した結果、図6(b)の丸印を含む太枠線B6bの領域を転送領域として導出する。 図6(a)の例では221画素、図6(b)の例では270画素が参照領域として導出できる。

    以上、マーキングによる方法と単矩形座標算出による方法の2つの和領域導出手法に関して説明を行った。

    ところで、各小ブロックのフィルタ方向を考慮した場合には、転送領域を削減することができる。 図9は、図6からフィルタ方向を考慮し転送領域を削減した結果の状態を表した模式図であり、図9(a)はマーキングによる和領域の導出を行った場合、図9(b)は単矩形座標算出による和領域の導出を行った場合を示している。

    図9において点線で囲んだ領域N9a0、N9a1、N9a2、N9b0、及びN9b1は、図6(a)及び(b)と比べて転送が削減できる領域を示している。 同様に点線で囲んだ領域N9b2は、本来転送不要ではあるが矩形領域で転送するためダミーデータとして転送することとなる領域である。 また、太枠線B9aとB9bは和領域を表す境界線である。 以下、転送領域の削減について詳細を説明する。

    図9では、図5において左上画素P512を含む小ブロックの参照領域は垂直方向のフィルタが不要であり、左上画素P513を含む小ブロックの参照領域は垂直方向のフィルタが不要であった場合の一例を示している。 垂直方向のフィルタが不要な場合は、上2画素行と下3画素行が不要な図3(c)で示す横長の領域が転送領域として必要となる。 また、水平方向のフィルタが不要な場合は、左2画素列と右3画素列が不要な図3(d)で示す縦長の領域が転送領域として必要となる。

    従って、図9(a)及び図9(b)の領域から、領域N9a0、N9a1、N9a2、N9b0、及びN9b1を除いた領域が転送領域となり、太枠線B9aとB9bの内側の画素を転送する。 一例では、領域N9a0、N9a1、及びN9a2の画素数がそれぞれ18、27及び2であり、領域N9a0、N9a1、N9a2、N9b0、及びN9b1も18、27及び2であるので、図9(a)の例では174画素、図9(b)の例では195画素が転送領域として導出できる。

    図10は、図9に対してマルチフレームメモリ104からの転送で転送画素数単位の制限がある場合の状態を表した模式図である。 図10(a)はマーキングによる和領域の導出を行った場合、図10(b)は単矩形座標算出による和領域の導出を行った場合を示している。

    点線al10aとal10bは、転送画素数単位の制限がある場合の転送単位の切れ目を表している。 この一例では、水平方向の4画素が1転送単位となった場合を表している。

    また、太枠線B10aとB10bは和領域を表す境界線である。 この時、図10(a)の例では196画素、図10(b)の例では208画素が転送領域として導出できる。

    図9(a)、図9(b)、図10(a)及び図10(b)のいずれの場合も、図4、図7及び図8で示したフローチャートで導出することが可能である。

    複数の小ブロック参照画素が集まった和の領域計算についての詳細な動作説明は、以上である。

    次に、フレームメモリ転送制御部101で使用する閾値について説明する。
    まず、図4で示した小ブロックの参照画像の領域計算により、小ブロック毎の画素数を(xRn−xLn+1)×(yBn−yTn+1)の計算で算出する。 次に小ブロック全ての計算結果の総和を計算し、それを閾値とする。 この閾値によって、複数の小ブロック参照画素が集まった和の領域を一括で転送する場合と、それぞれの小ブロックごとに参照領域を転送する場合とでどちらが転送量が少なくて済むかを判定することが可能となる。 なお、この閾値はマルチフレームメモリ104のアクセスで分割するために発生する例えばバイトのアライメントにおけるペナルティなどの変数を加えても良い。

    また、この他、閾値は実装している局所参照メモリ102そのものの値とすることも可能である。 例えば局所参照メモリ102は、16×16のブロックサイズの動き補償に対応するために、(16+6−1)×(16+6−1)=441画素分を実装していることが考えられるので、この441画素などを閾値として用いてもよい。

    次に、マルチフレームメモリ104から読み出した動き補償参照画素Mcpel1の局所参照メモリ102への格納について説明する。

    図11は、図10(b)に示す画素領域を転送する場合に、局所参照メモリ102への格納方法を説明するための模式図である。 図11(a)は、参照領域を一括で格納する場合を説明するための模式図である。 点線で囲んだ領域B11aは、動き補償予測のために実際に必要となる画素を表しており、図7で示したマーキングによる転送領域計算のフローを用いると同様に決定することが可能である。

    図11(b)、図11(c)、図11(d)及び図11(e)は、参照領域を小ブロック毎に格納する場合を説明するための模式図である。 画素P11b0とP11b2、画素P11c0とP11c2、画素P11d0とP11d2及び画素P11e0とP11e2は小ブロックの参照領域の左上と右下の画素位置を示しており、左上の参照画素位置は図5で示した(xL0,yL0)、(xL1,yL1)、(xL2,yL2)及び(xL3,yL3)になっている。

    領域B11b、B11c、B11d及びB11eは、動き補償予測のために実際に必要となる画素を表しており、領域B11dz及びB11ezは垂直水平両方向の小数画素精度動き補償のフィルタ処理が必要になる場合に必要な画素領域を示している。

    図2で示したフローチャートに従ってマルチフレームメモリ104から読み出した動き補償参照画素MCpel1は、小ブロック毎の転送の場合は無条件に図11(b)、図11(c)、図11(d)及び図11(e)に示す状態で局所参照メモリ102に格納する。

    また、同様に読み出した動き補償参照画素MCpel1が、複数の小ブロックで一括に転送される場合、図11(a)のまとめた状態で格納する方法と、小ブロック毎に個別で転送した場合と同様に図11(b)、図11(c)、図11(d)及び図11(e)に示す状態に画素を展開して格納する方法がある。

    参照領域を小ブロック毎に展開してメモリに格納する利点は、局所参照メモリ102から参照画素MCpel3を読み出し、小数精度画素を作り出すためのフィルタ処理の制御が従来と同じように行えばよいということである。 一方、一括のまとめた状態で格納する場合には、続くフィルタ操作もさらに一括で処理することによって、さらなる処理削減が可能となる利点がある。 この時、いずれにしても動き補償参照画素MCpel1を全て格納するのではなく、参照に必要となる画素についてのみ格納するようにすることによって、無駄なメモリアクセスを削減することが可能である。

    以上説明したように、本実施の形態1に係る画面間予測復号化装置によれば、マルチフレームメモリ転送制御部101において、小ブロックを一括で転送する場合の和領域を算出し、この和領域の画素数と閾値とを比較した結果によって、一括で転送するか個別の小ブロックとして転送するかを制御する。 これによって、マクロブロック単位で見た場合に、転送画素数の最悪値は減少しないが、全体としての平均の転送量を大幅に下げることが可能となる。

    上記例では、6タップフィルタが必要な4×4の小ブロックサイズが4つの転送を想定しているので、4バイトの転送単位制限がある場合、((ceil((4+6−1)/4)×4)×4)×4=768画素の参照画素転送量が、図10(b)の状態では16×13=208画素の転送量まで削減可能となる。

    また、併せて、マルチフレームメモリ104から転送した動き補償参照画素MCpel1のデータは必要な画素データのみを局所参照メモリ102に格納するので、動き補償の動作処理全体の処理量を削減することが可能となる。

    (実施の形態2)
    続いて、本発明の実施の形態2に係る動き補償装置が用いられる画面間予測復号化装置について説明する。

    図12は本発明の実施の形態2に係る動き補償装置が用いられる画面間予測復号化装置の構成を示すブロック図である。 なお、図1に示す画面間予測復号化装置と同様の部分については同じ符号を付し、その説明を省略する。

    本発明の実施の形態2による画面間予測復号化装置は、実施の形態1で示した画面間予測符号化装置の構成に加えて、小数画素生成部201を有している。

    小数画素生成部201は、マルチフレームメモリ104と局所参照メモリ102との間に位置する小数画素精度の動き補償画像を生成するフィルタである。 小数画素生成部201では、マルチフレームメモリ104から送られる動き補償参照画素MCpel1の並びの方向、すなわち小ブロックにおける垂直方向もしくは水平方向の片方向で画素が連続で送られてくる方向のフィルタ処理を行う。 小数画素生成部201の動作タイミングは、フレームメモリ転送制御部203からFrmCtrFlt信号により制御される。

    小数画素生成部201は、フィルタ処理を行った小数画素精度の動き補償画素及び元の動き補償参照画素MCpel1を、画素MCpel4として局所参照メモリ102へ出力する。 また、動き補償部202は、小数画素生成部201で行った方向のフィルタ処理以外の動き補償画像生成処理を行う。

    以下、本実施の形態2の画面間予測復号化装置に関する詳細な動作として、主に局所メモリ転送制御部103の動作について説明する。 小数画素生成部201、局所参照メモリ102、フレームメモリ転送制御部203、局所メモリ転送制御部204及び動き補償部202以外の動作は、本実施の形態1と同じである。 本実施の形態2において、動き補償参照画素MCpel1は、小ブロックの参照領域を含む転送領域が一括で転送されてきている場合を想定する。

    図13は、小数画素精度動き補償画素生成の処理の動作の流れを示すフローチャートである。 図13のフローチャートでは、マルチフレームメモリ104からの動き補償参照画素MCpel1の転送単位が、小ブロック毎かそれとも連結した和領域として転送されているかで処理を切り換えて効率的に小数画素精度動き補償を行う手順を示している。

    ステップS1300は小数画素精度動き補償画素生成の処理の開始を表している。
    まず、フレームメモリ転送制御部203は、転送領域の中で、実際に参照で必要な画素を判定する(ステップS1301)。 これは、図7に示したマーキングによる和領域の導出処理のフローチャートと同様の方法で行う。

    次に、フレームメモリ転送制御部203は、水平及び垂直のフィルタ処理を行う領域の導出を水平方向と垂直方向のそれぞれについて行う(ステップS1302)。 ここでは、それぞれ結果を水平フィルタマップ及び垂直フィルタマップと呼ぶことにする。

    次に、小数画素生成部201は、マルチフレームメモリ104から入力された動き補償参照画素MCpel1に対して、転送方向の画素の並びに、水平フィルタマップもしくは垂直フィルタマップに従って、いずれかの小ブロックの動き補償画像の生成に必要になる部分についてのみフィルタ処理を実行する(ステップS1303)。

    小数画素生成部201によってフィルタ処理が行われた画素及び動き補償参照画素MCpel1は併せて画素MCpel4として局所参照メモリ102へ出力され、局所参照メモリ102に格納される(ステップS1304)。

    次に、動き補償部202は、局所参照メモリ102から入力された参照画素MCpel3に対して、ステップS1303で実行したフィルタ方向と垂直となる方向のフィルタ処理を垂直フィルタマップもしくは水平フィルタマップに従って実行し、1/2小数画素精度参照画素生成を行う(ステップS1305)。

    最後に、動き補償部202は、線形補間による1/4小数画素精度参照画素生成を行い、参照画面画素MCpel2として出力する(ステップS1306)。 フィルタ処理は、小ブロック毎に必要であれば行う。 1/2小数画素精度画素生成を含め、整数画素精度の動き補償しか必要としない場合は、フィルタ処理は行わない。

    ステップS1307は、小数画素精度動き補償画素生成の処理を表している。 小ブロック毎の個別の画素転送がマルチフレームメモリ104から行われている場合であっても、図13のフローチャートに従って小数画素精度動き補償画素生成の処理を行うことが可能である。

    次に、図14及び図15を用いて、水平及び垂直のフィルタ処理を行う領域の導出に関して詳細に説明する。 図14は、フィルタを実行する画素に対するマーキング処理を説明するための模式図であり、図15は、そのマーキング処理のフローチャートを示している。

    図14において、図14(a)は、図10(b)と同じ状態を表しており、画素P1420とP1430はそれぞれ、(xL2,yT2)と(xL3,yT3)の画素位置であり、それぞれを左上の角画素とする参照領域を縦横の線を付けた丸印の画素と、黒丸の丸印の画素で構成している。

    また、図14(b)と図14(c)は、垂直フィルタマップと水平フィルタマップであり、それぞれ太枠点線B14bと太枠点線B14cで囲んだ斜線領域がフィルタを実行する領域を表している。

    図15を用いてフレームメモリ転送制御部203が行うフィルタ処理領域のマーキングの手順を説明する。 ステップS1500は、マーキング処理の開始を表している。

    まず、水平フィルタマップと垂直フィルタマップを初期化する(ステップS1501)。 例えば全ての画素位置のフラグを0に設定する。

    処理対象を一つ目の小ブロックに設定する(ステップS1502)。
    対象の小ブロックが水平方向のフィルタを必要とするかどうかを判定する(ステップS1503)。 水平方向のフィルタ処理を必要としない場合(ステップS1503でNo)は、ステップS1505に移る。

    一方、ステップS1503において、水平方向のフィルタ処理を必要とする場合(ステップS1503でYes)は、水平フィルタマップにおいて対象の小ブロックが参照する画素位置にフラグを立てる(ステップS1504)。 例えば、図14(c)に示したように「H」のフラグを立てる。

    次に、対象の小ブロックが垂直方向のフィルタを必要とするかどうかを判定する(ステップS1505)。 垂直方向のフィルタ処理を必要としない場合(ステップS1505でNo)は、ステップS1507に移る。

    一方、ステップS1505において、垂直方向のフィルタ処理を必要とする場合(ステップS1505でYes)は、垂直フィルタマップにおいて対象の小ブロックが参照する画素位置にフラグを立てる(ステップS1506)。 例えば、図14(b)に示したように「V」のフラグを立てる。

    一括転送を行った全ての小ブロックに対してマーキングの処理を行ったかどうかを判定する(ステップS1507)。 全ての小ブロックに対する処理を行っている場合(ステップS1507でYes)には、水平垂直フィルタのマーキング処理を終了する(ステップS1509)。

    一方、ステップS1507において、全ての小ブロックに対する処理が出来ていない場合(ステップS1507でNo)には、処理対象を次の小ブロックに設定する(ステップS1508)。

    以上の処理を行うことによって、水平垂直のフィルタを複数の小ブロックでまとめて行う場合の領域を導出することが出来る。 図14で示している例では、画素P1420を左上の画素とする参照領域は、垂直方向のフィルタが不要であると仮定しているので、縦横の線を付けた丸印領域の画素の部分が垂直フィルタの不要部分となり、図14(b)の太点線枠B14bで囲んだ斜線領域に垂直フィルタを実行すればよいことが分かる。 また、画素P1430を左上の画素とする参照領域は、垂直方向のフィルタが不要であると仮定しているので、黒丸印領域の画素の部分が水平フィルタの不要部分となり、図14(c)の太点線枠B14cで囲んだ斜線領域に水平フィルタを実行すればよいことが分かる。

    この実施の形態2に示した構成をとることにより、小数画素精度の動き補償予測のためのフィルタ処理を小ブロック毎に実行するのではなく、複数の小ブロックについてまとめて実行し、しかも必要な箇所にのみ選択的にフィルタ処理を実施するので、処理サイクル及び処理量を削減できる。 また、併せて、マルチフレームメモリ104からの転送途中で片方向のフィルタを実行するので、さらに処理サイクルが削減できる。

    (実施の形態3)
    さらに続いて、本発明の実施の形態3について説明する。

    図16は、本発明の実施の形態3に係る動き補償装置が用いられる画面間予測復号化装置の動作の流れを示すフローチャートである。 本実施の形態3では、H. 264規格におけるマクロブロックレベルでの適応に関する一例の処理手順を説明する。

    ブロックサイズが16×16、16×8、8×16及び8×8のマクロブロックパーティションタイプの場合、パーティション毎に異なるピクチャを参照画面とすることがH. 264規格では可能である。 従って同じピクチャを参照するパーティションを判定し、マクロブロックパーティションの参照ピクチャが同じ場合には、サブマクロブロックレベルでの処理と同様にすればよい。 つまり、実施の形態1もしくは実施の形態2と同様の処理でマルチフレームメモリ104へのアクセスの削減と、動き補償画像の生成処理の削減がマクロブロックレベルでも可能となる。

    以下、図16を用いてマクロブロックにおける参照画素転送及び動き補償処理の制御フローについて説明する。 ステップS1600は、制御の開始を示している。

    まず、マクロブロックを構成する小ブロックが16×16、16×8、8×16もしくは8×8のパーティションタイプのみで構成されているかどうか判定する(ステップS1601)。

    ステップS1601の判定結果において16×16、16×8、8×16もしくは8×8のパーティションタイプのみで構成されていると判定された場合(ステップS1601でYes)、全ての小ブロックが同じフレームを参照しているかどうか判定する(ステップS1602)。

    ステップS1602で判定した結果、全てが同じ参照フレームであった場合(ステップS1602でYes)は、マクロブロックレベルで一括か個別かを判定し参照画素転送及び動き補償画素生成を行う(ステップS1603)。

    また、ステップS1602で判定した結果、各小ブロックの参照フレームと異なっている場合(ステップS1602でNo)は、従来どおりの個別の参照画素転送と個別の動き補償画素生成を行う(ステップS1604)。

    一方、ステップS1601の判定結果において16×16、16×8、8×16もしくは8×8のパーティションタイプのみで構成されていないと判定された場合(ステップS1601でNo)、マクロブロックパーティション毎に処理を行うため、まず、処理対象を最初のマクロブロックパーティションに設定する(ステップS1605)。

    設定されたマクロブロックパーティションにおいて、サブマクロブロックパーティションレベルで一括か個別かを判定し参照画素転送及び動き補償画素生成を行う(ステップS1606)。

    次に、全てのマクロブロックパーティションについて処理を実行したかを判定する(ステップS1607)。

    ステップS1607の判定で全てのマクロブロックパーティションについて処理が終了していない時(ステップS1607でNo)は、処理対象を次のマクロブロックパーティションに設定し、ステップS1606、ステップS1607を繰り返す(ステップS1608)。

    ステップS1609は、マクロブロックでの参照画素転送及び動き補償画素生成の処理の終了を表している。

    上述した手順に従って処理を行うことで、マルチフレームメモリ104へのアクセスの削減と、参照画素転送及び動き補償画素生成のフィルタ処理量の削減を、マクロブロックレベルの処理に対しても適応が可能となる。

    以上、本発明に係る画面間予測復号化装置について各実施の形態に基づき説明したが、本発明は、これらの実施の形態に限定されるものではなく、本発明の範囲内において種々の設計変更などを施すとしてもよい。

    例えば、実施の形態1から実施の形態3に示した装置及び手法は、一括で転送を行う場合の小ブロックは、動き補償単位に分割した全てで必ずしも行う必要はなく、例えば4×4のサブマクロブロックパーティションタイプの場合、4つが集まって一つのマクロブロックパーティションを構成するが、2つだけを一括で転送及びフィルタの処理を行っても良い。

    また、実施の形態1から実施の形態3に示した装置及び手法は、一括で転送を行う場合の小ブロックは、複数のマクロブロックパーティションやマクロブロックから選んだ任意のものでも良い。

    さらに、実施の形態1から実施の形態3に示した装置及び手法は、画像符号化装置及び手法にも応用が可能である。

    また、図1および図12に示したブロック図の各機能ブロックは典型的には集積回路であるLSIとして実現される。 このLSIは1チップ化されても良いし、複数チップ化されても良い。 (例えばメモリ以外の機能ブロックが1チップ化されていても良い。)ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。

    また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。 LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。

    さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。 バイオ技術の適応等が可能性としてありえる。

    また、各機能ブロックのうち、例えばマルチフレームメモリ104のような符号化時または復号化時の参照対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。

    本発明に係る動き補償装置は、例えばコンテンツ配信装置やディジタル放送装置、携帯電話、DVD装置、及びパーソナルコンピュータ等で、効率的に動き補償画素を生成したり、動画像を構成する各ピクチャを符号化して符号列を生成したり、また生成された符号化列を復号化したりする等に有用である。

    本発明の実施の形態1に係る動き補償装置が用いられる画面間予測復号化装置の構成を示すブロック図である。

    フレームメモリ転送制御部の制御の流れを示すフローチャートである。

    (a)参照画素領域の画素を示す図であり、(b)水平及び垂直フィルタが不要な場合の参照画素領域の画素を示す図であり、(c)水平フィルタが必要な場合の参照画素領域の画素を示す図であり、(d)垂直フィルタが必要な場合の参照画素領域の画素を示す図であり、(e)水平及び垂直フィルタの双方が必要な場合の参照画素領域の画素を示す図である。

    参照画素領域の画素の座標を求める処理の流れを示すフローチャートである。

    参照画面と参照領域を示す図である。

    (a)転送する複数小ブロックの任意形状の和領域を示す図であり、(b)転送する複数小ブロックの単矩形形状の和領域を示す図である。

    転送する複数小ブロックの任意形状の和領域を導出する処理の流れを示すフローチャートである。

    転送する複数小ブロックの単矩形形状の和領域を導出する処理の流れを示すフローチャートである。

    (a)フィルタ処理の参照不要部分を考慮して転送する複数小ブロックの任意形状の和領域を示す図であり、(b)フィルタ処理の参照不要部分を考慮して転送する複数小ブロックの単矩形形状の和領域を示す図である。

    (a)4バイト単位転送による制限を考慮して転送する複数小ブロックの任意形状の和領域を示す図であり、(b)4バイト単位転送による制限を考慮して転送する複数小ブロックの単矩形形状の和領域を示す図である。

    (a)転送した参照画素の有効画素領域を示す図であり、(b)(xL0,yT0)を左上画素とする参照画素を示す図であり、(c)(xL1,yT1)を左上画素とする参照画素を示す図であり、(d)(xL2,yT2)を左上画素とする参照画素を示す図であり、(e)(xL3,yT3)を左上画素とする参照画素を示す図である。

    本発明の実施の形態2に係る動き補償装置が用いられる画面間予測復号化装置の概略構成を示すブロック図である。

    小数画素精度動き補償画素生成の処理の動作の流れを示すフローチャートである。

    (a)転送した参照画素の有効画素領域を示す図であり、(b)垂直方向フィルタの有効画素領域を示す図であり、(c)水平方向フィルタの有効画素領域を示す図である。

    垂直方向フィルタ及び水平方向フィルタの有効画素領域を導出するためのフローチャートである。

    本発明の実施の形態3に係る動き補償装置が用いられる画面間予測復号化装置の動作の流れを示すフローチャートである。

    従来の画面間予測符号化装置の構成を示すブロック図である。

    従来の画面間予測復号化装置の構成を示すブロック図である。

    6タップフィルタをかける整数精度画素の並びを示す図である。

    6タップフィルタをかける参照画素領域を示す図である。

    (a)対象ブロックの参照画素領域と一つ前のブロックの参照画素領域との重なりを示す図であり、(b)対象ブロックの参照画素領域と一つ前のブロックの参照画素領域との重なりが無い状態を示す図である。

    対象ブロックの参照画素領域と一つ前のブロックの参照画素領域が転送単位境界内に両方とも含まれる状態を示す図である。

    符号の説明

    101 フレームメモリ転送制御部 102 局所参照メモリ 103 局所メモリ転送制御部 104、402 マルチフレームメモリ 105、405 動き補償部 201 小数画素生成部 401 動き検出部 403、404 減算部 406 符号化部 407、501 加算部 408 動きベクトルメモリ 409 動きベクトル予測部 502 復号化部 Str 符号化信号 DifMV 動きベクトル予測差分 PredMV 予測動きベクトル PrevMV 近傍動きベクトル RefNo 参照ピクチャ番号 RecDifPel 復号画面予測誤差 RecPel 復号画面 Vout 復号画面信号 MCpel1 動き補償参照画素 MCpel2 参照画面画素 MCpel3 画素 FrmCtrSnd 制御信号 FrmCtrRcv 制御信号 FrmCtrLcl 制御信号 LclCtrSnd 制御信号 LclCtrRcv 制御信号

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈