JP2007221662A - 動きベクトル算出装置 - Google Patents

動きベクトル算出装置 Download PDF

Info

Publication number
JP2007221662A
JP2007221662A JP2006042400A JP2006042400A JP2007221662A JP 2007221662 A JP2007221662 A JP 2007221662A JP 2006042400 A JP2006042400 A JP 2006042400A JP 2006042400 A JP2006042400 A JP 2006042400A JP 2007221662 A JP2007221662 A JP 2007221662A
Authority
JP
Japan
Prior art keywords
calculation
image
motion vector
minsad
calculated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006042400A
Other languages
English (en)
Inventor
Taro Hagitani
太郎 萩谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006042400A priority Critical patent/JP2007221662A/ja
Priority to US11/443,373 priority patent/US20070195881A1/en
Publication of JP2007221662A publication Critical patent/JP2007221662A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】簡単な回路構成により動画像の画質向上を図ること。
【解決手段】Pピクチャ制御部340により、共通回路(R)310および共通回路(L)320に対して入力された制御信号にしたがって、共通回路(R)310および共通回路(L)320により、外部メモリ350から演算領域の画像データを読み込み、画像データの全探索処理をおこなう。そして、共通回路(R)310および共通回路(L)320のそれぞれから出力される、全探索処理によって演算された最小SAD(最小差分和)と動きベクトルを比較して、動きベクトルを算出することを特徴とする。
【選択図】図3

Description

この発明は、動画像のフレーム画像における時間方向の差分を利用する動画圧縮において、複数のフレーム画像から動きベクトルを算出する動きベクトル算出装置に関する。
従来より、一連のフレーム画像から構成される動画像について、フレーム画像間の時間差分を利用してデータ量を圧縮するMPEG(Moving Picture Experts Group phase 2)−2やMPEG−4、H.264などの動画像の圧縮符号化方式がある。
これらの圧縮符号化方式は、3つの圧縮方法によるフレーム画像である、Iピクチャ(Intra−Picture(フレーム内符号化画像))と、Bピクチャ(Bidirectionally Predictive−Picture(双方向予測符号化画像))およびPピクチャ(Predictive−Picture(前方向予測符号化画像))を用いて圧縮する方式である。
具体的には、Iピクチャは、動画像を構成する一連のフレーム画像において、圧縮対象となるフレーム画像に対して、他のフレーム画像を参照せずにフレーム画像内での動き補償をおこなって符号化されたフレーム画像である。
また、Bピクチャは、動画像を構成する一連のフレーム画像において、圧縮対象となるフレーム画像に対して、時間的に前方向および後方向のフレーム画像を参照して、双方向のフレーム画像との間での動き補償をおこなって符号化されたフレーム画像である。
さらに、Pピクチャは、動画像を構成する一連のフレーム画像において、圧縮対象となるフレーム画像に対して、時間的に前方向のフレーム画像を参照して、前方向のフレーム画像との間での動き補償をおこなって符号化されたフレーム画像である。
ここで、図19を用いて、上述したIピクチャ、BピクチャおよびPピクチャについて説明する。図19は、Iピクチャ、BピクチャおよびPピクチャの概要を示す説明図である。図19において、Iピクチャ1901、Bピクチャ1902,1903、Pピクチャ1904は、矢印1910で示す時間の流れにそって序列している。
Iピクチャ1901は、他のフレーム画像(以下、「ピクチャ」ともいう)を参照せずに、フレーム画像内符号化によって処理されており、Bピクチャ1902,1903やPピクチャ1904など他のピクチャタイプの画像を圧縮および再生するために周期的に設けられている。
このIピクチャ1901は、フレーム画像間の差をとって符号化されるフレーム間符号化に比べて符号化効率が低く、発生情報量が多くなる。ここで、符号化効率は画質とデータ量の相関関係を示し、同一の画質で符号化後のデータ量が少ない場合や、符号化後のデータ量が同一で画質が高い場合に、符号化効率が高いこととなる。
Bピクチャ1902,1903は、符号化後の2つのピクチャを参照して算出された動きベクトルを用いて、フレーム間符号化によって圧縮処理されている。具体的には、Bピクチャ1902,1903は、時間的に過去のフレーム画像であるIピクチャ1901と、未来のフレーム画像であるPピクチャ1904とを参照して符号化される。
Bピクチャ1902,1903は、時間的に前方向および後方向となる双方向のピクチャを参照しているため、物体が途中で出現するような場合でも、的確な予測をおこなって、符号化効率を高めることができる。一方、時間的に未来のフレーム画像であるPピクチャ1904を参照しているため、Pピクチャ1904の符号化後にBピクチャ1902,1903を符号化して時間順に序列させるため、リアルタイム処理を要求される場合には、挿入数が制限される。また、Bピクチャ1902,1903が他のピクチャの参照となることはない。
Pピクチャ1904は、時間的に過去に符号化された1つのピクチャを参照して算出された動きベクトルを用いて、フレーム間符号化によって圧縮処理されている。具体的には、Pピクチャ1904は、時間的に前方向のフレーム画像であるIピクチャ1901を参照して符号化されている。なお、Pピクチャ1904が参照にするピクチャタイプは、IあるいはPであればよい。
また、図19の説明では、フレーム画像単位で3つの圧縮方法について説明したが、圧縮の単位はフレーム画像単位に限るものではなく、フレーム画像におけるブロック単位であったり、フィールド単位であったりしてもよい。以降、本明細書では、フレーム画像(ピクチャ)単位での圧縮について説明する。
つづいて、図20を用いて、従来におけるPピクチャに関する動きベクトル算出装置の回路構成について説明する。図20は、従来におけるPピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
図20において、動きベクトル算出装置2000は、制御部2011と、外部メモリインタフェイス2030と、キャッシュメモリ2012と、演算部2013と、から構成されている。
制御部2011は、動きベクトル算出装置2000の制御を司り、参照画像の中から、演算領域となる画像データの取得要求を外部メモリインタフェイス2030に出力する。
参照画像とは、具体的には、原画像から時間的に前方向のフレーム画像であり、たとえば、IあるいはPのピクチャタイプのフレーム画像である。ここで、原画像とは、圧縮対象となるフレーム画像における任意の16×16画素のブロック(以下、「マクロブロック」と称す)である。
また、演算領域とは、参照画像において、圧縮対象となる原画像に対応する画像情報を演算する領域である。画像情報とは、たとえば、原画像および参照画像における1マクロブロックの画素値の変化量などで、参照画像における所定の演算領域について演算される。
また、制御部2011は、後述する演算部2013の演算結果を用いて、原画像におけるPピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、原画像と参照画像との画素値の変化量が少ないマクロブロックを探索する。そして、探索されたマクロブロックと、参照画像における原画像の動きが0であった場合のマクロブロック間の位置関係から、原画像と参照画像間の動きを予測し、動きベクトルを算出する。また、外部装置では、たとえば、制御部2011から入力された動きベクトルを参照して、原画像の符号化処理をおこない、Pピクチャを生成する。
外部メモリインタフェイス2030は、外部メモリ2050に対して、制御部2011から入力された要求にしたがい、演算領域の画像データに関するデータリクエストをおこなう。
外部メモリ2050は、動画像を構成する一連のフレーム画像を記憶しており、外部メモリインタフェイス2030からのデータリクエストにしたがって、演算領域の画像データをキャッシュメモリ2012に出力する。
キャッシュメモリ2012は、外部メモリ2050から入力された画像データを一時記憶する。一時記憶された画像データは、制御部2011の制御にしたがって、演算部2013へ出力される。
演算部2013は、圧縮対象となる原画像の画像データと、キャッシュメモリ2012に記憶された演算領域の画像データとを参照して、原画像と演算領域との画像情報を演算する。そして、演算部2013は、演算した画像情報を演算結果として制御部2011へ出力する。
つぎに、図21を用いて、従来におけるBピクチャに関する動きベクトル算出装置の回路構成について説明する。図21は、従来におけるBピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
図21において、動きベクトル算出装置2100は、2つの共通回路2110,2120と、外部メモリインタフェイス2130と、双方向制御部2140と、から構成されている。また、共通回路2110,2120は、それぞれ制御部2111,2121と、キャッシュメモリ2112,2122と、演算部2113,2123と、から構成されている。
図21における動きベクトル算出装置2100では、圧縮対象となる原画像から時間的に前方向および後方向のフレーム画像であるIあるいはPのピクチャタイプのフレーム画像を参照画像として、動きベクトルの算出をおこなう。
双方向制御部2140は、Bピクチャの生成元となる動きベクトルを生成するために、制御部2111,2121の制御を司る。具体的には、制御部2111,2121に対して、原画像から時間的に前方向のフレーム画像および後方向のフレーム画像を参照画像とする要求をそれぞれおこなう。
また、双方向制御部2140は、後述する制御部2111,2121から入力された演算結果を用いて、原画像におけるBピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、制御部2111,2121から入力された演算結果のうち、原画像と参照画像との画素値の変化量が少ないマクロブロックを探索する。そして、探索されたマクロブロックと、参照画像における原画像の動きが0であった場合のマクロブロック間の位置関係から、原画像と参照画像間の動きを予測し、動きベクトルを算出する。
また、制御部2111,2121から入力された演算結果の平均によって、原画像と参照画像間の動きを予測してもよい。そして、外部装置では、たとえば、双方向制御部2140から入力された動きベクトルを参照して、原画像の符号化処理をおこない、Bピクチャを生成する。
そして、制御部2111,2121は、参照画像の中から、演算領域となる画像データの取得要求を外部メモリインタフェイス2130に出力する。
具体的には、たとえば、制御部2111は、原画像から時間的に前方向のフレーム画像の演算領域の画像データの取得要求を出力する。また、制御部2121は、原画像から時間的に後方向のフレーム画像の演算領域の画像データの取得要求を出力する。ここで、演算領域とは、具体的には、参照画像において、圧縮対象となる原画像に対応する画像情報を演算する領域である。
また、制御部2111,2121は、後述する演算部2113,2123の演算結果を画像情報として双方向制御部2140へ出力する。
画像情報とは、原画像における動きベクトルの算出元となる情報であり、たとえば、原画像および参照画像におけるマクロブロックの画素値の変化量などを用いることができる。また、演算部2113,2123は、演算部2113,2123それぞれの演算結果のうち、画素値の変化量の少ない演算結果を双方向制御部2140へ出力することとしてもよい。
外部メモリインタフェイス2130は、外部メモリ2150に対して、制御部2111,2121から入力された要求にしたがい、演算領域の画像データに関するデータリクエストをおこなう。
外部メモリ2150は、動画像を構成する一連のフレーム画像を記憶しており、外部メモリインタフェイス2130からのデータリクエストにしたがって、演算領域の画像データをキャッシュメモリ2112,2122に出力する。
キャッシュメモリ2112,2122は、外部メモリ2150から入力された画像データを一時記憶する。一時記憶された画像データは、制御部2111,2121の制御にしたがって、演算部2113,2123へ出力される。
演算部2113,2123は、圧縮対象となる原画像の画像データと、キャッシュメモリ2112,2122に記憶された演算領域の画像データとを参照して、原画像と演算領域との画像情報を演算する。そして、演算部2113,2123は、演算した画像情報を演算結果として制御部2111,2121へ出力する。
図20および図21で前述したように、Pピクチャを生成するための動きベクトルの算出と、Bピクチャを生成するための動きベクトルの算出においては、参照画像とするフレーム画像が原画像の前方向と双方向の違いのみである。
したがって、制御部2011,2111,2121とキャッシュメモリ2012,2112,2122と、演算部2013,2113,2123の構成はほぼ同様であり、従来より、動きベクトル算出装置2100の構成を用いて、Pピクチャを生成するための動きベクトルと、Bピクチャを生成するための動きベクトルの算出をおこなっている。
つぎに、図22を用いて、従来におけるPピクチャおよびBピクチャに関する動きベクトル算出装置の回路構成について説明する。図22は、従来におけるPピクチャおよびBピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
図22において、動きベクトル算出装置2200は、選択部2201と、2つの共通回路2110,2120と、外部メモリインタフェイス2130と、双方向制御部2140と、から構成されている。
また、共通回路2110,2120は、それぞれ制御部2111,2121と、キャッシュメモリ2112,2122と、演算部2113,2123と、から構成されている。なお、動きベクトル算出装置2200において、前述の図21とほぼ同様の機能を有する構成については、同一符号を付し、その説明を省略する。
動きベクトル算出装置2200は、Pピクチャを生成するための動きベクトルの算出と、Bピクチャを生成するための動きベクトルの算出をおこなうため、Pピクチャ、Bピクチャを生成するための動きベクトルの算出を切り替える、P/Bピクチャ切替信号2202の入力を図示しない外部装置から受け付ける。
図示しない外部装置から入力されたP/Bピクチャ切替信号2202は、双方向制御部2140、制御部2121、選択部2201に入力されて、動きベクトル算出装置2200は、入力されたP/Bピクチャ切替信号2202にしたがって、PピクチャあるいはBピクチャを生成するための動きベクトルを算出する。
選択部2201は、P/Bピクチャ切替信号2202にしたがって、制御部2111あるいは双方向制御部2140から入力される動きベクトルから、Pピクチャを生成するための動きベクトルあるいはBピクチャを生成するための動きベクトルを選択して、図示しない外部装置へ出力する。
一連のフレーム画像から構成される動画像の圧縮は、図19〜図22に前述したように、Iピクチャ、BピクチャおよびPピクチャによっておこなわれるため、各ピクチャタイプを生成するための動きベクトル算出の効率化が望まれている。
近年では、動きベクトルを探索する動画像圧縮方法および装置において、動きベクトルの探索の途中段階で最適な動きベクトルを判定して、探索処理を簡略化する。そして、ピクチャタイプの違いによる探索処理量を平均化し、効率よく動きベクトルを探索する提案がされている(たとえば、下記特許文献1参照。)。
特開平9−130808号公報
しかしながら、上述した従来技術では、Bピクチャは、IピクチャとPピクチャの間、あるいはPピクチャとPピクチャの間に序列されるため、Pピクチャの参照画像は、Bピクチャの参照画像と比較して、時間的に離れた画像となる。時間的に離れた画像を参照画像とすると移動距離が大きくなるため、Pピクチャにおける動きベクトルは、Bピクチャと比較して大きくなる。
そして、Pピクチャの動きベクトルの算出は、たとえば図22で前述したBピクチャの動きベクトルの算出に用いる共通回路(R)2110または共通回路(L)2120のいずれかを用いておこなっている。そのため、共通回路(R)2110および共通回路(L)2120について、Bピクチャにおける動きベクトル算出に適した処理能力であった場合、Bピクチャにおける演算領域と、Pピクチャにおける演算領域は同程度となる。
したがって、動きベクトルの大きなPピクチャでは、十分な演算領域を確保できないため、Pピクチャの精度が著しく低下するという問題があった。さらに、Pピクチャの精度が低下すると、Pピクチャを参照画像とするBピクチャの精度も低下するため、動画像全体の画質が低下してしまうという問題があった。
一方、共通回路(R)2110および共通回路(L)2120について、Pピクチャにおける動きベクトル算出に適した処理能力であった場合、Bピクチャにおける演算領域と、Pピクチャにおける演算領域は同程度となる。
したがって、動きベクトルの小さなBピクチャでは、演算領域が大きくなるため、無駄な処理によって、Bピクチャの生成が滞ってしまうという問題があった。さらに、Bピクチャの挿入が欠如すると、未来のフレーム画像を参照画像とするピクチャが欠如することとなり、物体の出現に対応できないため、動画像全体の画質が低下してしまうという問題があった。
この発明は、上述した従来技術による問題点を解消するため、簡単な回路構成により動画像の画質向上を図ることができる動きベクトル算出装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかる動きベクトル算出装置は、動画像を構成する一連のフレーム画像のうち、圧縮対象となる原画像から時間的に前後する方向である双方向のフレーム画像を参照画像とし前記原画像と前記参照画像とを用いて前記原画像の動きベクトルを算出する動きベクトル算出装置において、前記原画像と前記原画像から時間的に前となる前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第1の画像情報を演算する第1の演算手段と、前記原画像と前記原画像から時間的に後となる後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第2の画像情報を演算する第2の演算手段と、前記参照画像を、前記双方向のフレーム画像から前記前方向のみのフレーム画像に切り替える切替手段と、を備え、前記第2の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第1の画像情報とは異なる他の画像情報を演算することを特徴とする。
この発明によれば、演算手段を効率的に利用して、前方向のフレーム画像のみから動きベクトルの算出元となる画像情報を演算することができる。
また、上記発明において、記第1の演算手段は、前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第1の画像情報を演算し、前記第2の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算することとしてもよい。
この発明によれば、参照画像となる前方向のフレーム画像から、複数の演算領域について演算をおこなうため、広範囲の画像情報を演算することができる。
また、上記発明において、前記第1の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出することとしてもよい。
この発明によれば、参照画像となる前方向のフレーム画像において、広範囲の演算領域から演算された画像情報によって、原画像の動きベクトルを算出することができる。
また、上記発明において、前記第1の演算手段は、前記原画像と、前記前方向のフレーム画像における任意の演算領域内における第1の演算領域の画像とを用いて、前記動きベクトルの算出元となる第1の画像情報を演算し、前記第2の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の画像領域と同一の演算領域内における前記第1の演算領域とは異なる第2の演算領域の画像とを用いて、前記動きベクトルの算出元となる、前記第1の画像情報とは異なる前記他の画像情報を演算することとしてもよい。
この発明によれば、演算手段を効率的に用いて、同一の演算領域内を分担して、演算をおこなうため、処理の高速化を図ることができる。
また、上記発明において、前記第1の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出することとしてもよい。
この発明によれば、迅速な演算処理によって演算された画像情報によって、原画像の動きベクトルを算出することができる。
また、上記発明において、前記第1の演算手段は、前記原画像の画素値と前記第1の演算領域における画素値との絶対差分和を用いて、前記第1の画像情報を演算し、前記第2の演算手段は、前記原画像の画素値と前記第2の演算領域における画素値との絶対差分和を用いて、前記他の画像情報を演算することとしてもよい。
この発明によれば、任意の画像領域内における第1の画像領域および第1の画像領域とは異なる第2の画像領域の画素値を用いて、原画像における画素値との絶対差分和をそれぞれ演算することができる。
また、上記発明において、前記双方向のフレーム画像を参照画像とした場合、前記原画像と、前記前方向あるいは前記後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第3の画像情報を演算する第3の演算手段を、さらに備え、前記第3の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第1の画像情報および前記他の画像情報とは異なる別の画像情報を演算することとしてもよい。
この発明によれば、2より多い演算手段を備えている場合であっても、効率的に演算手段を利用して、参照画像となる前方向のフレーム画像から動きベクトルの算出元となる画像情報を演算することができる。
また、上記発明において、前記第1の演算手段は、前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第1の画像情報を演算し、前記第2の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算し、前記第3の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域および前記他の演算領域とは異なる別の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記別の画像情報を演算することとしてもよい。
この発明によれば、参照画像となる前方向のフレーム画像から、複数の演算領域について演算をおこなうため、広範囲の画像情報を演算することができる。
また、上記発明において、前記第1の画像情報と、前記他の画像情報と、前記別の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出することとしてもよい。
この発明によれば、参照画像となる前方向のフレーム画像において、広範囲の演算領域から演算された画像情報によって、原画像の動きベクトルを算出することができる。
この発明にかかる動きベクトル算出装置によれば、簡単な回路構成により動画像の画質向上を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる動きベクトル算出装置の好適な実施の形態を詳細に説明する。
(実施の形態1)
(動きベクトルの算出概要)
まず、図1−1、図1−2および図2−1〜図2−6を用いて、この発明の実施の形態1にかかる動きベクトルの算出の概要について説明する。この発明の実施の形態1にかかる動きベクトル算出装置では、圧縮対象となる原画像に関して、最適な動きベクトルを算出するために、画像情報として原画像と参照画像とのSAD(Sum of Absolute Difference:絶対差分和)を演算する。
具体的には、1マクロブロックの原画像と、参照画像における所定の演算領域中のSAD演算範囲とにおけるSADが最小となるSAD演算範囲の位置を探索する。そして、探索されたSAD演算範囲の位置と、参照画像における原画像の動きが0であった場合の位置との関係から動きベクトルを決定する。
SAD演算範囲とは、原画像と同等の範囲を有しており、たとえば、実施の形態1においては、1マクロブロックである。また、SADは、たとえば、1マクロブロックの原画像と、演算領域中の1マクロブロックのSAD演算範囲とについて、1画素ずつ比較した画素値における絶対値の総和である。
なお、圧縮対象となる原画像は、一連のフレーム画像によって構成される動画像の圧縮におけるPピクチャやBピクチャに含まれる画像とすればよいが、実施の形態1においては、Pピクチャに含まれる画像とする。また、参照画像は、原画像より時間的に過去、かつ原画像とは別のPピクチャあるいはIピクチャである。
まず、図1−1および図1−2を用いて、この発明の実施の形態1にかかる動きベクトル算出におけるSAD演算の概要について説明する。図1−1は、この発明の実施の形態1にかかる動きベクトル算出における原画像を示す説明図である。図1−1において、原画像110は、16×16画素の1マクロブロックから構成されており、それぞれの画素111における画素値は、Ox,yである。なお、x、yは、原画像における位置を示す数であり、0〜15の整数とする。
図1−2は、この発明の実施の形態1にかかる動きベクトル算出におけるSAD演算範囲を示す説明図である。図1−2において、SAD演算範囲120は、16×16画素の1マクロブロックから構成されており、それぞれの画素121における画素値は、Rx,yである。なお、x、yは、SAD演算範囲における位置を示す数であり、0〜15の整数とする。また、SAD演算範囲120は、参照画像における演算領域中の任意の1マクロブロックである。
前述の図1−1および図1−2より、1画素ずつ比較した画素値における絶対値の総和SADは、下記式(1)によってあらわすことができる。
Figure 2007221662
つぎに、図2−1〜図2−6を用いて、この発明の実施の形態1にかかる動きベクトルの決定について説明する。図2−1〜図2−6の説明では、SADについて、参照画像における演算領域のすべてを探索するように、演算領域内でSAD演算範囲を繰り返し変更してSADを演算する。なお、以降、本明細書では、演算領域内のすべてを探索する方法を全探索法とする。
図2−1は、この発明の実施の形態1にかかる全探索法について示す説明図(その1)である。図2−1において、演算領域200は、水平方向に−H〜H+15、垂直方向に−V〜V+15の範囲とし、演算範囲210を設定する。演算範囲210は、演算領域200において、原画像とのSADを演算する範囲であり、図2−1では、演算領域200の左上に位置している。そして、演算範囲210におけるSADを演算したら、図2−2に後述するように、水平方向右へ1画素移動した位置に別の演算範囲220を設定する。
そして、演算領域200について、1列目におけるすべてのSADの演算が終了したら、つづいて、図2−4で後述するように、演算範囲210から垂直方向下へ1画素移動した位置に別の演算範囲240を設定する。同様にして、演算範囲の設定を繰り返して、演算領域200のすべてについて、SADを演算する構成である。なお、全探索法については、より具体的に、以下に図2−2〜図2−6を用いて説明する。
図2−2は、この発明の実施の形態1にかかる全探索法について示す説明図(その2)である。図2−2において、演算領域200は、図2−1で前述した演算範囲210から水平方向右に1画素ずれた位置に演算範囲220が設定されている。そして、演算範囲220におけるSADを演算したら、さらに水平方向右へ移動した位置に別の演算範囲を設定することとなる。
図2−3は、この発明の実施の形態1にかかる全探索法について示す説明図(その3)である。図2−3において、演算領域200は、図2−1および図2−2で前述したように演算範囲の設定を繰り返し、演算領域200における1列目の最後(右上)の演算範囲230が設定されている。そして、演算範囲230におけるSADを演算し、図2−1で前述した演算範囲210から垂直方向下へ1画素移動した位置に別の演算範囲を設定する。
図2−4は、この発明の実施の形態1にかかる全探索法について示す説明図(その4)である。図2−4において、演算領域200は、図2−1で前述した演算範囲210から垂直方向下に1画素ずれた位置に演算範囲240が設定されている。そして、演算範囲240におけるSADを演算したら、図2−5に後述するように、演算範囲240から水平方向右へ1画素移動した位置に別の演算範囲250を設定する。
図2−5は、この発明の実施の形態1にかかる全探索法について示す説明図(その5)である。図2−5において、演算領域200は、図2−4で前述した演算範囲210から水平方向右に1画素ずれた位置に演算範囲250が設定されている。そして、演算範囲250におけるSADを演算したら、さらに水平方向右へ移動した位置に別の演算範囲を設定することとなる。
図2−6は、この発明の実施の形態1にかかる全探索法について示す説明図(その6)である。図2−6において、演算領域200は、図2−4および図2−5で前述したように演算範囲の設定を繰り返し、演算領域200における2列目の最後(2列目右端)の演算範囲260が設定されている。そして、演算範囲230におけるSADを演算する。そして、演算範囲260におけるSADを演算し、図2−4で前述した演算範囲240から垂直方向下へ1画素移動した位置に別の演算範囲を設定する。
図2−1〜図2−6のようにして処理を繰り返して、演算領域の全領域のSADを演算して、SADが最小となる演算範囲を求めて、原画像の動きベクトルを算出する。換言すれば、原画像との変化量が少ない演算範囲が、参照画像における原画像に対応するマクロブロックとなるため、変化量が少ない演算範囲と、参照画像における原画像の動きが0であった場合のマクロブロック間の位置関係から原画像の動きベクトルを算出することができることとなる。
(動きベクトル算出装置の回路構成)
つぎに、図3を用いて、この発明の実施の形態1にかかる動きベクトル算出装置の回路構成について説明する。図3は、この発明の実施の形態1にかかる動きベクトル算出装置の回路構成を示す説明図である。
図3において、動きベクトル算出装置300は、共通回路(R)310と、共通回路(L)320と、外部メモリインタフェイス330と、Pピクチャ制御部340と、から構成されている。また、共通回路(R)310は、制御部(R)311と、キャッシュメモリ(R)312と、演算部(R)313と、から構成されている。さらに、共通回路(L)320は、制御部(L)321と、キャッシュメモリ(L)322と、演算部(L)323と、から構成されている。
なお、図3の説明では、動きベクトル算出装置300について、Pピクチャを生成するための動きベクトルの算出について説明するが、Bピクチャを生成するための動きベクトルについては、従来技術と同様にして、図示を省略した双方向制御部によって算出することとしてもよい。
Pピクチャ制御部340は、制御部(R)311および制御部(L)321を同時使用するための制御を司る。具体的には、PピクチャおよびBピクチャを生成するための動きベクトルの算出を切り替えるP/Bピクチャ切替信号301の入力を、図示しない外部装置から受け付ける。
Pピクチャ制御部340は、入力されたP/Bピクチャ切替信号301にしたがい、共通回路(R)310および共通回路(L)320に対して制御信号を出力する。具体的には、Pピクチャを生成するための動きベクトルを算出する場合には、制御信号によって、参照画像を原画像における双方向のフレーム画像から前方向のフレーム画像に切り替えるよう制御する。
換言すれば、制御信号は、制御部(R)311および制御部(L)321に対して、原画像から時間的に前方向のフレーム画像を参照画像とする要求をそれぞれおこなうための信号である。
また、Pピクチャ制御部340は、後述する制御部(R)311および制御部(L)321から入力された演算結果を用いて、原画像におけるPピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、制御部(R)311および制御部(L)321から入力された演算結果を比較して、参照画像とした前方向のフレーム画像における原画像の移動先を特定することによって、原画像の動きベクトルを算出する。
より具体的には、制御部(R)311および制御部(L)321から入力された演算結果から、原画像との変化量が小さいマクロブロックを探索する。そして、探索されたマクロブロックと、参照画像における原画像の動きが0であった場合のマクロブロック間の位置関係から原画像と参照画像間の動きを予測し、動きベクトルを算出する。そして、外部装置では、たとえば、Pピクチャ制御部340から入力された動きベクトルを参照して、原画像の符号化処理をおこない、Pピクチャを生成する。
制御部(R)311および制御部(L)321は、参照画像の中から、演算領域となる画像データの取得要求を外部メモリインタフェイス330に出力する。
画像情報とは、たとえば、図1で前述したSADである。なお、実施の形態1では、制御部(R)311および制御部(L)321は、それぞれ原画像から時間的に前方向のフレーム画像の演算領域の画像データの取得要求を出力することとなる。
ここで、図4を用いて、この発明の実施の形態1にかかる原画像に対応するSADを演算する演算領域について説明する。図4は、この発明の実施の形態1にかかる原画像に対応するSADを演算する演算領域を示す説明図である。図4において、演算領域400は、右側の演算領域(R)410と、左側の演算領域(L)420から構成されている。
演算領域400は、原画像より時間的に前方向の参照画像に含まれる、水平方向に−H〜H+15、垂直方向に−V〜V+15の範囲の領域であり、中心の位置には、原画像における動きベクトルが0であった場合の演算範囲401が図示されている。
演算範囲401は、16×16画素の1マクロブロックから構成されており、原画像と1画素ずつ比較した画素値における絶対値の総和SADを算出する範囲である。また、演算範囲401は、演算領域410における任意の位置に設定できる構成であり、本明細書では、マクロブロックの左上の位置を用いて演算範囲(X,Y)として説明する。
具体的には、図4において、原画像における動きベクトルが0であった場合の演算範囲401は、演算範囲(0,0)となる。また、演算領域(L)420の左上に位置する場合は、演算範囲(−H,−V)となる。
演算領域(R)410および演算領域(L)420は、ともに原画像における動きベクトルが0であった場合の演算範囲401(演算範囲(0,0))を含む構成である。具体的には、演算領域(R)410は、水平方向に0〜H+15、垂直方向に−V〜V+15の範囲の領域であり、演算領域(L)420は、水平方向に−H〜15、垂直方向に−V〜V+15の範囲の領域である。
図3に戻って、制御部(R)311および制御部(L)321について説明する。制御部(R)311および制御部(L)321は、外部メモリインタフェイス330に対してそれぞれ演算領域の画像データの取得要求を出力する。具体的には、制御部(R)311は、図4で前述した演算領域(R)410の画像データの取得要求をおこなう。また、制御部(L)321は、図4で前述した演算領域(L)420の画像データの取得要求をおこなう。
それぞれの制御部(R)311および制御部(L)321が演算領域(R)410および演算領域(L)420の画像データの取得要求をおこなうことで、SADの演算領域が広範囲となり、より正確な動きベクトルの算出が可能となる。とくに、Bピクチャに比べて動きベクトルの大きなPピクチャの動きベクトルの算出には、有効な手法である。
また、制御部(R)311および制御部(L)321は、後述する演算部(R)313および演算部(L)323の演算結果によって、原画像における動きベクトルを算出するための画像情報を、Pピクチャ制御部340へ出力する。画像情報は、たとえば、図1で前述したSADで、演算部(R)313および演算部(L)323の演算結果それぞれについて、SADの最小値をPピクチャ制御部340へ出力する。
外部メモリインタフェイス330は、外部メモリ350に対して、制御部(R)311および制御部(L)321から入力された要求にしたがい、演算領域の画像データに関するデータリクエストをおこなう。具体的には、図4で前述した演算領域(R)410の画像データおよび共通回路320に図4で前述した演算領域(L)420の画像データに関するデータリクエストをおこなう。
外部メモリ350は、動画像を構成する一連のフレーム画像を記憶しており、外部メモリインタフェイス330からのデータリクエストにしたがって、演算領域の画像データをキャッシュメモリ(R)312およびキャッシュメモリ(L)322に出力する。具体的には、キャッシュメモリ(R)312へ図4で前述した演算領域(R)410の画像データを出力する。また、キャッシュメモリ(L)322へ図4で前述した演算領域(L)420の画像データを出力する。
キャッシュメモリ(R)312およびキャッシュメモリ(L)322は、外部メモリ350から入力された画像データをそれぞれ一時記憶する。一時記憶された画像データは、制御部(R)311および制御部(L)321の制御にしたがって、演算部(R)313および演算部(L)323へ出力される。
演算部(R)313および演算部(L)323は、圧縮対象となる原画像の画像データと、キャッシュメモリ(R)312およびキャッシュメモリ(L)322に記憶された演算領域の画像データとを用いて、原画像の動きベクトルの算出元となる画像情報を演算する。画像情報は、図1で前述したSADでもよく、演算部(R)313および演算部(L)323は、演算したSADを制御部(R)311および制御部(L)321へ出力する。
具体的には、演算部(R)313について説明すると、図2−1〜図2−6で前述した全探索法によって、図4における演算領域(R)410内すべての演算範囲(X,Y)におけるSADを演算する。そして、演算されたSADを制御部(R)311へ出力する。なお、実施の形態1においては、Xは、0〜H+15、Yは、−V〜V+15の範囲である。
以上図3で前述した、動きベクトル算出装置300では、原画像に対してSADを演算する演算領域を2つに分割して、2つの共通回路(R)310あるいは共通回路(L)320で分担して演算をおこなう構成である。したがって、共通回路の処理能力を増強することなく、広範囲な演算領域からSADを演算することができ、より正確な動きベクトルの算出が可能となる。とくに、Bピクチャに比べて動きベクトルの大きなPピクチャの動きベクトルの算出には、有効な手法である。
また、1つの共通回路(共通回路(R)310あるいは共通回路(L)320)だけでPピクチャにおけるSADを演算せずに、従来構成のBピクチャにおける動きベクトルを算出する共通回路(共通回路(R)310および共通回路(L)320)を利用して、演算領域を広範囲とすることができる。したがって、Pピクチャにおける動きベクトルの算出においても、効率的に回路を利用することができる。
(動きベクトル算出装置300の動きベクトル算出処理手順)
つぎに、図5を用いて、この発明の実施の形態1にかかる動きベクトル算出装置300の動きベクトル算出処理手順について説明する。図5は、この発明の実施の形態1にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。図5のフローチャートにおいて、まず、Pピクチャ制御部340は、共通回路(R)310および共通回路(L)320に対して制御信号を出力する(ステップS501)。
制御信号は、演算領域を設定する信号で、たとえば、制御部(R)311および制御部(L)321に対して、原画像から時間的に前方向の参照画像について、SADを演算する領域を図4で前述した演算領域(R)410と演算領域(L)420とする信号である。
ステップS501において入力された制御信号にしたがって、共通回路(R)310により、外部メモリ350から演算領域(R)410の画像データを読み込む(ステップS502)。画像データの読み込みは、具体的には、制御部(R)311により、外部メモリインタフェイス330を介して、外部メモリ350に対して演算領域(R)410の画像データの取得要求をおこなう。そして、取得要求にしたがって外部メモリ350から入力された演算領域(R)410の画像データをキャッシュメモリ(R)312により一時記憶する。
そして、ステップS502において読み込まれた画像データによって、共通回路(R)310により、演算領域(R)410で全探索処理をおこなう(ステップS503)。具体的には、制御部(R)311の制御にしたがって、演算部(R)313によりキャッシュメモリ(R)312に一時記憶された画像データを参照して、原画像と演算領域との画像情報であるSADを演算する。そして、演算されたSADにより、最小のSAD(minSAD(R))と、動きベクトル(Vector(R))を算出する。なお、ステップS503における全探索処理詳細については、図6に後述する。
以降、本明細書では、最小のSADをminSADとして、演算をおこなった共通回路が異なるminSADは、共通回路における(R)あるいは(L)を付すこととする。さらに、算出する動きベクトルをVectorとして、算出をおこなった共通回路が異なるVectorは、共通回路における(R)あるいは(L)を付すこととする。
具体的には、共通回路(R)で演算されたSADは、SAD(R)、minSADはminSAD(R)とし、共通回路(L)で演算されたSADは、SAD(L)、minSADはminSAD(L)とする。また、共通回路(R)で算出されたVectorは、Vector(R)とし、共通回路(L)で演算されたVectorは、Vector(L)とする。
つづいて、共通回路(R)310により、Pピクチャ制御部340へ、ステップS503における全探索処理によって算出されたminSAD(R)と、Vector(R)を出力する(ステップS504)。
また、共通回路(L)320においても、前述のステップS502〜ステップS504と同様にして、外部メモリ350から演算領域(L)420の画像データを読み込み(ステップS505)、演算領域(L)420で全探索処理をおこなう(ステップS506)。そして、ステップS506における全探索処理によって算出されたminSAD(L)と、Vector(L)を出力する(ステップS507)。
そして、Pピクチャ制御部340により、ステップS504およびステップS507において出力されたminSAD(R)とminSAD(L)を比較する。minSAD(R)とminSAD(L)は、図5では、たとえば、minSAD(L)がminSAD(R)より小さいか否か(minSAD(L)<minSAD(R)?)を判断する(ステップS508)。
ステップS508において、minSAD(L)がminSAD(R)より小さくない場合(ステップS508:No)は、minSADをminSAD(R)とするとともに、VectorをVector(R)として(ステップS509)、一連の処理を終了する。換言すれば、minSAD(L)がminSAD(R)を比較して、minSAD(R)の方が小さい(同値を含む)場合に、最小のSADをminSAD(R)として、minSAD(R)に対応するベクトルを動きベクトルとする。
また、ステップS508において、minSAD(L)がminSAD(R)より小さい場合(ステップS508:Yes)は、minSADをminSAD(L)とするとともに、VectorをVector(L)として(ステップS510)、一連の処理を終了する。
以上図5における動きベクトル算出処理によって、演算領域(R)410と演算領域(L)420の中から、最も小さいSADに基づく動きベクトルを算出することができる。換言すれば、原画像との変化量が最も少ないSADにより原画像の移動を予測して、動きベクトルを算出することができる。
つづいて、図6を用いて、この発明の実施の形態1にかかる動きベクトル算出装置300における全探索処理(図5のステップS503およびS506)手順について説明する。図6は、この発明の実施の形態1にかかる動きベクトル算出装置における全探索処理(図5のステップS503およびS506)手順を示すフローチャートである。なお、共通回路(R)310および共通回路(L)320における全探索処理は、ほぼ同様であるため、図6のフローチャートでは、共通回路(R)310について説明する。
図6のフローチャートにおいて、まず、制御部(R)311により初期設定をおこなう(ステップS601)。初期設定は、たとえば、演算領域(R)410における任意の演算範囲(X,Y)と、minSADに関する設定であり、minSAD=999999、X=0、Y=−Vに設定する。minSADは、たとえば、最大のSADより十分大きな値であればよい。また、共通回路(L)320における全探索処理の場合は、minSAD=999999、初期設定はX=−H、Y=−Vとなる。
つづいて、演算部(R)313により、キャッシュメモリ312に一時記憶された演算領域の中から、設定された演算範囲(X,Y)と、原画像とのSADを演算し(ステップS602)、制御部(R)311へ出力する。そして、ステップS602において演算されたSADをSADcurとし、制御部(R)311によりSADcurがminSADより小さいか否か(minSAD>SADcur?)を判断する(ステップS603)。
ステップS603においてSADcurがminSADより小さくない場合(ステップS603:No)は、制御部(R)311により、Xをインクリメント(X=X+1)する(ステップS605)。くわえて、制御部(R)311により演算領域(R)410において、水平方向の探索が終了したか否か(X>H?)を判断する(ステップS606)。
ステップS603において、SADcurがminSADより小さい場合(ステップS603:Yes)は、minSADをSADcur、Vectorを(X,Y)に設定し(ステップS604)、ステップS605へ移行する。
具体的には、設定されているminSADより演算されたSADcurが小さければ、minSADをより小さい方に更新する。また、原画像における動きベクトルが0の場合の演算範囲の位置(0,0)からSADcurにおける演算範囲(X,Y)の動きベクトル(X,Y)を算出する構成である。
具体的には、ステップS605およびステップS606では、演算領域(R)410において、ステップS602において演算した演算範囲(X,Y)から右に1画素移動した演算範囲(X,Y)が、演算領域(R)410を超えるか否かを判断する構成である。
なお、共通回路(L)320でステップS605およびステップS606をおこなう場合は、制御部(L)321により、Xをインクリメント(X=X+1)するとともに、演算領域(L)420において、水平方向の探索が終了したか否か(X>0?)を判断する構成である。
ステップS606において、水平方向の探索が終了していない場合(ステップS606:No)は、ステップS602へ戻って処理を繰り返す。また、ステップS606において、水平方向の探索が終了した場合(ステップS606:Yes)は、つづいて、制御部(R)311により、Xを初期化し、Yをインクリメント(X=0,Y=Y+1)する(ステップS607)。くわえて、制御部(R)311により演算領域(R)410において、垂直方向の探索が終了したか否か(Y>V?)を判断する(ステップS608)。
具体的には、ステップS607およびステップS608では、演算領域(R)410において、初期の水平方向の位置で演算した演算範囲(X,Y)から下に1画素移動した演算範囲(X,Y)が、演算領域(R)410を超えるか否かを判断する構成である。なお、共通回路(L)320でステップS607およびステップS608をおこなう場合は、制御部(L)321により、Xを初期化し、Yをインクリメント(X=0,Y=Y+1)するとともに、演算領域(L)420において、垂直方向の探索が終了したか否か(Y>V+15?)を判断する構成である。
ステップS608において、垂直方向の探索が終了していない場合(ステップS608:No)は、ステップS602へ戻って処理を繰り返す。また、ステップS608において、垂直方向の探索が終了した場合(ステップS608:Yes)は、minSADおよびVectorをminSAD(R)およびVector(R)として、図5におけるステップS503の全探索処理を終了して、ステップS508へ移行する。
また、共通回路(L)320で全探索処理をおこなった場合は、minSADおよびVectorをminSAD(L)およびVector(L)として、図5におけるステップS506の全探索処理を終了して、ステップS508へ移行する。
このように、この発明の実施の形態1によれば、参照画像における演算領域を2つの共通回路によって、分担してSADを演算することができるため、広範囲の演算領域からSADを演算し、適切な動きベクトルを算出することができる。したがって、Pピクチャの精度を向上させて、PピクチャおよびPピクチャを参照するBピクチャの画質が向上して、動画像全体の高画質化を実現することができる。
また、Bピクチャを生成するために用いる共通回路を使用して、Pピクチャに関する演算をおこなうため、演算回路を増設することなく、回路の効率的な利用を図ることができる。
(実施の形態2)
つぎに、この発明の実施の形態2について説明する。前述の実施の形態1では、図2−1〜図2−6で前述した全探索法によって動きベクトルを算出したが、実施の形態2では、追跡型探索法によって動きベクトルを算出する場合について説明する。
追跡型探索法は、演算範囲(X,Y)と、演算範囲(X,Y)の上下左右1画素ずつずれた位置の演算範囲(X+1,Y)、演算範囲(X−1,Y)、演算範囲(X,Y+1)、演算範囲(X,Y−1)のSADを演算して、SADの小さい箇所を演算範囲(X,Y)に置き換える。
そして、同様の処理を繰り返して、演算範囲(X,Y)の上下左右に、演算範囲(X,Y)よりSADの小さな箇所が探索されなくなるまで処理を繰り返し、動きベクトルを決定する方法である。なお、追跡型探索法の詳細は、図7−1〜図7−4で後述するが、この追跡型探索法によれば、図2−1〜図2−6で前述した、演算領域すべて演算範囲(X,Y)を探索する全探索法に比べて演算回数を削減することができる。
また、実施の形態2では、追跡型探索法を用いて、2つの共通回路で演算範囲(X,Y)の上下左右の演算を分担して演算をおこなうため、同じ処理時間で従来に比べて約2倍の演算が可能となり、広範囲の追跡探索がおこなえる。また、演算領域を分割せずに処理をおこなうため、実施の形態1に比べて、外部メモリ350から読み込む画像データの容量を削減でき、消費電力の削減および回路規模の縮小が実現できる。
なお、実施の形態2にかかる動きベクトル算出装置におけるSAD演算の概要については図1、動きベクトル算出装置の回路構成については図3、とそれぞれほぼ同様であるため説明を省略する。
まず、図7−1〜図7−4を用いて、この発明の実施の形態2にかかる動きベクトル算出装置の追跡型探索法について説明する。図7−1〜図7−4の説明では、図7−1〜図7−4の順序にしたがって動きベクトルを決定する構成である。
図7−1は、この発明の実施の形態2にかかる追跡型探索法について示す説明図(その1)である。図7−1において、演算範囲(X,Y)710は、原画像とのSADを演算する範囲で、たとえば、参照画像における任意の1マクロブロックである。演算範囲(X,Y)710は、過去の同位置のベクトルや、原画像の動きベクトルが0であった場合の位置などによって決定する構成でもよい。ここで、まず、追跡型探索法では、演算範囲(X,Y)710と原画像とのSADを演算する。
図7−2は、この発明の実施の形態2にかかる追跡型探索法について示す説明図(その2)である。図7−2において、演算範囲(X,Y)710の周辺である上下左右はそれぞれ、演算範囲(X+1,Y)721と、演算範囲(X−1,Y)722と、演算範囲(X,Y+1)723と、演算範囲(X,Y−1)724とである。
追跡型探索法では、演算範囲(X+1,Y)721、演算範囲(X−1,Y)722、演算範囲(X,Y+1)723、演算範囲(X,Y−1)724と、原画像におけるSADをそれぞれ演算する。
さらに、演算範囲(X,Y)710と、その周辺の演算範囲(X+1,Y)721、演算範囲(X−1,Y)722、演算範囲(X,Y+1)723、演算範囲(X,Y−1)724のSADをそれぞれ比較して、より小さなSADを検索する。図7−1〜図7−4の説明では、演算範囲(X−1,Y)722のSADが最小であったものとする。
図7−3は、この発明の実施の形態2にかかる追跡型探索法について示す説明図(その3)である。図7−3において、前述の図7−3でSADが最小であった演算範囲(X−1,Y)722の周辺である上下左右は、演算範囲(X,Y)710、演算範囲(X−2,Y)732、演算範囲(X−1,Y+1)733、演算範囲(X−1,Y−1)734である。そして、図7−2と同様にして、演算範囲(X,Y)710、演算範囲(X−2,Y)732、演算範囲(X−1,Y+1)733、演算範囲(X−1,Y−1)734のSADを演算して、より小さなSADを検索することとなる。
図7−4は、この発明の実施の形態2にかかる追跡型探索法について示す説明図(その4)である。図7−4において、演算範囲(X−5,Y−3)740は、図7−1〜図7−3を繰り返すことにより、周辺により小さなSADが検索できなくなった位置である。追跡型探索法では、前述の図7−1〜図7−4のようにして処理をおこない、動きベクトルを決定する。
具体的には、演算範囲(X,Y)を、原画像の動きベクトルが0であった場合の位置として、演算範囲(0,0)に設定する。そして、図7−1〜図7−4における追跡型探索法をおこなうと、周辺により小さいSADが検索できなくなる演算範囲(−5,−3)となることより、原画像の動きベクトルは、(−5,−3)ということになる。
なお、SADの演算は、図7−1〜図7−4の説明では、演算範囲(X,Y)710の周辺を上下左右に限定して演算する説明をしたが、演算範囲(X,Y)710の斜め右(左)上や、斜め右(左)下を周辺に含めてもよく、演算範囲(X,Y)710より所定の範囲に含まれる1マクロブロックである。
(追跡型探索法の処理手順)
ここで、図8を用いて、図7−1〜図7−4における追跡型探索法の処理手順について説明する。図8は、図7−1〜図7−4における追跡型探索法の処理手順について示すフローチャートである。なお、実施の形態2にかかる動きベクトル算出装置300における追跡型探索法の処理手順詳細については、図10に後述する。
図8のフローチャートにおいて、まず、動きベクトル算出装置300は、参照画像における任意の演算範囲(X,Y)を設定する(ステップS801)。そして、ステップS801において設定された演算範囲(X,Y)と、原画像とのSADを演算し(ステップS802)、このSADをSADcurとする。なお、図8の説明においては、原画像の動きベクトルが0であった場合を、演算範囲(0,0)として説明する。
動きベクトル算出装置300は、ステップS801において設定された演算範囲(X,Y)と、ステップ802において演算されたSADcurとによって、minSAD=SADcur,Vector=(X,Y)に設定する(ステップS803)。
minSADは、追跡型探索法の処理の各段階における最小のSADであり、Vectorは、追跡型探索法の処理の各段階における動きベクトルである。換言すれば、図8のフローチャートにおいて、追跡型探索法の処理の終了段階におけるminSADおよびVectorによって、原画像に対してSADが最小となる動きベクトルが決定できる。
つづいて、動きベクトル算出装置300により、演算範囲(X,Y)の1画素左の演算範囲(X−1,Y)におけるSADを演算し、SADcurとする(ステップS804)とともに、SADcurがminSADより小さいか否か(minSAD>SADcur?)を判断する(ステップS805)。
ステップS805において、SADcurがminSADより小さくない場合(ステップS805:No)は、つづいて、演算範囲(X,Y)の1画素右の演算範囲(X+1,Y)におけるSADを演算し、SADcurとする(ステップS807)とともに、SADcurがminSADより小さいか否か(minSAD>SADcur?)を判断する(ステップS808)。
また、ステップS805において、SADcurがminSADより小さい場合(ステップS805:Yes)は、minSADをSADcur、Vectorを(X−1,Y)に設定し(ステップS806)、ステップS807へ移行する。
具体的には、設定されているminSADより演算されたSADcurが小さければ、minSADをより小さい方に更新する。また、より小さいminSADに対応するVectorを設定する構成である。
ステップS808において、SADcurがminSADより小さくない場合(ステップS808:No)は、つづいて、演算範囲(X,Y)の1画素上の演算範囲(X,Y−1)におけるSADを演算し、SADcurとする(ステップS810)とともに、SADcurがminSADより小さいか否か(minSAD>SADcur?)を判断する(ステップS811)。
また、ステップS808において、SADcurがminSADより小さい場合(ステップS808:Yes)は、minSADをSADcur、Vectorを(X+1,Y)に設定し(ステップS809)、ステップS810へ移行する。
ステップS811において、SADcurがminSADより小さくない場合(ステップS811:No)は、つづいて、演算範囲(X,Y)の1画素下の演算範囲(X,Y+1)におけるSADを演算し、SADcurとする(ステップS813)とともに、SADcurがminSADより小さいか否か(minSAD>SADcur?)を判断する(ステップS814)。
また、ステップS811において、SADcurがminSADより小さい場合(ステップS811:Yes)は、minSADをSADcur、Vectorを(X,Y−1)に設定し(ステップS812)、ステップS813へ移行する。
ステップS814において、SADcurがminSADより小さくない場合(ステップS814:No)は、つづいて、Vectorが(X,Y)であるか否かを判断する(ステップS816)。
具体的には、ステップS804およびステップS807およびステップS810およびステップS813で演算されたSADが演算範囲(X,Y)におけるminSADより小さいことによって、(X,Y)以外の動きベクトルが設定されたか否かを判断する。
また、ステップS814において、SADcurがminSADより小さい場合(ステップS814:Yes)は、minSADをSADcur、Vectorを(X,Y+1)に設定し(ステップS815)、ステップS816へ移行する。
ステップS816において、Vectorが(X,Y)である場合(ステップS816:Yes)は、そのまま一連の処理を終了する。換言すれば、ステップS804およびステップS807およびステップS810およびステップS813で演算されたSADが演算範囲(X,Y)におけるminSADより大きいため、原画像に対してSADが最小となる動きベクトル(X,Y)を決定できる。
また、ステップS816において、Vectorが(X,Y)でない場合(ステップS816:No)は、minSAD=SADcur,Vector=(X,Y)として(ステップS817)、ステップS804へ戻って処理を繰り返す。
つぎに、図9を用いて、この発明の実施の形態2にかかる動きベクトル算出装置300における追跡型探索法によるSADの演算について説明する。実施の形態2では、追跡型探索法によるSADの演算を、動きベクトル算出装置300の共通回路(R)310および共通回路(L)320で分担しておこなう構成としている。
図9は、この発明の実施の形態2にかかる動きベクトル算出装置における追跡型探索法によるSADの演算について示す説明図である。なお、図9の説明では、図7−1〜図7−4で説明した演算範囲(X,Y)を用いて説明する。
図9において、参照画像における任意の演算範囲(X,Y)710の周辺である上下左右はそれぞれ、演算範囲(X+1,Y)721と、演算範囲(X−1,Y)722と、演算範囲(X,Y+1)723と、演算範囲(X,Y−1)724とである。実施の形態2における動きベクトル算出装置300では、追跡型探索法おいて、上下の演算範囲(X,Y+1)723、演算範囲(X,Y−1)724と、左右の演算範囲(X+1,Y)721、演算回路(X−1,Y)722とにおけるSADを、それぞれ共通回路(R)310および共通回路(L)320で分担して演算をおこなう構成である。
換言すれば、同一の演算領域における演算範囲(X,Y)710の上下の演算範囲(X,Y+1)723、演算範囲(X,Y−1)724を第1の演算領域、演算範囲(X,Y)710の左右の演算範囲(X+1,Y)721、演算回路(X−1,Y)722を第2の演算領域として、それぞれ共通回路(R)310および共通回路(L)320で分担して演算をおこなう。
具体的には、共通回路(R)310によって、上下の演算範囲(X,Y+1)723、演算範囲(X,Y−1)724におけるSADを演算し、共通回路(L)320によって、左右の演算範囲(X+1,Y)721、演算回路(X−1,Y)722におけるSADを演算する構成である。
実施の形態2における動きベクトル算出装置300による追跡型探索法の処理については図10で後述するが、共通回路(R)310および共通回路(L)320で分担して追跡型探索をおこなうため、従来の約半分の時間で演算範囲(X,Y)の周辺のSADを演算することが可能となる。したがって、処理時間の短縮を実現することができる。
(動きベクトル算出装置300の動きベクトル算出処理手順)
つぎに、図10を用いて、この発明の実施の形態2にかかる動きベクトル算出装置300の動きベクトル算出処理手順について説明する。図10は、この発明の実施の形態2にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。実施の形態2における動きベクトル算出装置300では、図9で前述した追跡型探索法を用いて動きベクトルを算出している。
図10のフローチャートにおいて、まず、Pピクチャ制御部340は、共通回路(R)310および共通回路(L)320に対して制御信号を出力する(ステップS1001)。制御信号は、たとえば、制御部(R)311および制御部(L)321に対して、原画像から時間的に前方向の参照画像について、SADを演算する演算領域の画像データを外部メモリ350から読み込み、キャッシュメモリ(R)312およびキャッシュメモリ(L)322に書き込むように要求する信号である。
そして、ステップS1001において出力された制御信号にしたがって、Pピクチャ制御部340によりキャッシュメモリ(R)312およびキャッシュメモリ(L)322に一時記憶された演算領域の画像データから、任意の演算範囲(X,Y)を設定する(ステップS1002)。
そして、Pピクチャ制御部340によりステップS1002において設定された演算範囲(X,Y)と、原画像とのSADを演算し(ステップS1003)、このSADをSADcurとする。なお、図10の説明においては、原画像の動きベクトルが0であった場合を、演算範囲(0,0)として説明する。
つづいて、Pピクチャ制御部340により図10のフローチャートにおける動きベクトル算出処理の設定を初期化する(ステップS1004)。設定の初期化は、たとえば、共通回路(R)310および共通回路(L)320それぞれにおいて用いるパラメータについて、それぞれ(R)および(L)を付す。
具体的には、ステップS1003において演算されたSADcurにより、minSAD=SADcurとし、minSAD(R)=minSAD、minSAD(L)=minSADに設定する。また、Vector=(X,Y)とし、Vector(R)=Vector、Vector(L)=Vectorに設定する。minSADは、たとえば、追跡型探索法の処理の各段階における最小のSADであり、また、Vectorは、追跡型探索法の処理の各段階における動きベクトルである。
そして、共通回路(R)310により、演算範囲(X,Y)の1画素上の演算範囲(X,Y−1)におけるSADを演算し、SADcur(R)とする(ステップS1005)とともに、SADcur(R)がminSAD(R)より小さいか否か(minSAD(R)>SADcur(R)?)を判断する(ステップS1006)。
ステップS1006において、SADcur(R)がminSAD(R)より小さくない場合(ステップS1006:No)は、つづいて、演算範囲(X,Y)の1画素下の演算範囲(X,Y+1)におけるSADを演算し、SADcur(R)とする(ステップS1008)とともに、SADcur(R)がminSAD(R)より小さいか否か(minSAD(R)>SADcur(R)?)を判断する(ステップS1009)。
また、ステップS1006において、SADcur(R)がminSAD(R)より小さい場合(ステップS1006:Yes)は、minSAD(R)をSADcur(R)、Vector(R)を(X,Y−1)に設定し(ステップS1007)、ステップS1008へ移行する。
具体的には、設定されているminSAD(R)より演算されたSADcur(R)が小さければ、minSAD(R)をより小さい方に更新する。また、より小さいminSAD(R)に対応するVector(R)を設定する構成である。
ステップS1009において、SADcur(R)がminSAD(R)より小さくない場合(ステップS1009:No)は、つづいて、ステップS1017へ移行する。なお、ステップS1017については、共通回路(L)320の処理の後にまとめて後述する。
また、ステップS1009において、SADcur(R)がminSAD(R)より小さい場合(ステップS1009:Yes)は、minSAD(R)をSADcur(R)、Vector(R)を(X,Y+1)に設定し(ステップS1010)、ステップS1017へ移行する。
つづいて、共通回路(L)320により、演算範囲(X,Y)の1画素左の演算範囲(X−1,Y)におけるSADを演算し、SADcur(L)とする(ステップS1011)とともに、SADcur(L)がminSAD(L)より小さいか否か(minSAD(L)>SADcur(L)?)を判断する(ステップS1012)。
ステップS1012において、SADcur(L)がminSAD(L)より小さくない場合(ステップS1012:No)は、つづいて、演算範囲(X,Y)の1画素右の演算範囲(X+1,Y)におけるSADを演算し、SADcur(L)とする(ステップS1014)とともに、SADcur(L)がminSAD(L)より小さいか否か(minSAD(L)>SADcur(L)?)を判断する(ステップS1015)。
また、ステップS1012において、SADcur(L)がminSAD(L)より小さい場合(ステップS1012:Yes)は、minSAD(L)をSADcur(L)、Vector(L)を(X−1,Y)に設定し(ステップS1013)、ステップS1014へ移行する。
ステップS1015において、SADcur(L)がminSAD(L)より小さくない場合(ステップS1015:No)は、つづいて、ステップS1017へ移行する。また、ステップS1015において、SADcur(L)がminSAD(L)より小さい場合(ステップS1015:Yes)は、minSAD(L)をSADcur(L)、Vector(L)を(X+1,Y)に設定し(ステップS1016)、ステップS1017へ移行する。
そして、ステップS1004〜ステップS1016までの処理において演算されたminSAD、minSAD(R)、minSAD(L)によって、minSAD=minSAD(R)かつminSAD=minSAD(L)であるか否かを判断する(ステップS1017)。換言すれば、共通回路(R)310および共通回路(L)320により演算されたminSAD(R)、minSAD(L)が、最小となったか否かを判断する。
ステップS1017において、minSAD=minSAD(R)かつminSAD=minSAD(L)であった場合(ステップS1017:Yes)は、そのまま一連の処理を終了する。そして、処理終了時点おけるVectorが、原画像に対してSADが最小となる動きベクトルなる。
また、ステップS1017において、minSAD=minSAD(R)かつminSAD=minSAD(L)とならない場合(ステップS1017:No)は、minSAD(L)がminSAD(R)より小さいか否かを判断する(ステップS1018)。
ステップS1018において、minSAD(L)がminSAD(R)より小さくない場合(ステップS1018:No)は、共通回路(R)310におけるパラメータを再設定して(ステップS1019)、ステップS1005およびステップS1011へ戻って処理を繰り返す。パラメータの再設定は、具体的には、minSAD=minSAD(R)、Vector=Vector(R)、(X,Y)=Vector(R)である。
また、ステップS1018において、minSAD(L)がminSAD(R)より小さい場合(ステップS1018:Yes)は、共通回路(L)320におけるパラメータを再設定して(ステップS1020)、ステップS1005およびステップS1011へ戻って処理を繰り返す。パラメータの再設定は、具体的には、minSAD=minSAD(L)、Vector=Vector(L)、(X,Y)=Vector(L)である。
このように、この発明の実施の形態2によれば、演算領域の全領域についてSADを演算することなく、追跡型探索によって最小のSADを探索することができる。したがって、動きベクトル算出に関する処理時間を短縮することで、適切なPピクチャを得ることができる。
そして、適切なPピクチャを得ることによって、PピクチャおよびPピクチャを参照するBピクチャの画質が向上して、動画像全体の高画質化を実現することができる。また、追跡型探索においても、2つの共通回路によって分担してSADの演算をおこなうため、回路規模の縮小も実現することができる。
(実施の形態3)
(動きベクトル算出装置の回路構成)
つぎに、この発明の実施の形態3について説明する。前述の実施の形態1および実施の形態2では、2つのキャッシュメモリ(R)312とキャッシュメモリ(L)322とを用いてSADの演算をおこなっていた。実施の形態3では、SADを演算する演算領域の画像データを一時記憶する1つのキャッシュメモリによって、原画像の動きベクトルを算出する場合について説明する。キャッシュメモリを1つとして処理をおこなうことによって、キャッシュメモリの消費電力の削減に繋がる。なお、実施の形態3にかかる動きベクトル算出におけるSAD演算については図1−1および図1−2、全探索法については図2−1〜図2−6、とそれぞれほぼ同様であるため説明を省略する。
まず、図11を用いてこの発明の実施の形態3にかかる動きベクトル算出装置の回路構成について説明する。図11は、この発明の実施の形態3にかかる動きベクトル算出装置の回路構成を示す説明図である。なお、図11において、図3とほぼ同様である構成については、図3と同一符号を付し、その説明を省略する。
図11において、動きベクトル算出装置1100は、共通回路(R)310と、共通回路(L)320と、外部メモリインタフェイス330と、Pピクチャ制御部340と、から構成されている。また、共通回路(R)310は、制御部(R)311と、演算部(R)313と、から構成されている。さらに、共通回路(L)320は、制御部(L)321と、キャッシュメモリ1101と、演算部(L)323と、から構成されている。
キャッシュメモリ1101は、外部メモリ350から入力された参照画像における演算領域の画像データをそれぞれ一時記憶する。一時記憶された画像データは、制御部(L)321の制御にしたがって、演算部(R)313および演算部(L)323へ出力される。
なお、図11の説明では、キャッシュメモリ1101は、共通回路(L)320に含まれる構成としているが、共通回路(R)310に含まれていてもよい。さらに、図3で前述したキャッシュメモリ(R)312あるいはキャッシュメモリ(L)322によって、その機能を実現する構成でもよい。
ここで、画像データの出力は、たとえば、参照画像における演算領域の任意の演算範囲(X,Y)について、奇数列と偶数列の演算範囲(X,Y)におけるSADを、演算部(R)313と演算部(L)323のそれぞれで分担して演算するよう、画像データを演算部(R)313と演算部(L)323に出力する。
ここで、図12を用いて、この発明の実施の形態3にかかる原画像に対応するSADを演算する演算領域について説明する。図12は、この発明の実施の形態3にかかる原画像に対応するSADを演算する演算領域を示す説明図である。図12において、演算領域1200は、1列目の演算範囲群1201と、2列目の演算範囲群1202と、から構成されている。
具体的には、演算領域1200において、水平方向を−H〜H、垂直方向を−V〜Vとすると、演算範囲群1201は、演算範囲(−H,−V)、演算範囲(−H+1,−V)、演算範囲(−H+2,−V)・・・となる。また、演算範囲群1202は、演算範囲(−H,−V+1)、演算範囲(−H+1,−V+1)、演算範囲(−H+2,−V+1)・・・となる。また、図示はしないが、同様にして、3列目や4列目の演算範囲群もあらわすことができる。
図11へ戻って、キャッシュメモリ1101は、制御部(L)321の制御にしたがって、演算範囲群1201を演算部(L)323へ出力し、演算範囲群1202を演算部(R)313へ出力する。そして、演算部(R)313および演算部(L)323は、演算範囲群1201,1202を参照してそれぞれSADを演算する。
換言すれば、演算部(R)313および演算部(L)323は、キャッシュメモリ1101から同一の演算領域1200における16画素×17列分の画像データを読み込んで、上部1マクロブロックを第1の演算領域、下部1マクロブロックを第2の演算領域とし、それぞれSADを分担して演算する。そして、図2−1〜図2−6で前述した全探索法によって演算領域1200内のSADを演算して、動きベクトルを算出することができる。
なお、演算領域1200の垂直方向が奇数の場合は、最後の演算範囲群である演算範囲(−H,V)、演算範囲(−H+1,V)、演算範囲(−H+2,V)・・・演算範囲(H,V)を演算回路(L)323で演算し、演算回路(R)313は動作しないようにしてもよい。
(動きベクトル算出装置1100の動きベクトル算出処理手順)
つぎに、図13を用いて、この発明の実施の形態3にかかる動きベクトル算出装置1100の動きベクトル算出処理手順について説明する。図13は、この発明の実施の形態3にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。実施の形態3における動きベクトル算出装置1100では、前述したキャッシュメモリ1101によって、演算範囲群を共通回路(R)310および共通回路(L)320で分担して演算する処理について説明する。
図13のフローチャートにおいて、まず、制御部(R)311および制御部(L)321により初期設定をおこなう(ステップS1301)。初期設定は、たとえば、演算領域1200における任意の演算範囲(X,Y)と、minSADに関する設定であり、minSAD=999999、X=−H、Y=−Vに設定する。minSADは、たとえば、最大のSADより十分大きな値であればよい。また、共通回路(L)320における全探索処理の場合は、minSAD=999999、初期設定はX=−H、Y=−Vとなる。
つづいて、制御部(L)321の制御にしたがって、演算部(R)313および演算部(L)323は、キャッシュメモリ1101から16画素×17列の画像データを読み込む(ステップS1302)。画像データの読み込みは、たとえば、16画素×17列の画像データのうち、上部のマクロブロックである演算範囲(X,Y)を演算部(L)323によって読み込み、下部のマクロブロックである演算範囲(X,Y+1)を演算部(R)313によって読み込む。
そして、演算部(R)313により、キャッシュメモリ1101から読み込まれた演算範囲(X,Y+1)と、原画像とのSADを演算し(ステップS1303)、演算されたSADをSADcur(R)として制御部(R)311へ出力する。同様に、演算部(L)323により、キャッシュメモリ1101から読み込まれた演算範囲(X,Y)と、原画像とのSADを演算し(ステップS1304)、演算されたSADをSADcur(L)として制御部(L)321へ出力する。
つぎに、制御部(L)321により、ステップS1304において演算されたSADcur(L)がminSADより小さいか否か(minSAD>SADcur(L)?)を判断する(ステップS1305)。
ステップS1305において、SADcur(L)がminSADより小さくない場合(ステップS1305:No)は、ステップS1307へ移行して、制御部(R)311により、ステップS1303において演算されたSADcur(R)がminSADより小さいか否か(minSAD>SADcur(R)?)を判断する(ステップS1307)。
また、ステップS1305において、SADcur(L)がminSADより小さい場合(ステップS1305:Yes)は、minSADをSADcur(L)、Vectorを(X,Y)に設定し(ステップS1306)、ステップS1307へ移行する。
具体的には、設定されているminSADより演算されたSADcur(L)が小さければ、minSADをより小さい方に更新する。また、原画像における動きベクトルが0の場合の演算範囲の位置(0,0)からSADcur(L)における演算範囲(X,Y)の動きベクトル(X,Y)を算出する構成である。
つづいて、ステップS1307において、SADcur(R)がminSADより小さくない場合(ステップS1307:No)は、制御部(R)311あるいは制御部(L)321により、Xをインクリメント(X=X+1)する(ステップS1309)。くわえて、制御部(R)311および制御部(L)321により、により演算領域1200において、水平方向の探索が終了したか否か(X>H?)を判断する(ステップS1310)。
ステップS1307において、SADcur(R)がminSADより小さい場合(ステップS1307:Yes)は、minSADをSADcur(R)、Vectorを(X,Y+1)に設定し(ステップS1308)、ステップS1309へ移行する。
ステップS1310において、水平方向の探索が終了していない場合(ステップS1310:No)は、ステップS1302へ戻って処理を繰り返す。また、ステップS1310において、水平方向の探索が終了した場合(ステップS1310:Yes)は、つづいて、制御部(R)311および制御部(L)321により、Xを初期化し、Yを2列分インクリメント(X=0,Y=Y+2)する(ステップS1311)。くわえて、制御部(R)311および制御部(L)321により演算領域1200において、垂直方向の探索が終了したか否か(Y>V?)を判断する(ステップS1312)。
そして、ステップS1312において、垂直方向の探索が終了していない場合(ステップS1312:No)は、ステップS1302へ戻って処理を繰り返す。また、ステップS1312において、垂直方向の探索が終了した場合(ステップS1312:Yes)は、そのまま一連の処理を終了する。そして、処理終了時点おけるVectorが、原画像に対してSADが最小となる動きベクトルとなる。
このように、この発明の実施の形態3によれば、参照画像における演算領域を2つの共通回路によって、分担してSADを演算する際、キャッシュメモリを1つにして処理をおこなうため、回路で使用される消費電力の低減を図ることができる。
(実施の形態4)
(動きベクトル算出装置の回路構成)
つぎに、この発明の実施の形態4について説明する。前述の実施の形態1、実施の形態2および実施の形態3では、2つの演算部(R)313と、演算部(L)323とを用いてSADの演算をおこなっていた。実施の形態4では、実施の形態1で前述した演算領域400における、右側の演算領域(R)410と、左側の演算領域(L)420について、1つの演算部でSADを演算する場合について説明する。実施の形態4の構成では、複数の演算領域からSADを演算するため、従来より広範囲の探索が可能となっている。
まず、図14を用いてこの発明の実施の形態4にかかる動きベクトル算出装置の回路構成について説明する。図14は、この発明の実施の形態4にかかる動きベクトル算出装置の回路構成を示す説明図である。なお、図14において、図3とほぼ同様である構成については、図3と同一符号を付し、その説明を省略する。
図14において、動きベクトル算出装置1400は、共通回路(R)310と、共通回路(L)320と、外部メモリインタフェイス330と、Pピクチャ制御部340と、から構成されている。また、共通回路(R)310は、制御部(R)311と、キャッシュメモリ(R)312と、から構成されている。さらに、共通回路(L)320は、制御部(L)321と、キャッシュメモリ1322と、演算部1401と、から構成されている。
演算部1401は、圧縮対象となる原画像の画像データと、キャッシュメモリ(R)312およびキャッシュメモリ(L)322に記憶された演算領域の画像データとを参照して、原画像と演算領域との画像情報であるSADを演算する。そして、演算部1401は、演算したSADを制御部(L)321へ出力する。
ここで、図15を用いて、この発明の実施の形態4にかかる原画像に対応するSADを演算する演算領域について説明する。図15は、この発明の実施の形態4にかかる原画像に対応するSADを演算する演算領域を示す説明図である。図15において、実施の形態4にかかる演算領域は、図4と同様の構成であるため、同一符号を付す。演算領域400は、右側の演算領域(R)410と、左側の演算領域(L)420から構成されている。
そして、それぞれの制御部(R)311および制御部(L)321が演算領域(R)410および演算領域(L)420の画像データの取得要求をおこない、画像データは、演算部1401へ入力される。このようにすることで、SADの演算領域が広範囲となり、より正確な動きベクトルの算出が可能となる。
なお、図14の説明では、演算部1401は、共通回路(L)320に含まれる構成としているが、共通回路(R)310に含まれていてもよい。さらに、図3で前述した演算部(R)313あるいは演算部(L)323によって、その機能を実現する構成でもよい。なお、動きベクトル算出処理の手順は、前述した全探索法および追跡型探索法を用いておこなってもよい。
このように、この発明の実施の形態4によれば、参照画像における演算領域を2つの共通回路によって、分担してSADを演算する際、演算回路を1つにして処理をおこなうため、回路で使用される消費電力の低減を図ることができる。さらに、演算領域を分割して、SADを演算することができるため、広範囲の演算領域からSADを演算し、適切な動きベクトルを算出し、動画像全体の高画質化を実現することができる。
(実施の形態5)
(動きベクトル算出装置の回路構成)
つぎに、この発明の実施の形態5について説明する。前述の実施の形態1〜4では、2つの共通回路(R)310および共通回路(L)320とを用いてSADの演算をおこなっていた。実施の形態5では、共通回路を3つ設けてSADを演算する場合について説明する。より多くの共通回路を利用することで、探索範囲の拡大や処理能力濃厚状などを図ることができ、高画質の画像を得ることができる。なお、実施の形態5では、3つの共通回路について説明するが、4つ以上の共通回路を有する場合にも同様である。
また、実施の形態5にかかる動きベクトル算出におけるSAD演算については図1−1および図1−2、全探索法については図2−1〜図2−6、とそれぞれほぼ同様であるため説明を省略する。
まず、図16を用いてこの発明の実施の形態5にかかる動きベクトル算出装置の回路構成について説明する。図16は、この発明の実施の形態5にかかる動きベクトル算出装置の回路構成を示す説明図である。なお、図16において、図3とほぼ同様である構成については、図3と同一符号を付し、その説明を省略する。
図16において、動きベクトル算出装置1600は、共通回路(1)1610と、共通回路(2)1620と、共通回路(3)1630と、外部メモリインタフェイス330と、Pピクチャ制御部340と、から構成されている。
共通回路(1)1610と、共通回路(2)1620と、共通回路(3)1630とは、それぞれ図示はしないが、制御部と、キャッシュメモリと、演算部と、から構成されており、機能については図3で前述した共通回路(R)310および共通回路(L)320とほぼ同様であるため説明を省略する。
ここで、図17を用いて、この発明の実施の形態5にかかる原画像に対応するSADを演算する演算領域について説明する。図17は、この発明の実施の形態5にかかる原画像に対応するSADを演算する演算領域を示す説明図である。図17において、演算領域1700は、左側の演算領域(1)1701と、真ん中の演算領域(2)1702と、左側の演算領域(3)1703と、から構成されている。
演算領域1700は、前述の図4と同様にして、原画像より時間的に前方向の参照画像に含まれる領域であり、たとえば、演算領域(1)1701、演算領域(2)1702、演算領域(3)1703のそれぞれに原画像における動きベクトルが0であった場合の演算範囲を含む構成である。
図16に戻って、共通回路(1)1610、共通回路(2)1620および共通回路(3)1630について説明する。共通回路(1)1610、共通回路(2)1620および共通回路(3)1630は、図示しないそれぞれの制御部により、外部メモリインタフェイス330に対してそれぞれ演算領域の画像データの取得要求を出力する。
具体的には、共通回路(1)1610は、図17で前述した演算領域(1)1701の画像データの取得要求をおこなう。また、共通回路(2)1620は、図17で前述した演算領域(2)1702の画像データの取得要求をおこなう。また、同様に、共通回路(3)1630は、図17で前述した演算領域(3)1703の画像データの取得要求をおこなう。
そして、共通回路(1)1610、共通回路(2)1620および共通回路(3)1630では、図示しない演算部は、図2−1〜図2−6で前述した全探索法によって、演算領域1700内すべての演算範囲(X,Y)におけるSADを演算する。そして、演算されたSADをPピクチャ制御部340に出力し、Pピクチャ制御部340は、原画像におけるPピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、共通回路(1)1610、共通回路(2)1620および共通回路(3)1630における図示しない演算部から入力された演算結果をそれぞれ比較して、参照画像とした前方向のフレーム画像における原画像の移動先を特定することによって、原画像の動きベクトルを算出する。
このように、演算領域1700を3分割して、共通回路(1)1610、共通回路(2)1620および共通回路(3)1630で分担してSADを演算するため、共通回路それぞれの処理能力を増強することなく、SADの演算領域を広範囲とすることができ、より正確な動きベクトルの算出が可能となる。とくに、Bピクチャに比べて動きベクトルの大きなPピクチャの動きベクトルの算出には、有効な手法である。
(動きベクトル算出装置1600の動きベクトル算出処理手順)
つぎに、図18を用いて、この発明の実施の形態5にかかる動きベクトル算出装置1600の動きベクトル算出処理手順について説明する。図18は、この発明の実施の形態5にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。
図18のフローチャートにおいて、まず、Pピクチャ制御部340は、共通回路(1)1610、共通回路(2)1620および共通回路(3)1630に対して制御信号を出力する(ステップS1801)。
制御信号は、演算領域を設定する信号で、たとえば、共通回路(1)1610、共通回路(2)1620および共通回路(3)1630に対して、原画像から時間的に前方向の参照画像について、SADを演算する領域を、図17で前述した演算領域(1)1701、演算領域(2)1702および演算領域(3)1703とする信号である。
ステップS1801において入力された制御信号にしたがって、共通回路(1)1610により、外部メモリ350から演算領域(1)1701の画像データを読み込む(ステップS1802)。画像データの読み込みは、たとえば、図示しない制御部などにより、外部メモリインタフェイス330を介しておこなわれる。
外部メモリインタフェイス330は、具体的には、外部メモリ350に対して演算領域(1)1701の画像データの取得要求をおこなう。そして、取得要求にしたがって外部メモリ350から入力された演算領域(1)1701の画像データを図示しないキャッシュメモリなどにより一時記憶する。
そして、ステップS1802において読み込まれた画像データによって、共通回路(1)1610により、演算領域(1)1701で全探索処理をおこなう(ステップS1803)。
具体的には、キャッシュメモリに一時記憶された画像データを参照して、原画像と演算領域との画像情報であるSADを演算する。そして、演算されたSADにより、最小のSAD(minSAD(1))と、動きベクトル(Vector(1))を算出する。なお、ステップS1803における全探索処理詳細については、前述の図6とほぼ同様であり、(L)および(R)を(1)、(2)および(3)と読み替えることとして説明を省略する。
以降、本明細書では、最小のSADをminSADとして、演算をおこなった共通回路が異なるminSADは、共通回路における(1)、(2)あるいは(3)を付すこととする。さらに、算出する動きベクトルをVectorとして、算出をおこなった共通回路が異なるVectorは、共通回路における(1)、(2)あるいは(3)を付すこととする。
具体的には、共通回路(1)で演算されたSADは、SAD(1)、minSADはminSAD(1)とし、共通回路(2)で演算されたSADは、SAD(2)、minSADはminSAD(2)とし、共通回路(3)で演算されたSADは、SAD(3)、minSADはminSAD(3)とする。
また、共通回路(1)で算出されたVectorは、Vector(1)とし、共通回路(2)で演算されたVectorは、Vector(2)とし、共通回路(3)で算出されたVectorは、Vector(3)とする。
つづいて、共通回路(1)1610により、Pピクチャ制御部340へ、ステップS1803における全探索処理によって算出されたminSAD(1)と、Vector(1)を出力する(ステップS1804)。
また、共通回路(2)1620および共通回路(3)1630においても、前述のステップS1802〜ステップS1804と同様にして、外部メモリ350から演算領域(2)1702および演算領域(3)1703の画像データを読み込み(ステップS1805,ステップS1808)、演算領域(2)1702および演算領域(3)1703で全探索処理をおこなう(ステップS1806,ステップS1809)。
そして、ステップS1806およびステップS1809における全探索処理によって算出されたminSAD(2)およびminSAD(3)と、Vector(2)およびVector(3)を出力する(ステップS1807,ステップS1810)。
そして、Pピクチャ制御部340により、ステップS1804,ステップS1807およびステップS1810において出力されたminSAD(1)と、minSAD(2)と、minSAD(3)とを比較する。
具体的には、図18では、まず、minSAD(1)がminSAD(2)以下であり、かつ、minSAD(1)がminSAD(3)以下であるか否かを判断する(ステップS1811)。換言すれば、共通回路(1)1610で演算されたminSAD(1)が最も小さいか否かを判断する。
ステップS1811において、minSAD(1)がminSAD(2)以下であり、かつ、minSAD(1)がminSAD(3)以下である場合(ステップS1811:Yes)は、minSADをminSAD(1)とするとともに、VectorをVector(1)として(ステップS1812)、一連の処理を終了する。
換言すれば、minSAD(1)と、minSAD(2)と、minSAD(3)とを比較した結果、minSAD(1)が最も小さい場合に、最小のSADをminSAD(1)として、minSAD(1)に対応するベクトルを動きベクトルとする。
また、ステップS1811において、minSAD(1)がminSAD(2)以下でない、または、minSAD(1)がminSAD(3)以下でない場合(ステップS1811:No)は、つづいて、minSAD(2)がminSAD(1)以下であり、かつ、minSAD(2)がminSAD(3)以下であるか否かを判断する(ステップS1813)。
具体的には、minSAD(1)と、minSAD(2)と、minSAD(3)のうち、ステップS1811において、minSAD(1)が最小でないことから、共通回路(2)1610で演算されたminSAD(2)が最も小さいか否かを判断することとする。
ステップS1813において、minSAD(2)がminSAD(1)以下であり、かつ、minSAD(2)がminSAD(3)以下である場合(ステップS1813:Yes)は、minSADをminSAD(2)とするとともに、VectorをVector(2)として(ステップS1814)、一連の処理を終了する。
換言すれば、minSAD(1)と、minSAD(2)と、minSAD(3)とを比較した結果、minSAD(2)が最も小さい場合に、最小のSADをminSAD(2)として、minSAD(2)に対応するベクトルを動きベクトルとする。
また、ステップS1813において、minSAD(2)がminSAD(1)以下でない、または、minSAD(2)がminSAD(3)以下でない場合(ステップS1813:No)は、minSADをminSAD(3)とするとともに、VectorをVector(3)として(ステップS1815)、一連の処理を終了する。
換言すれば、minSAD(1)と、minSAD(2)と、minSAD(3)とを比較した結果、minSAD(3)が最も小さい場合に、最小のSADをminSAD(3)として、minSAD(3)に対応するベクトルを動きベクトルとする。
以上図18における動きベクトル算出処理によって、演算領域(1)1701と演算領域(2)1702と演算領域(3)1703の中から、最も小さいSADに基づく動きベクトルを算出することができる。換言すれば、原画像との変化量が最も少ないSADにより、原画像の移動を予測して動きベクトルを算出することができる。
このように、この発明の実施の形態5によれば、2つ以上の共通回路を備える場合、参照画像における演算領域を、複数の共通回路によって分担してSADを演算することができる。したがって、演算回路を増設することなく、回路の効率的な利用を図るとともに、広範囲の演算領域からSADを演算し、適切な動きベクトルを算出することができ、動画像全体の高画質化を実現することができる。
以上説明したように、この発明によれば、動きベクトルを算出する回路を増設することなく、簡単な回路構成によって動画像の画質向上を図ることができる。
以上のように、本発明にかかる動きベクトル算出装置は、動画像の圧縮に有用であり、とくに複数の参照画像を参照して動きベクトルを算出する場合に適している。
この発明の実施の形態1にかかる動きベクトル算出における原画像を示す説明図である。 この発明の実施の形態1にかかる動きベクトル算出におけるSAD演算範囲を示す説明図である。 この発明の実施の形態1にかかる全探索法について示す説明図(その1)である。 この発明の実施の形態1にかかる全探索法について示す説明図(その2)である。 この発明の実施の形態1にかかる全探索法について示す説明図(その3)である。 この発明の実施の形態1にかかる全探索法について示す説明図(その4)である。 この発明の実施の形態1にかかる全探索法について示す説明図(その5)である。 この発明の実施の形態1にかかる全探索法について示す説明図(その6)である。 この発明の実施の形態1にかかる動きベクトル算出装置の回路構成を示す説明図である。 この発明の実施の形態1にかかる原画像に対応するSADを演算する演算領域を示す説明図である。 この発明の実施の形態1にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。 この発明の実施の形態1にかかる動きベクトル算出装置における全探索処理(図5のステップS503およびS506)手順を示すフローチャートである。 この発明の実施の形態2にかかる追跡型探索法について示す説明図(その1)である。 この発明の実施の形態2にかかる追跡型探索法について示す説明図(その2)である。 この発明の実施の形態2にかかる追跡型探索法について示す説明図(その3)である。 この発明の実施の形態2にかかる追跡型探索法について示す説明図(その3)である。 図7−1〜図7−4における追跡型探索法の処理手順について示すフローチャートである。 この発明の実施の形態2にかかる動きベクトル算出装置における追跡型探索法によるSADの演算について示す説明図である。 この発明の実施の形態2にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。 この発明の実施の形態3にかかる動きベクトル算出装置の回路構成を示す説明図である。 この発明の実施の形態3にかかる原画像に対応するSADを演算する演算領域を示す説明図である。 この発明の実施の形態3にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。 この発明の実施の形態4にかかる動きベクトル算出装置の回路構成を示す説明図である。 この発明の実施の形態4にかかる原画像に対応するSADを演算する演算領域を示す説明図である。 この発明の実施の形態5にかかる動きベクトル算出装置の回路構成を示す説明図である。 この発明の実施の形態5にかかる原画像に対応するSADを演算する演算領域を示す説明図である。 この発明の実施の形態5にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。 Iピクチャ、BピクチャおよびPピクチャの概要を示す説明図である。 従来におけるPピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。 従来におけるBピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。 従来におけるPピクチャおよびBピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
符号の説明
110 原画像
111,121 画素
120 SAD演算範囲
200 演算領域
210,220,230,240,250,260 演算範囲
300 動きベクトル算出装置
301 P/Bピクチャ切替信号
310 共通回路(R)
311 制御部(R)
312 キャッシュメモリ(R)
313 演算部(R)
320 共通回路(L)
321 制御部(L)
322 キャッシュメモリ(L)
323 演算部(L)
330 外部メモリインタフェイス
340 Pピクチャ制御部
350 外部メモリ
400 演算領域
410 演算領域(R)
420 演算領域(L)

Claims (9)

  1. 動画像を構成する一連のフレーム画像のうち、圧縮対象となる原画像から時間的に前後する方向である双方向のフレーム画像を参照画像とし前記原画像と前記参照画像とを用いて前記原画像の動きベクトルを算出する動きベクトル算出装置において、
    前記原画像と前記原画像から時間的に前となる前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第1の画像情報を演算する第1の演算手段と、
    前記原画像と前記原画像から時間的に後となる後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第2の画像情報を演算する第2の演算手段と、
    前記参照画像を、前記双方向のフレーム画像から前記前方向のみのフレーム画像に切り替える切替手段と、を備え、
    前記第2の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第1の画像情報とは異なる他の画像情報を演算することを特徴とする動きベクトル算出装置。
  2. 前記第1の演算手段は、
    前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第1の画像情報を演算し、
    前記第2の演算手段は、
    前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算することを特徴とする請求項1に記載の動きベクトル算出装置。
  3. 前記第1の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出する算出手段と、
    を備えることを特徴とする請求項1または2に記載の動きベクトル算出装置。
  4. 前記第1の演算手段は、
    前記原画像と、前記前方向のフレーム画像における任意の演算領域内における第1の演算領域の画像とを用いて、前記動きベクトルの算出元となる第1の画像情報を演算し、
    前記第2の演算手段は、
    前記原画像と、前記前方向のフレーム画像における、前記任意の画像領域と同一の演算領域内における前記第1の演算領域とは異なる第2の演算領域の画像とを用いて、前記動きベクトルの算出元となる、前記第1の画像情報とは異なる前記他の画像情報を演算することを特徴とする請求項1に記載の動きベクトル算出装置。
  5. 前記第1の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出する算出手段と、
    を備えることを特徴とする請求項4に記載の動きベクトル算出装置。
  6. 前記第1の演算手段は、
    前記原画像の画素値と前記第1の演算領域における画素値との絶対差分和を用いて、前記第1の画像情報を演算し、
    前記第2の演算手段は、
    前記原画像の画素値と前記第2の演算領域における画素値との絶対差分和を用いて、前記他の画像情報を演算することを特徴とする請求項4または5に記載の動きベクトル算出装置。
  7. 前記双方向のフレーム画像を参照画像とした場合、前記原画像と、前記前方向あるいは前記後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第3の画像情報を演算する第3の演算手段を、さらに備え、
    前記第3の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第1の画像情報および前記他の画像情報とは異なる別の画像情報を演算することを特徴とする請求項1に記載の動きベクトル算出装置。
  8. 前記第1の演算手段は、
    前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第1の画像情報を演算し、
    前記第2の演算手段は、
    前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算し、
    前記第3の演算手段は、
    前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域および前記他の演算領域とは異なる別の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記別の画像情報を演算することを特徴とする請求項7に記載の動きベクトル算出装置。
  9. 前記第1の画像情報と、前記他の画像情報と、前記別の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出する算出手段と、
    を備えることを特徴とする請求項7または8に記載の動きベクトル算出装置。
JP2006042400A 2006-02-20 2006-02-20 動きベクトル算出装置 Pending JP2007221662A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006042400A JP2007221662A (ja) 2006-02-20 2006-02-20 動きベクトル算出装置
US11/443,373 US20070195881A1 (en) 2006-02-20 2006-05-31 Motion vector calculation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006042400A JP2007221662A (ja) 2006-02-20 2006-02-20 動きベクトル算出装置

Publications (1)

Publication Number Publication Date
JP2007221662A true JP2007221662A (ja) 2007-08-30

Family

ID=38428171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006042400A Pending JP2007221662A (ja) 2006-02-20 2006-02-20 動きベクトル算出装置

Country Status (2)

Country Link
US (1) US20070195881A1 (ja)
JP (1) JP2007221662A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080165278A1 (en) * 2007-01-04 2008-07-10 Sony Corporation Human visual system based motion detection/estimation for video deinterlacing
US8553758B2 (en) * 2007-03-02 2013-10-08 Sony Corporation Motion parameter engine for true motion
US20080212687A1 (en) * 2007-03-02 2008-09-04 Sony Corporation And Sony Electronics Inc. High accurate subspace extension of phase correlation for global motion estimation
US8094714B2 (en) * 2008-07-16 2012-01-10 Sony Corporation Speculative start point selection for motion estimation iterative search
US8144766B2 (en) * 2008-07-16 2012-03-27 Sony Corporation Simple next search position selection for motion estimation iterative search
US9185428B2 (en) 2011-11-04 2015-11-10 Google Technology Holdings LLC Motion vector scaling for non-uniform motion vector grid
US9172970B1 (en) * 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
CN107797757B (zh) * 2016-09-06 2021-03-30 联发科技股份有限公司 影像处理系统中的快取存储器管理方法及装置
US11188765B2 (en) * 2018-12-04 2021-11-30 Here Global B.V. Method and apparatus for providing real time feature triangulation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308064A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 動きベクトル検出装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69510851T2 (de) * 1994-03-30 1999-12-02 Thomson Multimedia Sa Verfahren und Gerät zur Reduzierung von Umwandlungsartefakten
FR2860678A1 (fr) * 2003-10-01 2005-04-08 Thomson Licensing Sa Procede de codage differentiel
US8054882B2 (en) * 2005-05-13 2011-11-08 Streaming Networks (Pvt.) Ltd. Method and system for providing bi-directionally predicted video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308064A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 動きベクトル検出装置

Also Published As

Publication number Publication date
US20070195881A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
JP2007221662A (ja) 動きベクトル算出装置
US20210218989A1 (en) Image processing method and image processing device
KR101684208B1 (ko) 동화상 복호 장치, 동화상 부호화 장치, 동화상 복호 방법, 및 동화상 부호화 방법
CN110741640B (zh) 用于视频代码化中的运动补偿预测的光流估计
JP2019115060A (ja) 符号化装置、符号化方法、復号装置、復号方法、及びプログラム
KR100939917B1 (ko) 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
US9596467B2 (en) Motion estimation device for predicting a vector by referring to motion vectors of adjacent blocks, motion estimation method and storage medium of motion estimation program
CN110740317B (zh) 子块运动预测、编码方法、编码器及存储装置
JP2012514429A (ja) 差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定
JP4095664B2 (ja) 動画像符号化装置
CN103493492A (zh) 用于对多视点视频进行编码和解码的方法和设备
CN101340578A (zh) 运动矢量估计装置、编码器及摄像机
CN101127902A (zh) 具有用于运动向量存储的地址管理机制的帧间预测处理器
JP5726220B2 (ja) 動き推定装置及び動き推定プログラム
JP4898415B2 (ja) 動画像符号化装置及び動画像符号化方法
Takano et al. 4K-UHD real-time HEVC encoder with GPU accelerated motion estimation
JP4957780B2 (ja) 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム
KR100951847B1 (ko) 가변 블록 움직임 추정을 위한 sad 계산 방법 및 장치
JP5281596B2 (ja) 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
JP5281597B2 (ja) 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
JP2006324888A (ja) 動画像符号化装置
JP6004852B2 (ja) ピクセルブロックを符号化及び再構成する方法と装置
CN112055220B (zh) 一种编解码方法、装置及其设备
CN110662074A (zh) 一种运动矢量确定方法和设备
JP4438949B2 (ja) 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100720