JP4015084B2 - 動きベクトル検出装置及び動きベクトル検出方法 - Google Patents

動きベクトル検出装置及び動きベクトル検出方法 Download PDF

Info

Publication number
JP4015084B2
JP4015084B2 JP2003296849A JP2003296849A JP4015084B2 JP 4015084 B2 JP4015084 B2 JP 4015084B2 JP 2003296849 A JP2003296849 A JP 2003296849A JP 2003296849 A JP2003296849 A JP 2003296849A JP 4015084 B2 JP4015084 B2 JP 4015084B2
Authority
JP
Japan
Prior art keywords
memory
block
difference evaluation
motion vector
encoded
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.)
Expired - Fee Related
Application number
JP2003296849A
Other languages
English (en)
Other versions
JP2005072726A (ja
JP2005072726A5 (ja
Inventor
義治 上谷
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003296849A priority Critical patent/JP4015084B2/ja
Priority to TW93124502A priority patent/TWI263924B/zh
Priority to US10/921,210 priority patent/US20050226332A1/en
Priority to KR20040065980A priority patent/KR100646302B1/ko
Priority to CNB200410085510XA priority patent/CN1311692C/zh
Publication of JP2005072726A publication Critical patent/JP2005072726A/ja
Publication of JP2005072726A5 publication Critical patent/JP2005072726A5/ja
Application granted granted Critical
Publication of JP4015084B2 publication Critical patent/JP4015084B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Landscapes

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

Description

本発明は、MPEG方式などの動き補償予測を用いた動画像符号化装置において必要な動画像の画面間の動き検出を行うための動きベクトル検出装置及び動きベクトル検出方法に関する。
動画像圧縮技術の国際標準であるMPEG規格に基づく動画像符号化(以下、MPEG符号化という)装置は、図23に示すように、入力画像メモリ910,ME(Motion Estimation;動き検出)部915,MC(Motion Compensation;動き補償)部920,DCT(Discrete Cosine Transform;離散的コサイン変換)部925,量子化部930,符号化多重部960,逆量子化部935,IDCT(Inverse Discrete Cosine Transform;逆離散的コサイン変換)部940,局部再生部945,再生画像メモリ950などにより構成される。
入力画像メモリ910は、入力画像データ910aを一時記憶し、動きベクトル候補の検出対象ブロックと参照部分領域をME部915に供給すると共に、符号化順序に従って画面順序を並べ替え、符号化対象ブロックを読み出し、MC部920に供給する。ME部915は、動きベクトル検出順序に従って、入力画像メモリ910から供給される動きベクトル検出対象ブロックに対して、入力画像メモリ910から原画参照画素を読み出して、図24や図25に示すような動きベクトル候補を検出する。MC部920は、ME部915から供給される動きベクトル候補に基づいて、入力画像メモリ910から再生画像の参照画素を読み出し、符号化順序に従って、入力画像メモリ910から供給される符号化対象ブロックに対して最適な1/2画素精度の動きベクトルと最適な動き補償モードを判断し、その予測信号を局部再生部945に供給すると共に、予測誤差信号をDCT部925に供給する。
DCT部925は、MC部920から供給される予測誤差信号に対する最適なDCTタイプ(フィールド・タイプまたはフレーム・タイプ)を判断し、そのDCTタイプに基づいて8×8のブロックに分割し、8×8点の2次元DCT処理を行う。量子化部930は、DCT部925から供給されるDCT係数に対して量子化処理を行い、符号量の調節を行う。符号化多重部960は、量子化部930から供給される量子化処理されたDCT係数のスキャン変換を行い、DCT係数を零の連続数(ゼロラン)と非零の値(レベル)の組み合わせで表現し、MC部920から供給される動き補償モードや動きベクトルとDCT部925から供給されるDCTタイプ等と共に可変長符号化し、多重出力して出力する。逆量子化部935は、量子化部930から供給される量子化後のDCT係数に対して逆量子化処理を行い、IDCT部940に供給する。IDCT部940は、逆量子化部935から供給される逆量子化後のDCT係数に対して、8×8点の2次元IDCT処理を行い、予測誤差信号を再生して局部再生部945に供給する。局部再生部945は、符号化画面が参照される画面(IピクチャまたはPピクチャ)の場合に、MC部920から供給される予測信号を、IDCT部940から出力される予測誤差信号に加算して局部再生信号を生成し、再生画像メモリ950に記憶する。
このように、MPEG符号化においては、動き補償予測のために動画像の画面間の動き量を検出して動きベクトルを生成することが必須である。このような動きベクトル検出方法として、ブロックマッチング法が知られている。ブロックマッチング法では、符号化対象画像内に設定した符号化ブロックと参照画像内に設定した参照ブロックの間で画素毎に差分をとり、その差分の絶対値または2乗の累積和を差異評価値として用い、この評価値に基づき動きベクトルを検出する。
動き量を精度よく求めるためには、参照画像内の参照ブロックの設定間隔、即ち動きベクトル候補の設定間隔を密にする必要がある。また、参照画像内の参照ブロックの設定範囲、即ち動きベクトル候補の設定範囲は、求めたい動きの速さに依存しており、速い動きに追随するためには、その設定範囲を広くする必要があり、参照画面との時間的な距離が大きくなるとその時間的距離の二乗で設定範囲を拡大する必要があり、その演算量は膨大になる。
このような参照画面との時間的な距離による演算量の増加を低減する方法として、1画面前の符号化画面に対して検出した動きベクトルを参照動きベクトルとして、その参照動きベクトルの近傍に複数の動きベクトル候補を設定するテレスコピック探索法が知られている。
また、テレスコピック探索法を用いた動き検出装置において、参照画像の部分領域を格納するLSI内蔵メモリ容量を削減すると共に、参照画素の読み出しに必要なメモリバンド幅を削減する方法が開示されている(例えば、特許文献1参照)。
特許文献1に記載の動き検出装置においては、同一画面の上下に位置する複数の符号化ブロックに対する参照動きベクトルに基づく動き検出範囲が、LSIに内蔵したメモリに格納された参照画像の部分領域に含まれるか否かを判断し、その動き検出範囲の一部でも含まれる場合にその符号化ブロックを読み出して動き検出を実行することにより、異なる符号化ブロックに対して、同一参照画素を重複して読み出す回数を削減している。
特開2000−287214号公報
しかしながら、特許文献1に記載の動き検出装置においては、参照動きベクトルに基づく動き検出範囲がLSIに内蔵したメモリに格納された参照画像の部分領域に含まれるか否かの判断処理が多くなると共に、参照動きベクトルに基づく動き検出範囲がLSIに内蔵したメモリに格納された参照画像の部分領域に僅かしか含まれない場合は、その差異評価実行中に次の判断処理や設定処理が完了しないため、差異評価手段を有効利用できないという問題を生じていた。従って、差異評価手段の処理能力の向上や、判断処理や設定処理の高速化が必要となり、動き検出部の回路規模が増大するという問題があった。また、同一符号化ブロックの重複読み出しが必要であるため、メモリバンド幅を低減できないという問題があった。
本発明は、このような問題に鑑みてなされたものであって、符号化ブロックや参照画素を格納するメモリからの符号化ブロックや参照画素読み出しのためのメモリバンド幅を低減できると共に、回路規模や消費電力を削減できる動きベクトル検出装置及び動きベクトル検出方法を提供することを目的とする。
上記課題を解決するため、本発明の第1の特徴は、(a)符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置であって、第1のメモリ(外部大容量メモリ)に格納された符号化対象画像から符号化ブロックを読み出す符号化ブロック転送部と、(b)第1のメモリから読み出された符号化ブロックを格納する第2のメモリ(符号化ブロック用高速メモリ)と、(c)第1のメモリに格納された参照画像から、参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、(d)第1のメモリから読み出された参照部分領域を格納する第3のメモリ(参照ブロック用高速メモリ)と、(e)符号化ブロックと参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、(f)第2のメモリに格納された符号化ブロックと、第3のメモリに格納された差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、(g)差異評価値に基づいて、符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部とを具備し、(h)第1の参照画素格納モードにおいて、第3のメモリは、異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を格納し、(i)差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、最小差異評価値検出部に初期設定して、参照画面に近い符号化ブロックから順次動きベクトルの検出を実行させる動きベクトル検出装置であることを要旨とする。
本発明の第2の特徴は、(a)符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置であって、 第1のメモリに格納された符号化対象画像から符号化ブロックを読み出す符号化ブロック転送部と、(b)第1のメモリから読み出された符号化ブロックを格納する第2のメモリと、(c)第1のメモリに格納された参照画像から、参照画像の水平方向のサイズと同じサイズの参照部分領域を読み出す参照画像転送部と、(d)第1のメモリから読み出された参照部分領域を第2の参照画素格納モードとして格納する第3のメモリと、(e)第1のメモリに格納された動き検出済み画面の動きベクトルを符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、(f)第1のメモリから読み出された参照動きベクトルを格納する第4のメモリと、(g)符号化ブロックと参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、(h)第2のメモリに格納された符号化ブロックと、第3のメモリに格納された参照ブロックのうち差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、(i)差異評価値に基づいて、符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、(j)最小差異評価値検出部において検出された動き検出結果を格納する第5のメモリと、(k)第5のメモリに格納された動きベクトル及び差異評価値を読み出して第1のメモリに格納する動き検出結果転送部とを具備し、(l)第2の参照画素格納モードにおいて、参照情報転送部は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルを第1のメモリから読み出して第4のメモリに転送すると共に、それらの符号化ブロックに対する動き検出結果を第1のメモリから読み出して第5のメモリに動き検出中間結果として転送し、(m)差異評価実行範囲設定部は、第4のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が第3のメモリに格納されている参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、符号化ブロック転送部を制御して第2のメモリに転送させ、垂直方向の差異評価実行範囲を動き検出範囲の所定割合単位で設定して、所定の順序で順次動きベクトルの検出を実行させる動きベクトル検出装置であることを要旨とする。
本発明の第3の特徴は、(a)符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置であって、第1のメモリに格納された符号化対象画像から符号化ブロックを読み出す符号化ブロック転送部と、(b)第1のメモリから読み出された符号化ブロックを格納する第2のメモリと、(c)第1のメモリに格納された参照画像から参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、(d)第1のメモリから読み出された参照部分領域を格納する第3のメモリと、(e)第1のメモリに格納された動きベクトル検出結果を符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、(f)第1のメモリから読み出された参照動きベクトルを格納する第4のメモリと、(g)符号化ブロックと参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、(h)第2のメモリに格納された符号化ブロックと、第3のメモリに格納された差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、(i)差異評価値に基づいて、符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、(j)最小差異評価値検出部において検出された動きベクトル及び差異評価値を動きベクトル検出結果または動き検出中間結果として格納する第5のメモリと、(k)第5のメモリに格納された動きベクトル及び差異評価値を読み出して第1のメモリに格納する動き検出結果転送部と、(l)異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を第3のメモリに格納させる第1の参照画素格納モードと、参照部分領域の水平方向画素数を参照画像の水平方向のサイズと同じサイズの参照部分領域を第3のメモリに格納させる第2の参照画素格納モードとを含む格納モードを設定する参照画素格納モード設定部とを具備し、(m)参照画像転送部が、格納モードに応じて、第3のメモリに参照部分領域を格納し、(n)第1の参照画素格納モードにおいて、差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、最小差異評価値検出部に初期設定して、参照画面に近い符号化ブロックから順次動きベクトルの検出を実行させ、(o)第2の参照画素格納モードにおいては、差異評価実行範囲設定部は、第4のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が第3のメモリに格納されている参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、符号化ブロック転送部を制御して第2のメモリに転送させ、垂直方向の差異評価実行範囲を動き検出範囲の所定割合単位で設定して、所定の順序で順次動きベクトルの検出を実行させる動きベクトル検出装置であることを要旨とする。
参照情報転送部は、第2の参照画素格納モードにおいて、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルを第1のメモリから読み出して第4のメモリに転送すると共に、それらの符号化ブロックに対する動き検出結果を第1のメモリから読み出して第5のメモリに動き検出中間結果として転送する。
そして、第1の参照画素格納モードにおいて、差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、最小差異評価値検出部に初期設定して、参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させ、その検出された動きベクトルを参照動きベクトルとして、次に参照画面に時間的に近い符号化ブロックに対して差異評価実行範囲を設定する。
また、第2の参照画素格納モードにおいて、差異評価実行範囲設定部は、第4のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が第3のメモリに格納されている参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、符号化ブロック転送部を制御して第2のメモリに転送させ、垂直方向の差異評価実行範囲を動き検出範囲の所定割合単位で設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが第5のメモリに動き検出中間結果として格納されている時は最小差異評価値検出部の初期値としてそれらの値を設定し、順次動きベクトルの検出を実行させる。
即ち、第3のメモリを第1の参照画素格納モードに設定した場合は、複数の符号化画面に対して第1のメモリからの同一参照画像の読み出しが1回で済むために、第1のメモリから参照画素を読み出すためのメモリバンド幅を大幅に削減することができる。また、各符号化ブロックに対する動き検出範囲が第3のメモリ内に存在するか否かの判断が不要であり、符号化ブロックを重複して読み出すことも不要となるため、差異評価部の利用効率を向上でき、第1のメモリから符号化ブロックを読み出すためのメモリバンド幅の削減が可能となる。
また、第3のメモリを第2の参照画素格納モードに設定した場合は、同一符号化ブロックに対して2回の異なる参照部分領域保存状態での動き検出を許容することにより、第3のメモリの容量削減と参照画素読み出しのためのメモリバンド幅の削減が可能となる。
更に、第3のメモリを第2の参照画素格納モードに設定した場合は、差異評価実行範囲設定部は、垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、各参照動きベクトルに基づく垂直方向の動き検出範囲の所定割合以上が前記第3のメモリ内に含まれ、且つ動き検出が完了していない符号化ブロックについてのみ、符号化ブロック転送部を制御して第2のメモリに転送させ、差異評価実行範囲を動き検出範囲の所定割合単位で行う。これにより、差異評価実行範囲が僅かな範囲に設定されるのを防止し、次の符号化ブロックに対する判断処理や設定処理をその差異評価実行中に完了できるようにすることで、差異評価部の処理能力の向上や、判断処理や設定処理の高速化を不要にすることができる。
また、参照画像格納モード設定部は、第3のメモリの容量的な制限などにより、符号化ブロックに与え得る全動きベクトルが検出可能な参照部分領域を格納できない符号化画面に対してのみ、第3のメモリを第2の参照画素格納モードに設定することで、第3のメモリの容量を削減するようにしても良い。
特に、同一符号化ブロックに対する差異評価の連続処理を分ける場合は最大2回までとしているため、上記所定割合を垂直方向の動き検出範囲の1/2とすることで、差異評価実行中に次の判断処理や設定処理に利用できる最小期間が最も改善され、差異評価部の処理能力の向上や、判断処理や設定処理の高速化が不要となり、回路規模の縮小が可能となる。
また、第3のメモリは、複数のバッファメモリと、参照画像の部分領域を格納する複数の高速メモリとで構成し、第1のメモリから読み出された参照画像の部分領域をその複数のバッファメモリに格納した後、複数のバッファメモリから同時に読み出して複数の高速メモリに高速で転送することにより、差異評価部が高速メモリをアクセスできない期間、即ち差異評価部の停止期間を短縮することが可能となり、差異評価部の高速化を不要にし、回路規模の縮小を可能にする。
更に、差異評価部が読み出していない高速メモリが存在する場合は、複数のバッファメモリから差異評価部が読み出している高速メモリへの参照画像の部分領域の転送に先立って、複数のバッファメモリから差異評価部が読み出していない高速メモリへの参照画像の部分領域の転送を行うことで、差異評価部が高速メモリをアクセスできない期間を無くすることができ、差異評価部の高速化が不要になって回路規模の縮小を可能にする。
本発明によれば、符号化ブロックや参照画素を格納するメモリからの符号化ブロックや参照画素読み出しのためのメモリバンド幅を低減できると共に、回路規模や消費電力を削減できる動きベクトル検出装置及び動きベクトル検出方法を提供することができる。
従って、動き検出情報を用いて情報量を圧縮する動画像符号化装置のコストを下げることが可能になる。
以下、本発明の実施形態を図面に基づいて説明する。なお、各図面を通じて同一もしくは同等の部位や構成要素には、同一もしくは同等の参照符号を付し、その説明を省略もしくは簡略化する。
[第1の実施形態]
図1は、第1の実施形態に係る動きベクトル検出装置を例示しており、動き補償予測を用いた動画像符号化システムなどに適用される。
この動きベクトル検出装置は、外部大容量メモリ110、検出結果保存メモリ120、参照ブロック用高速メモリ130、符号化ブロック用高速メモリ140、動きベクトル参照用メモリ150、外部大容量メモリ110の画像記憶用アドレス生成部101、外部大容量メモリ110から検出結果保存メモリ120や動きベクトル参照用メモリ150に参照情報を転送するための参照情報転送部105、外部大容量メモリ110から参照ブロック用高速メモリ130に参照部分領域を転送するための参照画像転送部103、外部大容量メモリ110から符号化ブロック用高速メモリ140に符号化ブロックを転送するための符号化ブロック転送部104、検出結果保存メモリ120に格納された動きベクトルや差異評価値を読み出して外部大容量メモリ110に格納する検出結果転送部102、差異評価実行範囲設定部161、差異評価部162、最小差異評価値検出部163、参照画像格納モード設定部100などから構成される。
動画像信号であるディジタル化された入力画像データ110aは、符号化対象画像であり、また、参照画像ともなり得る。ここで、「符号化対象画像」はこれから符号化しようとする画像であり、「参照画像」は動き検出のために参照される画像である。動き検出に用いる参照画像は、例えば動きベクトル等の符号化に必要な情報(動画像符号化データ)の生成が既に終了した画像であるが、動画像符号化データを局部復号して得られる画像を用いても良い。
入力画像データ110aは、外部大容量メモリ110の画像記憶用アドレス生成部101で生成された入力画像書込アドレス101aで示される位置に書き込まれて保存される。
外部大容量メモリ110は、符号化対象画像及び参照画像と、複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する。
符号化ブロック転送部104は、符号化ブロック読出アドレス104aを生成して、外部大容量メモリ110から符号化ブロックデータ140aを読み出し、符号化ブロック用高速メモリ140に格納する。
参照画像転送部103から出力される参照画素読出アドレス103aに従って、外部大容量メモリ110から参照画素データ130aが読み出され、読み出された参照画素データ130aは参照画像転送部103から出力される参照画素書込アドレス103bで示される参照ブロック用高速メモリ130内の位置に書き込まれて保存される。
参照画像格納モード設定部100は、これから符号化しようとする画像が表示順序で時間的に過去と未来の両方の画面からの動きベクトルの使用を許可された両方向予測符号化画面(Bピクチャ)であるか否かを判定し、判定結果に基づいて参照ブロック用高速メモリ130への参照画素格納モードを定める参照画像格納モード信号100aを生成する。参照画素格納モードとしては、外部大容量メモリ110に格納された参照画像から符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を読み出して参照ブロック用高速メモリ130に格納させる第1の参照画素格納モードと、外部大容量メモリ110に格納された参照画像から参照画像の水平方向のサイズと同じサイズの参照部分領域を読み出して参照ブロック用高速メモリ130に格納させる第2の参照画素格納モードとを含む。
参照情報転送部105は、参照情報読出アドレス105aを生成して、外部大容量メモリ110から動きベクトル検出結果を符号化ブロックに対する参照動きベクトル150aとして読み出し、動きベクトル参照用メモリ150に格納する。
検出結果保存メモリ120は、最小差異評価値検出部163において検出された動きベクトル及び差異評価値を動きベクトル検出結果または動き検出中間結果として格納する。
差異評価実行範囲設定部161は、参照情報読出アドレス161dを生成して、動きベクトル参照用メモリ150に格納された参照動きベクトル150bまたは検出結果保存メモリ120に格納された動きベクトル検出結果120bを参照して、符号化ブロックと参照ブロックとの間で差異評価を実行するための差異評価実行範囲を設定する。
差異評価部162は、符号化ブロック読出アドレス162aを生成して符号化ブロック用高速メモリ140に格納された符号化ブロックデータ140aを読み出し、参照ブロック読出アドレス162bを生成して参照ブロック用高速メモリ130に格納された差異評価実行範囲内の参照ブロック画素データ130bを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める。
最小差異評価値検出部163は、差異評価値に基づいて同一符号化ブロックに対して最小の差異評価値163aが与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
動き検出結果転送部102は、検出結果保存メモリ120に格納された動きベクトル検出結果120c(動きベクトル及び差異評価値)を読み出して外部大容量メモリ110に格納する。
また、参照画像格納モード設定部100は、両方向からの動きベクトルを求める必要のある符号化画面に対してのみ、参照ブロック用高速メモリ130を第1の参照画素格納モードに設定することもできる。
そして、第1の参照画素格納モードにおいて、差異評価実行範囲設定部161は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、最小差異評価値検出部163に初期設定して、参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させ、その検出された動きベクトルを参照動きベクトルとして、次に参照画面に時間的に近い符号化ブロックに対して差異評価実行範囲を設定する。
また、第2の参照画素格納モードにおいて、参照情報転送部105は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトル150aを外部大容量メモリ110から読み出して動きベクトル参照用メモリ150に転送すると共に、それらの符号化ブロックに対する動きベクトル検出結果120dを外部大容量メモリ110から読み出して検出結果保存メモリ120に動き検出中間結果として転送する。そして、差異評価実行範囲設定部161は、動きベクトル参照用メモリ150に格納された参照動きベクトルに基づいて、動き検出範囲の所定割合が参照ブロック用高速メモリ130内に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、符号化ブロック転送部104を制御して符号化ブロック用高速メモリ140に転送させ、当該符号化ブロックに対する差異評価値及び動きベクトルが動きベクトル参照用メモリ150に動き検出中間結果として格納されている時は最小差異評価値検出部163の初期値としてそれらの値を設定し、動き検出中間結果が動きベクトル参照用メモリ150に格納されていない時は最小差異評価値検出部163を初期設定して、動きベクトルの検出を実行させる。
《第1の参照画素格納モード》
次に、これから符号化しようとする画像が両方向予測符号化画面(Bピクチャ)である場合の動きベクトル検出装置の処理動作例について説明する。
参照画像格納モード信号100aにより、参照画素データ130aは、図2に示すような第1の参照画素格納モードで参照ブロック用高速メモリ130に格納され、複数の両方向予測符号化画面(Bピクチャ)の同一画面位置にある符号化ブロックに与え得る全ての動きベクトルを検出可能な参照部分領域(図2における領域S)の画素が参照ブロック用高速メモリ130内に保存され、第1の参照画素格納モードに応じたタイミングと所定の画素数単位(図2における領域U)で、参照ブロック用高速メモリ130内の参照部分領域画素が更新される。
また、符号化ブロック転送部104から出力される符号化ブロック読出アドレス104aに従って、外部大容量メモリ110から符号化ブロックデータ140aが読み出され、読み出された符号化ブロックデータ140aが符号化ブロック転送部104から出力される符号化ブロック書込アドレス104bで示される符号化ブロック用高速メモリ140内の位置に書き込まれて保存される。ここで、異なる符号化画面の同一画面位置にある複数の符号化ブロックが、参照画面に時間的に近い符号化ブロックから順に読み出されて、符号化ブロック用高速メモリ140に保存される。
差異評価実行範囲設定部161は、参照画面に時間的に隣接する符号化画面の符号化ブロックに対して、参照動きベクトル値を零にして、差異評価部162に対し差異評価実行範囲を設定すると共に、最小差異評価値検出部163に対して動き検出結果が存在しないことを示す初期状態に設定する。
差異評価部162は、符号化ブロック読出アドレス162aを符号化ブロック用高速メモリ140に与えると共に、差異評価実行範囲設定部161によって設定された差異評価実行範囲内の参照ブロック読出アドレス162bを参照ブロック用高速メモリ130に与えて、これに従って符号化ブロック用高速メモリ140及び参照ブロック用高速メモリ130から読み出された符号化ブロックデータ140b及び参照ブロック画素データ130bとの差異評価値を算出する。
最小差異評価値検出部163は、差異評価部162から新たな差異評価値163aを受け取る毎に、過去に検出し保持している最小差異評価値と比較する。そして、更に小さな差異評価値を検出する毎に、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトルを動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
例えば、図24や図25で示すように、フレーム単位で動き検出を行う場合は、ここでの差異評価実行範囲、即ち動き検出設定範囲は、図3において、参照画面上の現符号化ブロックCに対し、動きベクトル零に基づく動き検出設定範囲R0(水平垂直とも符号化ブロックCの4倍の画素数、即ち16倍の画素数)となり、現符号化ブロックCの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部162で行われる。そして、その中で最小差異評価値の参照ブロック位置を示す動きベクトルが最小差異評価値検出部163で検出される。
次に差異評価実行範囲設定部161は、参照情報読出アドレス161dを検出結果保存メモリ120に与え、先に検出した符号化ブロックに対する動きベクトル情報120bを読み出し、先に検出した符号化ブロックの次に時間的に参照画面に近く予測方向が同一(例えばどちらの符号化画面も表示順序では参照画面の後になる)で異なる符号化画面の同一画面位置にある符号化ブロックに対して、先に検出した動きベクトル情報120bを参照動きベクトルとして、差異評価部162に差異評価実行範囲を設定する。それと共に、差異評価実行範囲設定部161は、最小差異評価値検出部163に対し動き検出結果が存在しないことを示す初期状態に設定する。
差異評価部162は、符号化ブロック読出アドレス162aを符号化ブロック用高速メモリ140に与えると共に、設定された差異評価実行範囲内の参照ブロック読出アドレス162bを参照ブロック用高速メモリ130に与え、これらに従って符号化ブロック用高速メモリ140から読み出された符号化ブロックデータ140bと参照ブロック用高速メモリ130から読み出された参照ブロック画素データ130bとの差異評価値を算出する。
最小差異評価値検出部163は、差異評価部162から新たな差異評価値を受け取る毎に、過去の最小差異評価値と比較する。比較の結果、更に小さな差異評価値を検出すると、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
フレーム単位で動き検出を行う場合、差異評価実行範囲、即ち動き検出設定範囲は、図3において、参照画面上に示した現符号化ブロックCに対し、2フレーム目の動き検出設定許可範囲R2(水平垂直とも現符号化ブロックCの8倍の画素数、つまり現符号化ブロックCの64倍の画素数)となり、符号化ブロックCの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部162で行われ、その中で最小差異評価値の参照ブロック位置を示す動きベクトル120aが最小差異評価値検出部163で検出される。
このようにして、複数の両方向予測符号化画面(Bピクチャ)の同一画面位置にある符号化ブロックに対する動き検出が終了すると、符号化ブロックの画面位置を更新して、前述のような動き検出処理を繰り返す。この符号化ブロックの画面位置は、符号化ブロックの画面位置を1ブロックずつ(図3における領域U)水平方向に順次更新していき、水平方向への更新が完了した時には画面左端に戻り垂直方向へ1ブロック更新する。
動き検出結果転送部102は、所定数の符号化ブロックの動き検出が終了する毎に、動き検出結果読出アドレス102aを生成して検出結果保存メモリ120に格納された動きベクトル検出結果120cを読み出し、参照画像格納モード信号100aに応じて生成される動き検出結果書込アドレス102bに従って、読み出した動きベクトル検出結果120cを外部大容量メモリ110の所定位置に格納する。
《第2の参照画素格納モード》
次に、これから符号化しようとする画像が両方向予測符号化画面(Bピクチャ)でない場合、即ちこれから符号化しようとする画像が表示順序で時間的に未来の画面からの動きベクトルの使用を許可されない前方予測符号化画面(Pピクチャ)である場合の動きベクトル検出装置の処理動作例について説明する。
参照画像格納モード信号100aにより、参照画素データ130aは、図4に示すような第2の参照画素格納モードで参照ブロック用高速メモリ130に格納され、参照画像と水平方向について同じサイズの参照部分領域(図4における領域S)が参照ブロック用高速メモリ130内に保存され、第2の参照画素格納モードに応じたタイミングと所定の画素数単位(図2における領域U)で、参照ブロック用高速メモリ130内の参照部分領域画素が更新される。
参照情報転送部105は、参照情報読出アドレス105aを生成して、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、表示順序で直前の符号化画面における同一画面位置にある符号化ブロックに対する動きベクトルを参照動きベクトル150aとして外部大容量メモリ110から読み出す。そして、参照情報転送部105は、読み出した参照動きベクトル150aを動きベクトル参照用メモリ150内の参照動きベクトル書込アドレス105bで示される位置に書き込んで保存すると共に、外部大容量メモリ110から前記の同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出結果120dを読み出して、動き検出結果書込アドレス105cで示される検出結果保存メモリ120内の位置に書き込んで保存する。
ここで、初回の差異評価実行機会となる符号化ブロック(符号化画面の上部に位置する符号化ブロックや、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち画面上で最も下に位置する符号化ブロック)に対しては、動き検出結果が必ず得られていないので、その符号化ブロックに対する動き検出結果120dを外部大容量メモリ110から読み出さなくても良い。
差異評価実行範囲設定部161は、前記垂直方向に所定間隔離れた位置の複数の符号化ブロックに対する参照動きベクトル150bを動きベクトル参照用メモリ150から順次読み出す。そして、差異評価実行範囲設定部161は、参照動きベクトル150bに基づく垂直方向の動き検出範囲の所定割合以上が参照ブロック用高速メモリ130内の参照画像領域に含まれ、且つ動き検出が完了していない符号化ブロックについて、参照動きベクトル150bに基づいて、差異評価実行範囲を垂直方向の動き検出範囲の所定割合単位で設定すると共に、その符号化ブロックの位置情報161aを符号化ブロック転送部104に与える。
また、差異評価実行範囲設定部161は、参照動きベクトル150bに基づいて、その符号化ブロックに対する垂直方向の動き検出範囲の所定割合について差異評価が既に完了している場合は、参照情報読出アドレス161dを検出結果保存メモリ120に与え、検出結果保存メモリ120からその動き検出途中結果として動きベクトル検出結果120b(動きベクトル及び差異評価値)を読み出し、最小差異評価値検出部163にそれらの値を初期値として設定する。逆に、その符号化ブロックに対する差異評価実行が初回である場合は、差異評価実行範囲設定部161は、最小差異評価値検出部163に動き検出結果が存在しないことを示す初期状態に設定する。
符号化ブロック転送部104は、差異評価実行範囲設定部161から与えられる符号化ブロック位置情報161aに基づいて、符号化ブロック読出アドレス104aを外部大容量メモリ110に与え、外部大容量メモリ110から符号化ブロックデータ140aを読み出して、符号化ブロック書込アドレス104bで示される符号化ブロック用高速メモリ140内の位置に書き込んで保存する。
差異評価部162は、符号化ブロック読出アドレス162aを符号化ブロック用高速メモリ140に与える。それと共に、差異評価部162は、設定された差異評価実行範囲内の参照ブロック読出アドレス162bを参照ブロック用高速メモリ130に与えて、これに従って符号化ブロック用高速メモリ140及び参照ブロック用高速メモリ130から読み出された符号化ブロックデータ140b及び参照ブロック画素データ130bとの差異評価値を算出する。
最小差異評価値検出部163は、差異評価部162から新たな差異評価値163aを受け取る毎に、保持している最小差異評価値と比較し、更に小さな差異評価値を検出する毎に保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
このようにして、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する差異評価実行範囲内の最小差異評価値検出が終了する毎に、符号化ブロックの画面位置を順次更新して、前述のような動き検出の処理を繰り返す。符号化ブロックの画面位置は、符号化ブロックの画面位置を1ブロックずつ(図4における領域U)水平方向に順次更新していき、水平方向への更新が完了すると画面左端に戻り垂直方向へ1ブロック更新する。
このようにして基準符号化ブロック位置が所定数更新される毎に、動き検出結果転送部102は、動き検出結果読出アドレス102aにより検出結果保存メモリ120に格納された動き検出結果120cを読み出し、参照画像格納モード信号100aに応じて生成する動き検出結果書込アドレス102bにより、外部大容量メモリ110の所定位置に動き検出結果120cを格納し保存する。なお、同一符号化画面において垂直方向に所定間隔離れた位置における複数の符号化ブロックのうち、画面上で最も上に位置する符号化ブロックに対しては、最終的な動き検出結果が必ず得られているので、その符号化ブロックに対する差異評価値を外部大容量メモリ110に保存しなくても良い。
例えば、図24や図25で示すように、フレーム単位で動き検出を行う場合は、ここで参照される動きベクトルは、前述の第1の参照画素格納モードにおいて2フレーム目の符号化ブロックに対する動き検出設定許可範囲(図3における領域R2)内から検出された動きベクトルとなる。従って、前方予測符号化画面(Pピクチャ)に対しても両方向予測符号化画面(Bピクチャ)と同様な動き速度に追随させるために動き検出を許可しなければならない範囲(動きベクトル検出設定許可範囲)は、現符号化ブロック位置を基準とすると符号化ブロックの水平垂直とも12倍の画素数となる。
そこで、前述の同一符号化画面における垂直方向に所定間隔離れた位置にある複数の符号化ブロックとして、基準ブロックと、基準ブロックの4ブロック下のブロックと、基準ブロックの3ブロック上のブロックとの3つの符号化ブロックを選ぶと、基準ブロックの4ブロック下の符号化ブロックに対しては、これら3つの符号化ブロックの組が垂直方向に4ブロック及び7ブロック更新された場合にも差異評価実行機会が与えられる。即ち、同一符号化ブロックに対して3回の差異評価実行機会が与えられる。
そこで、これら3つの符号化ブロックに対して図5から図8に示すような動き検出設定許可範囲Rを定めて、その符号化ブロックCに対する参照動きベクトルに基づく動き検出範囲(水平垂直とも符号化ブロックCの4倍の画素数、即ち符号化ブロックの16倍の画素数)の垂直方向の所定割合の領域が、動き検出設定許可範囲R内に含まれるか否かを判定する。
例えば、図5から図6に例示するように、1回目の差異評価実行機会となる基準ブロックFの4ブロック下の符号化ブロックCに対しては、参照動きベクトルに基づく動き検出範囲の上側の所定割合である1/4以上がその動き検出設定許可範囲Rに含まれる場合に、参照動きベクトルに基づく動き検出範囲の上側から1/4単位で差異評価値算出部162に差異評価実行範囲(図5におけるハッチングされた領域R)として設定する。
同様に、図7に例示するように、2回目の差異評価実行機会となる基準ブロックFの符号化ブロックCに対しては、参照動きベクトルに基づく動き検出範囲側1/4以上または上側1/2以上が、動き検出設定許可範囲Rに含まれる場合に、参照動きベクトルに基づく動き検出範囲の下側から1/4単位(図7における右下がりのハッチング部分)または上側から1/2単位(図7における右上がりのハッチング部分)で、差異評価部162に対する差異評価実行範囲(図7におけるハッチングされた領域R)として設定する。
更に、図8に例示するように、3回目の差異評価実行機会となる基準ブロックFの3ブロック上の符号化ブロックCについては、参照動きベクトルに基づく動き検出範囲の下側1/2以上が、動き検出設定許可範囲Rに含まれる場合に、参照動きベクトルに基づく動き検出範囲の下側から1/2単位で、差異評価部162に対する差異評価実行範囲(図8におけるハッチングされた領域R)として設定する。
なお、図5から図8に示した差異実行範囲設定範囲の垂直方向について、1回目と2回目の差異評価実行機会において1ブロック相当の画素の重複があり、2回目と3回目の差異評価実行機会において2ブロック相当の画素の重複があるようにみえるが、これは1画素でも不足が生じないよう考慮しているためである。従って、画素の重複が生じる場合には、その参照動きベクトルにより判断可能であり、後の差異評価実行機会で重複を検出した場合は、その重複範囲については差異実行範囲に含めないようにすることができる。これにより、参照動きベクトルに基づく全ての動き検出範囲から差異評価値を算出することが可能となると共に、同一符号化ブロックに対して2回の差異評価実行機会を使用する場合は、必ず動き検出範囲の垂直方向について1/4単位で設定されることとなる。
図9は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ130への参照画素格納モードを第1の参照画素格納モードに設定して、1フレーム期間に参照フレーム間距離が1フレームと2フレームの後方予測動きベクトルまたは前方予測動きベクトルを検出し、参照ブロック用高速メモリ130への参照画素格納モードを第2の参照画素格納モードに設定して、参照フレーム間距離が3フレームの前方予測動きベクトルを検出することにより、符号化遅延を最小に最適化した例を示している。
図10は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ130への参照画素格納モードを第1の参照画素格納モードに設定して、2フレーム期間に参照フレーム間距離が1フレームと2フレームの後方予測動きベクトル及び前方予測動きベクトルを検出し、参照ブロック用高速メモリ130への参照画素格納モードを第2の参照画素格納モードに設定して、参照フレーム間距離が3フレームの前方予測動きベクトルを検出することにより、外部大容量メモリ110から参照画素を読み出すためのメモリバンド幅を最小に最適化した例を示している。
なお、図9及び図10において、第1の参照画素格納モードにおける符号化フレーム読み出し回数は、符号化フレーム画面の読み出し回数相当数を、第2の参照画素格納モードにおける符号化フレーム読み出し回数は、全ての符号化ブロックにおいて2回の差異評価実行機会を適用した場合の符号化フレーム画面の読み出し回数相当数を表している。また、参照フレーム読み出し回数は、参照フレーム画面の読み出し回数相当数を表し、合計読み出し回数は、1フレーム期間での符号化フレーム画面及び参照フレーム画面の読み出し回数相当数をそれぞれ表している。
また、図9及び図10において、記号Δは、入力フレームより1世代前の(古い)フレームであることを意味する。例えば、図9において、入力フレームがフレームB0である時、参照フレームを入力フレームより1世代前のフレームP14とし、後方符号化フレームを、参照フレームP14から1フレーム離れたフレームB13と参照フレームP14から2フレーム離れたフレームB12とし、参照画素格納モードを第1の参照画素格納モードに設定すると、入力フレームがフレームB0である期間の符号化フレームの読み出し回数は2回、参照フレームの読み出し回数は9回となり、合計読み出し回数は、11回となる。
メモリバンド幅を最小に最適化した図10における1フレーム期間の画素読み出しのためのメモリバンド幅の最大値は、図9における1フレーム期間のメモリバンド幅の「6.5/11」となり、約半分に低減できる。
[第2の実施形態]
第1の実施形態では、図24や図25に示すようなフレーム単位で動き検出を行う例を示したが、第2の実施形態では、図1に示した動きベクトル検出装置において、図26や図27に示すようにフィールド単位で動き検出を行う例について説明する。
入力画像データ110aは、外部大容量メモリ110の画像記憶用アドレス生成部101で生成された入力画像書込アドレス101aで示される位置に書き込まれて保存される。
まず、参照画像格納モード設定部100は、これから符号化しようとする画像が表示順序で時間的に過去と未来の両方の画面からの動きベクトルの使用を許可された両方向予測符号化画面(Bピクチャ)であるか否かを判定し、判定結果に基づいて参照ブロック用高速メモリ130への参照画素格納モードを定める参照画像格納モード信号100aを生成する。
参照画像転送部103から出力される参照画素読出アドレス103aに従って、外部大容量メモリ110から参照画素データ130aが読み出され、読み出された参照画素データ130aが参照画像転送部103から出力される参照画素書込アドレス103bで示される参照ブロック用高速メモリ130内の位置に書き込まれて保存される。
《第1の参照画素格納モード》
ここで、これから符号化しようとする画像が両方向予測符号化画面(Bピクチャ)である場合の動きベクトル検出装置の処理動作例について説明する。
参照画像格納モード信号100aにより、参照画素データ130aは、図11に示すような第1の参照画素格納モードで参照ブロック用高速メモリ130に格納されされ、複数の両方向予測符号化画面(Bピクチャ)の同一画面位置にある符号化ブロックに与え得る全ての動きベクトルを検出可能な参照部分領域(図11における領域S)の画素が参照ブロック用高速メモリ130内に保存され、第1の参照画素格納モードに応じたタイミングと所定の画素数単位(図11における領域U)で、参照ブロック用高速メモリ130内の参照部分領域画素が更新される。
また、符号化ブロック転送部104から出力される符号化ブロック読出アドレス104aに従って、外部大容量メモリ110から符号化ブロックデータ140aが読み出され、読み出された符号化ブロックデータ140aが符号化ブロック転送部104から出力される符号化ブロック書込アドレス104bで示される符号化ブロック用高速メモリ140内の位置に書き込まれて保存される。ここで、異なる符号化画面の同一画面位置にある複数の符号化ブロックが、参照画面に時間的に近い符号化ブロックから順に読み出されて、符号化ブロック用高速メモリ140に保存される。
差異評価実行範囲設定部161は、参照画面に時間的に隣接する符号化画面の符号化ブロックに対して、参照動きベクトル値を零として、差異評価部162に対し差異評価実行範囲を設定すると共に、最小差異評価値検出部163に対して動き検出結果が存在しないことを示す初期状態に設定する。
差異評価部162は、符号化ブロック読出アドレス162aを符号化ブロック用高速メモリ140に与えると共に、差異評価実行範囲設定部161によって設定された差異評価実行範囲内の参照ブロック読出アドレス162bを参照ブロック用高速メモリ130に与えて、これに従って符号化ブロック用高速メモリ140及び参照ブロック用高速メモリ130から読み出された符号化ブロックデータ140b及び参照ブロック画素データ130bとの差異評価値を算出する。
最小差異評価値検出部163は、差異評価部162から新たな差異評価値163aを受け取る毎に、過去に検出し保持している最小差異評価値と比較する。そして、更に小さな差異評価値を検出する毎に、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトルを動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
例えば、図26や図27に示すようにフィールド単位で動き検出を行う場合は、差異評価実行範囲、即ち動き検出設定範囲は、図12において、第1の参照フィールド画面(例えば”Top field”)上に示した現符号化ブロックCに対し、動きベクトル零に基づく動き検出設定範囲R0(第1の実施形態で示したフレーム単位の動き検出に比べて参照画面との時間的な距離が半分になるため、水平垂直とも符号化ブロックの2倍の画素数、即ち4倍の画素数)となり、現符号化ブロックCの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックCとの差異評価が差異評価部162で行われる。そして、その中で最小差異評価値の参照ブロック位置を示す動きベクトルが最小差異評価値検出部163で検出される。
続いて、同様に第2の参照フィールド画面(例えば”Bottom field”)上にも動きベクトル零に基づく動き検出設定範囲R0(水平垂直とも符号化ブロックCの2倍の画素数、即ち4倍の画素数)に現符号化ブロックCの左上の画素が含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部162で行われる。最小差異評価値検出部163は、先の第1の参照フィールド画面からの動き検出結果を初期値として、最小差異評価値の参照ブロック位置を示す動きベクトル120aを検出し、最終的に最小差異評価値の参照ブロック位置を示す動きベクトルを動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
次に差異評価実行範囲設定部161は、参照情報読出アドレス161dを検出結果保存メモリ120に与え、先に検出した符号化ブロック(例えば”Top field”ブロック)に対する動きベクトル検出結果120bを読み出し、先に検出した符号化ブロックの次に時間的に参照画面に近く予測方向が同一(例えばどちらの符号化画面も表示順序では参照画面の後になる)で異なる符号化画面の同一画面位置にある符号化ブロック(例えば”Bottom field”ブロック)に対して、先に検出した符号化ブロック(例えば”Top field”ブロック)に対する動きベクトル検出結果120bを参照動きベクトルとして、差異評価部162に対し差異評価実行範囲を設定する。それと共に、差異評価実行範囲設定部161は、最小差異評価値検出部163に対して動き検出結果が存在しないことを示す初期状態に設定する。
差異評価部162は、符号化ブロック読出アドレス162aを符号化ブロック用高速メモリ140に与えると共に、設定された差異評価実行範囲内の参照ブロック読出アドレス162bを参照ブロック用高速メモリ130に与えて、これに従って符号化ブロック用高速メモリ140及び参照ブロック用高速メモリ130から読み出された符号化ブロックデータ140b及び参照ブロック画素データ130bとの差異評価値を算出する。
最小差異評価値検出部163は、差異評価部162から新たな差異評価値受け取る毎に、過去の最小差異評価値と比較し、更に小さな差異評価値を検出する毎に保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を検出結果として検出結果保存メモリ120に格納する。
フィールド単位で動き検出を行う場合、差異評価実行範囲、即ち動き検出設定範囲は、図12において、第1の参照フィールド画面(例えば”Top field”)上に示した現符号化ブロックC(例えば”Bottom field”ブロックで、画面位置は完全に一致しないので近似した位置となる)に対し、2フィールド目の動き検出設定許可範囲R2内で符号化ブロックCの水平垂直とも4倍の画素数(符号化ブロックCの16倍の画素数)となり、符号化ブロックCの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部162で行われる。そして、その中で最小差異評価値の参照ブロック位置を示す動きベクトルが最小差異評価値検出部163で検出される。続いて、同様に第2の参照フィールド画面(例えば”Bottom field”)上にも動きベクトルに基づく動き検出設定範囲R2(水平垂直とも符号化ブロックの4倍の画素数、即ち符号化ブロックの16倍の画素数)に現符号化ブロックCの左上の画素が含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部162で行われ、最小差異評価値検出部163は、先の第1の参照フィールド画面からの動き検出結果を初期値として、最小差異評価値の参照ブロック位置を示す動きベクトルを検出する。そして、最終的に最小差異評価値となる動きベクトルを動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
このようにして、複数の両方向予測符号化画面(Bピクチャ)の同一画面位置にある符号化ブロックに対する動き検出が終了すると、符号化ブロックの画面位置を更新して、前述のような動き検出の処理を繰り返す。この符号化ブロックの画面位置の更新は、符号化ブロックの画面位置を1ブロックずつ(図12における領域U)水平方向に順次更新していき、水平方向への更新が完了した時には画面左端に戻り垂直方向へ1ブロック更新するというように行う。
動き検出結果転送部102は、所定数の符号化ブロックの動き検出が終了する毎に、生成する動き検出結果読出アドレス102aを生成して検出結果保存メモリ120に格納された動きベクトル検出結果120cを読み出し、参照画像格納モード信号100aに応じて生成される動き検出結果書込アドレス102bに従って、読み出した動きベクトル検出結果120cを外部大容量メモリ110の所定位置に格納する。
《第2の参照画素格納モード》
次に、これから符号化しようとする画像が両方向予測符号化画面(Bピクチャ)でない場合、即ちこれから符号化しようとする画像が表示順序で時間的に未来の画面からの動きベクトルの使用を許可されない前方予測符号化画面(Pピクチャ)である場合の動きベクトル検出装置の処理動作例について説明する。
参照画像格納モード信号100aにより、参照画素データ130aは、図13に示すような第2の参照画素格納モードで参照ブロック用高速メモリ130に格納され、参照画像と水平方向について同じサイズの参照部分領域(図13における領域S)が参照ブロック用高速メモリ130内に保存され、第2の参照画素格納モードに応じたタイミングと所定の画素数単位(図13における領域U)で、参照ブロック用高速メモリ130内の参照部分領域画素が更新される。
参照情報転送部105は、参照情報読出アドレス105aを生成して、同一符号化画面の垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、表示順序で直前の符号化画面における同一画面位置の符号化ブロックに対する動きベクトル150aを参照動きベクトル150aとして外部大容量メモリ110から読み出し、読み出した参照動きベクトル150aを動きベクトル参照用メモリ150内の参照動きベクトル書込アドレス105bで示される位置に書き込んで保存する。それと共に、参照情報転送部105は、外部大容量メモリ110から前記の同一符号化画面の垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出結果(動きベクトル及び差異評価値)120dを読み出して、動き検出結果書込アドレス105cで示される検出結果保存メモリ120内の位置に書き込んで保存する。
ここで、同一参照フィールド画面からの動き検出が初回の差異評価実行機会となる符号化ブロック(符号化画面の上部に位置する符号化ブロックや同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち画面上で最も下に位置する符号化ブロック)に対しては、第1の参照フィールド画面(例えば”Top field”)からの動き検出においては、動き検出結果が必ず得られていないので、その符号化ブロックに対する動き検出結果120dを外部大容量メモリ110から読み出さなくても良い。また、第2の参照フィールド画面(例えば”Bottom field”)からの動き検出においては、第1の参照フィールド画面(例えば”Top field”)からの当該符号化ブロックに対する動きベクトル検出結果120dを参照動きベクトルとして外部大容量メモリ110から読み出す。
差異評価実行範囲設定部161は、前記垂直方向に所定間隔離れた位置の複数の符号化ブロックに対する参照動きベクトル150bを動きベクトル参照用メモリ150から順次読み出す。そして、参照動きベクトル150bに基づく垂直方向の動き検出範囲の所定割合以上が参照ブロック用高速メモリ130内の参照画像領域に含まれ、且つ動き検出が完了していない符号化ブロックについて、前記参照動きベクトル150bに基づいて、差異評価部162対し差異評価実行範囲を垂直方向の動き検出範囲の所定割合単位で設定すると共に、その符号化ブロック位置情報161aを符号化ブロック転送部104に与える。
また、参照動きベクトル150bに基づいてその符号化ブロックに対する垂直方向の動き検出範囲の所定割合について差異評価が既に完了している場合は、参照情報読出アドレス161dを検出結果保存メモリ120に与え、検出結果保存メモリ120からその動き検出途中結果として動きベクトル検出結果120b(動きベクトル及び差異評価値)を読み出し、最小差異評価値検出部163にそれらの値を初期値として設定する。また、第1の参照フィールド画面(例えば”Top field”)からの動き検出においてその符号化ブロックに対する差異評価実行が初回である場合は、最小差異評価値検出部163に動き検出結果が存在しないことを示す初期状態に設定する。
符号化ブロック転送部104は、差異評価実行範囲設定部161から与えられる符号化ブロック位置情報161aに基づいて、符号化ブロック読出アドレス104aを外部大容量メモリ110に与え、外部大容量メモリ110から符号化ブロックデータ140aを読み出して、符号化ブロック書込アドレス104bで示される符号化ブロック用高速メモリ140内の位置に書き込んで保存する。
差異評価部162は、符号化ブロック読出アドレス162aを符号化ブロック用高速メモリ140に与える。それと共に、差異評価部162は、設定された差異評価実行範囲内の参照ブロック読出アドレス162bを参照ブロック用高速メモリ130に与えて、これに従って符号化ブロック用高速メモリ140及び参照ブロック用高速メモリ130から読み出された符号化ブロックデータ140b及び参照ブロック画素データ130bとの差異評価値を算出する。
最小差異評価値検出部163は、差異評価部162から新たな差異評価値163aを受け取る毎に、保持している最小差異評価値と比較し、更に小さな差異評価値を検出する毎に、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を動きベクトル検出結果120aとして検出結果保存メモリ120に格納する。
このようにして、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する差異評価実行範囲内の最小差異評価値検出が終了する毎に、符号化ブロックの画面位置を順次更新して、前述のような動き検出の処理を繰り返す。この符号化ブロックの画面位置の更新は、符号化ブロックの画面位置を1ブロックずつ(図13における領域U)水平方向に順次更新して、水平方向への更新が完了した時に画面左端に戻り垂直方向へ1ブロック更新するというように行う。
このようにして基準符号化ブロック位置が所定数更新される毎に、動き検出結果転送部102は、動き検出結果読出アドレス102aにより検出結果保存メモリ120に格納された動き検出結果120cを読み出し、参照画像格納モード信号100aに応じて生成する動き検出結果書込アドレス102bにより、外部大容量メモリ110の所定位置に動き検出結果120cを格納し保存する。なお、第2の参照フィールド画面(例えば”Bottom field”)から動き検出を行う場合において、同一符号化画面で垂直方向に所定間隔離れた位置における複数の符号化ブロックのうち、画面上で最も上に位置する符号化ブロックに対しては、最終的な動き検出結果が必ず得られているので、その符号化ブロックに対する差異評価値を外部大容量メモリ110に保存しなくても良い。
例えば、図26や図27で示すようなフィールド単位の動き検出において、5フィールド目となる符号化画面(例えば”Top field”)の符号化ブロックに対して参照される動きベクトルは、前述の第1の参照画素格納モードにおいて4フィールド目の符号化ブロックに対する動き検出設定許可範囲(図12における領域R4)内から検出された動きベクトルとなり、前方予測符号化画面(Pピクチャ)に対しても両方向予測符号化画面(Bピクチャ)と同様な動き速度に追随させるために動き検出を許可しなければならない範囲(動きベクトル検出設定許可範囲)は、現符号化ブロック位置を基準とすると符号化ブロックの水平垂直とも10倍の画素数となる。
そこで、前述の同一符号化画面における垂直方向に所定間隔離れた位置にある複数の符号化ブロックとして、その内の基準ブロックと、基準ブロックの3ブロック下のブロックと、基準ブロックの3ブロック上のブロックとの3つの符号化ブロックを選ぶと、基準ブロックの3ブロック下の符号化ブロックに対しては、これら3つの符号化ブロックの組が垂直方向に3ブロック及び6ブロック更新された場合にも差異評価実行機会が与えられる。即ち、同一符号化ブロックに対して3回の差異評価実行機会が与えられる。
そこで、これら3つの符号化ブロックに対して動き検出設定許可範囲を定めて、図14に示すように1回目の差異評価実行機会となる基準ブロックFの3ブロック下の符号化ブロックCと、図15に示すように2回目の差異評価実行機会となる基準ブロックFと同位置の符号化ブロックCと、図16に示すように3回目の差異評価実行機会となる基準ブロックFの3ブロック上の符号化ブロックCについて、各符号化ブロックCに対する参照動きベクトルに基づく動き検出範囲(符号化ブロックCの水平垂直とも2倍の画素数、即ち符号化ブロックの4倍の画素数)の垂直方向について全ての画素がその動き検出設定許可範囲に含まれる場合に、参照動きベクトルに基づく動き検出範囲を差異評価実行範囲(図14におけるハッチングされた領域R)として差異評価部162に設定する。
なお、図14から図16に示した差異実行範囲設定範囲の垂直方向について、1回目と2回目の差異評価実行機会及び2回目と3回目の差異評価実行機会において、それぞれ2ブロック相当の画素数が重複しているようにみえるが、これは1画素でも不足が生じないよう考慮しているためである。従って、画素の重複が生じる場合には、その参照動きベクトルにより判断可能であり、差異評価実行範囲設定部161は、後の差異評価実行機会でその重複を検出した場合は差異評価を実行させないようにすることができる。
これにより、参照動きベクトルに基づく全ての動き検出範囲から差異評価値を算出することが可能となると共に、同一参照フィールド画面からの同一符号化ブロックに対する動き検出は必ず1回の差異評価実行機会で行うことになる。
このようにして、第1の参照フィールド画面(例えば”Top field”)からの第1の符号化フィールド画面(例えば”Top field”)の全符号化ブロックに対する動き検出を終了した後に、第2の参照フィールド画面(例えば”Bottom field”)からの第1の符号化フィールド画面(例えば”Top field”)の全符号化ブロックに対する動き検出を行うことで、第1の符号化フィールド画面(例えば”Top field”)に対する動き検出が完了する。
更に、6フィールド目となる符号化画面(例えば”Bottom field”)の符号化ブロックに対して参照される動きベクトルは、前述の第2の参照画素格納モードにおいて5フィールド目の符号化ブロックに対する動き検出設定許可範囲内から検出された動きベクトルとなり、動き検出を許可しなければならない範囲(動きベクトル検出設定許可範囲)は、現符号化ブロック位置を基準とすると符号化ブロックの水平垂直とも12倍の画素数となる。
そこで、前述の同一符号化画面における垂直方向に所定間隔離れた位置にある複数の符号化ブロックとして、その内の基準ブロックと、基準ブロックの4ブロック下のブロックと、基準ブロックの3ブロック上のブロックとの3つの符号化ブロックを選ぶと、基準ブロックの4ブロック下の符号化ブロックに対しては、これら3つの符号化ブロックの組が垂直方向に4ブロック及び7ブロック更新された場合にも差異評価実行機会が与えられる。即ち、同一符号化ブロックに対して3回の差異評価実行機会が与えられる。
そこで、これら3つの符号化ブロックに対して動き検出設定許可範囲を定めて、各符号化ブロックに対する参照動きベクトルに基づく動き検出範囲(水平垂直とも符号化ブロックの2倍の画素数、即ち符号化ブロックの4倍の画素数)の垂直方向について、図17に示すように1回目の差異評価実行機会となる基準ブロックFの4ブロック下の符号化ブロックCに対しては、上側1/2以上を含む場合に参照動きベクトルに基づく動き検出範囲の上側から1/2単位で差異評価実行範囲(図17におけるハッチングされた領域R)を差異評価部162に設定する。同様に、図18に示すように2回目の差異評価実行機会となる基準ブロックFと同位置の符号化ブロックC対しては、下側1/2以上を含む場合に参照動きベクトルに基づく動き検出範囲の下側から1/2単位で差異評価実行範囲(図18におけるハッチングされた領域R)を差異評価部162に設定し、図19に示すように3回目の差異評価実行機会となる基準ブロックFの3ブロック上の符号化ブロックCに対しては全てがその動き検出設定許可範囲に含まれる場合に参照動きベクトルに基づく動き検出範囲を差異評価部162に差異評価実行範囲(図19におけるハッチングされた領域R)として設定する。
なお、図17から図19に示した差異実行範囲設定範囲の垂直方向について、1回目と2回目の差異評価実行機会で1ブロック相当の画素数の重複があり、2回目と3回目の差異評価実行機会で2ブロック相当の画素数の重複があるようにみえるが、これは1画素でも不足が生じないよう考慮しているためである。従って、画素の重複が生じる場合には、その参照動きベクトルにより判断可能であり、差異評価実行範囲設定部161は、後の差異評価実行機会でその重複を検出した場合は差異評価を実行させないようにすることができる。
これにより、参照動きベクトルに基づく全ての動き検出範囲から差異評価値を算出することが可能となると共に、同一参照フィールド画面からの同一符号化ブロックに対する動き検出として2回の差異評価実行機会で行う場合は、動き検出範囲の垂直方向について1/2となる。
このようにして、第1の参照フィールド画面(例えば”Top field”)からの第2の符号化フィールド画面(例えば”Bottom field”)の全符号化ブロックに対する動き検出を終了した後に、第2の参照フィールド画面(例えば”Bottom field”)からの第2の符号化フィールド画面(例えば”Bottom field”)の全符号化ブロックに対する動き検出を行うことで、第2の符号化フィールド画面(例えば”Bottom field”)に対する動き検出が完了する。
図20は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ130への参照画素格納モードを第1の参照画素格納モードに設定して1フレーム(2フィールド)期間に参照フィールド間距離が1フィールドから4フィールドの後方予測動きベクトルまたは前方予測動きベクトルを検出し、参照ブロック用高速メモリ130への参照画素格納モードを第2の参照画素格納モードに設定して参照フィールド間距離が5フィールドから6フィールドの前方予測動きベクトルを検出することにより、符号化遅延を最小に最適化した例である。
図21は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ130への参照画素格納モードを第1の参照画素格納モードに設定して、2フレーム(4フィールド)期間に参照フィールド間距離が1フィールドから4フィールドの後方予測動きベクトル及び前方予測動きベクトルを検出し、参照ブロック用高速メモリ130への参照画素格納モードを第2の参照画素格納モードに設定して、参照フィールド間距離が5フィールドからフィールドの前方予測動きベクトルを検出することにより、外部大容量メモリ110から参照画素を読み出すためのメモリバンド幅を最小に最適化した例である。
なお、図20及び図21において、第1の参照画素格納モードにおける符号化フレーム読み出し回数は、符号化フィールド画面の読み出し回数相当数を、第2の参照画素格納モードにおける符号化フレーム読み出し回数は、6フィールド目の符号化画面の全符号化ブロックについて2回の差異評価実行機会を適用した場合の符号化フィールド画面の読み出し回数相当を表している。また、参照フレーム読み出し回数は、参照フィールド画面の読み出し回数相当数を表し、合計読み出し回数は、1フレーム(2フィールド)期間での符号化フィールド画面及び参照フィールド画面の読み出し回数相当数をそれぞれ表している。また、図20及び図21において、記号Δは、入力フレームより1世代前の(古い)フレームであることを意味する。
メモリバンド幅を最小に最適化した図21における1フレーム期間の画素読み出しのためのメモリバンド幅の最大値は、図20における1フレーム期間のメモリバンド幅の「13/22」となり、約半分に低減できる。更に、図21に示す例では、1フレーム期間における第1の参照画素格納モードによる処理画面数は、第2の参照画素格納モードによる処理画面数の2倍であるのに対し、その間の画素読み出しのためのメモリバンド幅は殆ど同等であることから、本動きベクトル検出装置は、図26や図27で示すようなフィールド単位の動き検出において特に効果的であることが解る。
なお、前述の実施形態における参照ブロック用高速メモリ130への参照画素格納モードの設定を、第1の参照画素格納モードで格納可能な参照部分領域から、符号化画面と参照画面間の距離が、符号化ブロックに与え得る全動きベクトルを検出可能な距離か否かを判断することにより、決定するようにしても良い。
[動きベクトル検出方法]
次に、図22を参照して、第1〜第2の実施形態で説明した動きベクトル検出装置による動きベクトル検出方法について、詳細に説明する。なお、以下の一連の処理は、図1に示した動きベクトル検出装置における図示しないCPUを用いて構成されたコントローラからの制御に従って、実行される。
まず、ステップS001において、参照画像格納モード設定部100は、両方向からの動きベクトルを求める必要のある両方向予測符号化画面に対する動き検出期間であるか否かを判定する。
ステップS001における判定の結果、両方向予測符号化画面に対する動き検出期間であると判定された場合は、ステップS103へ進む。
ステップS103において、参照画像転送部103は、符号化画面及び参照画面を記憶した外部大容量メモリ110から、参照画像の部分領域である参照部分領域を読み出して参照ブロック用高速メモリ130に格納することで、参照ブロック用高速メモリ130内の参照部分領域を更新する。
次に、ステップS106において、差異評価実行範囲設定部161は、異なる符号化画面の同一画面位置にある複数の符号化ブロックのうち、参照画面に時間的に最も近い符号化ブロックに対して、最小差異評価値検出部163に対して動き検出結果が存在しないことを示す初期値に初期設定し、動きベクトル零に基づく参照ブロックとの差異評価実行範囲を設定する。
ステップS107において、符号化ブロック転送部104は、異なる符号化画面の同一画面位置にある複数の符号化ブロックのうち、参照画面に時間的に最も近い符号化ブロックを外部大容量メモリ110から読み出して符号化ブロック用高速メモリ140に格納する。
ステップS108において、差異評価部162は、差異評価実行範囲設定部161により設定された差異評価実行範囲内の中で最初の差異評価位置の参照ブロックを参照ブロック用高速メモリ130から読み出す。
ステップS109において、差異評価部162は、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。
ステップS110において、最小差異評価値検出部163は、ステップS106において設定された動き検出結果が存在しないことを示す初期値と、ステップS109において算出された差異評価値とを比較して、差異評価値の小さな方を選択し、選択した方の差異評価値及び対応する動きベクトルを一時保存する。
そして、ステップS111において、設定されている差異評価実行範囲内の差異評価処理が全て終了したか否かを判定する。判定の結果、終了していなければ、ステップS108に戻り、差異評価部162は、設定されている差異評価実行範囲内で差異評価位置を更新して、対応する参照ブロックを参照ブロック用高速メモリ130から読み出し、ステップS109において、更新された差異評価位置に対する参照ブロックと、符号化ブロック用高速メモリ140の符号化ブロックとの差異評価値を算出する。更に、ステップS110において、最小差異評価値検出部163は、設定されている差異評価実行範囲内で過去に検出された最小差異評価値と、今回検出された差異評価値とを比較し、最小差異評価値となる方の差異評価値及び対応する動きベクトルを一時記憶する。
ステップS111の判定の結果、差異評価実行範囲内の処理が終了していれば、次にステップS112において、検出した最小差異評価値及びそれに対応する動きベクトルを検出結果保存メモリ120に一時記憶する。
次に、ステップS113において、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対する動き検出処理が終了したかどうかを判定する。
ステップS113における判定の結果、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対する動き検出が終了していない場合、ステップS106に戻り、差異評価実行範囲設定部161は、次に参照画面に時間的に近い符号化ブロックに対して、検出結果保存メモリ120に一時記憶されている動き検出結果に基づいて、参照ブロックとの差異評価実行範囲を設定する。ステップS107において、符号化ブロック転送部104は、その符号化ブロック(次に参照画面に時間的に近い符号化ブロック)を、外部大容量メモリ110から読み出して符号化ブロック用高速メモリ140に格納するといったように、前述のステップ106からステップ113の処理が繰り返し実行される。
また、ステップS113において、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対する動き検出処理が終了したと判断された場合、次にステップS114に進む。
ステップS114において、所定数の符号化ブロックに対する動き検出が終了したかどうかを判定し、所定数の符号化ブロックに対する動き検出が終了していなければ、ステップS103へ戻る。ステップS103において、参照画像転送部103は、符号化ブロックの画面位置を更新すると共に、外部大容量メモリ110から複数の両方向予測符号化画面における同一画面位置の各符号化ブロックに与え得る全動きベクトルを検出可能な動き検出範囲を含む参照部分領域を参照ブロック単位で読み出して参照ブロック用高速メモリ130に格納することで、参照ブロック用高速メモリ130内の参照部分領域を更新する。そして、上述のステップS103からステップS114の処理が繰り返される。
ステップS114において、所定数の符号化ブロックに対する動き検出が終了したかどうかを判定し、所定数の符号化ブロックに対する動き検出が終了していれば、次にステップS115において、所定数の符号化ブロックに対する動き検出結果を外部大容量メモリ110に転送する。
そして、ステップS116において、複数の両方向予測画面の全符号化ブロックに対する動き検出が終了したかどうかを判定し、複数の両方向予測画面の全符号化ブロックに対する動き検出が終了していなければ上述のステップ103からステップS116の処理が繰り返され、終了していれば第1の参照画素格納モードでの動き検出を終了する。
一方、ステップS001において、片方向予測符号化画面に対する動き検出期間であると判断された場合は、ステップS202へ進む。
ステップS202において、参照情報転送部105は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、外部大容量メモリ110から動きベクトル検出結果を読み出して、その複数の符号化ブロックに対する参照動きベクトルとして動きベクトル参照用メモリ150に格納する。更に、参照情報転送部105は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち、画面上で最下位に位置する符号化ブロック以外の符号ブロックに対する動き検出中間結果を、外部大容量メモリ110から読み出して検出結果保存メモリ120に一時記憶する。
ステップS203において、参照画像転送部103は、外部大容量メモリ110から参照画像の部分領域である参照部分領域を読み出して、参照画像の水平方向のサイズと同じサイズの参照部分領域を参照ブロック用高速メモリ130に格納することにより、参照ブロック用高速メモリ130内の参照部分領域を更新する。
ステップS204において、差異評価実行範囲設定部161は、前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち、画面上で最下位に位置する符号化ブロックに対する動き検出中間結果を動きベクトル参照用メモリ150から読み出す。
ステップS205において、差異評価実行範囲設定部161は、その参照動きベクトルに基づく動き検出範囲の所定割合が、参照ブロック用高速メモリ130内の参照部分領域に含まれているか否かを判定することで、差異評価の実行の要否を判断する。判定の結果、差異評価の実行が不要と判断された場合、以下に続くステップ206からステップ212の各処理が省略され、逆に、差異評価の実行が必要と判断された場合、次にステップS206に進む。
ステップS206において、差異評価実行範囲設定部161は、ステップS205で差異評価の実行が必要と判断された符号化ブロックに対して、その参照動きベクトルに基づいて、符号化ブロックと参照ブロックとの間で差異評価を実行する範囲を設定すると共に、最小差異評価値検出部163の初期値を動き検出結果が存在しないことを示す初期状態に設定する。
ステップS207において、符号化ブロック転送部104は、ステップS205で差異評価の実行が必要と判断された符号化ブロックを、外部大容量メモリ110からから読み出して符号化ブロック用高速メモリ140に格納する。
ステップS208において、差異評価部162は、差異評価実行範囲設定部161により設定された差異評価実行範囲内の中で最初の差異評価位置の参照ブロックを参照ブロック用高速メモリ130から読み出す。
ステップS209において、差異評価部162は、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。
ステップS210において、最小差異評価値検出部163は、ステップS106において設定された動き検出結果が存在しないことを示す初期値と、ステップS209において算出された差異評価値とを比較して、差異評価値の小さな方を選択し、選択した方の差異評価値及び対応する動きベクトルを一時保存する。
そして、ステップS211において、設定されている差異評価実行範囲内の差異評価処理が全て終了したか否かを判定し、終了していなければ、ステップS208に戻り、差異評価部162は、設定されている差異評価実行範囲内で差異評価位置を更新して、対応する参照ブロックを参照ブロック用高速メモリ130から読み出し、ステップS209において、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。更に、ステップS210において、最小差異評価値検出部163は、設定されている差異評価実行範囲内で過去に検出された最小差異評価値と、ステップS209において今回新たに算出された差異評価値とを比較して、差異評価値の小さな方を選択し、最小差異評価値となる差異評価値及び対応する動きベクトルを一時保存する。
また、ステップS211における判定の結果、差異評価実行範囲内の処理が全て終了したと判断されると、次にステップS212において、検出した最小差異評価値及びそれに対応する動きベクトルを検出結果保存メモリ120に一時記憶する。
ステップS213における判定の結果、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、差異評価の処理が終了していないと判断された場合、ステップS204に戻り、差異評価実行範囲設定部161は、前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち、画面上で次に下に位置する符号化ブロックに対する参照動きベクトルを動きベクトル参照用メモリ150から読み出す。そして、差異評価実行範囲設定部161は、ステップS205において、その参照動きベクトルに基づく動き検出範囲の所定割合が、参照ブロック用高速メモリ130内の参照部分領域に含まれているか否かを判定することで、差異評価実行の要否を判断する。差異評価実行が不要と判断された場合、以下のステップ206からステップ212の処理が省略され、差異評価実行が必要と判断された場合、ステップS206に進む。
ステップS206において、差異評価実行範囲設定部161は、ステップS205において差異評価の実行が必要と判断された符号化ブロックに対して、その参照動きベクトルに基づいて、符号化ブロックと参照ブロックとの間で差異評価を実行する範囲を設定する。それと共に、その符号化ブロックに対して異なる参照部分領域保存状態で2回目の差異評価実行となる場合は、検出結果保存メモリ120に格納されている動き検出結果を最小差異評価値検出の初期値として設定し、初回の差異評価実行となる場合は、最小差異評価値検出の初期値を動き検出結果が存在しないことを示す初期状態に設定する。
ステップS207において、符号化ブロック転送部104は、ステップS205において差異評価の実行が必要と判断された符号化ブロックを外部大容量メモリ110からから読み出して符号化ブロック用高速メモリ140に格納する。
ステップS208において、差異評価部162は、差異評価実行範囲設定部161により設定された差異評価実行範囲内の中で最初の差異評価位置の参照ブロックを参照ブロック用高速メモリ130から読み出し、ステップS209において、読み出した差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。
ステップS210において、最小差異評価値検出部163は、ステップS106において設定された初期値と、ステップS209において今回新たに算出された差異評価値とを比較して、差異評価値の小さな方を選択することにより、最小差異評価値となる差異評価値及び対応する動きベクトルを一時保存する。
そして、ステップS211において、差異評価実行範囲内の差異評価処理が全てを終了したか否かを判定し、終了していなければ、ステップS208に戻り、差異評価部162は、設定されている差異評価実行範囲内で差異評価位置を更新して、対応する参照ブロックを参照ブロック用高速メモリ130から読み出し、ステップS209において、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。更に、ステップS210において、最小差異評価値検出部163は、設定されている差異評価実行範囲内で過去に検出された最小差異評価値と、ステップS209において今回新たに算出された差異評価値とを比較して、差異評価値の小さな方を選択し、最小差異評価値となる差異評価値及び対応する動きベクトルを一時保存する。
また、ステップS211における判定の結果、差異評価実行範囲内の処理が全て終了したと判断されると、次にステップS212において、検出した最小差異評価値及びそれに対応する動きベクトルを検出結果保存メモリ120に一時記憶する。
以上のような処理が繰り返し実行され、ステップS213において、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する差異評価の実行が全て終了したと判断されると、次のステップS214に進む。
ステップS214において、所定数の符号化ブロックに対する差異評価の処理が終了したかどうかを判定し、終了していなければ、ステップS203へ戻り、参照画像と水平方向について同じサイズの参照部分領域を格納するように、外部大容量メモリ110から参照画像を複数に分割した分割領域単位で読み出して参照ブロック用高速メモリ130に格納することにより、参照ブロック用高速メモリ130内の参照部分領域を更新して、このステップS203からステップS214の処理が繰り返し実行される。
ステップS214において、所定数の符号化ブロックに対する差異評価実行の要否判定が終了したと判断されると、ステップS215において、所定数の符号化ブロックに対する動き検出結果を外部大容量メモリ110に転送する。
そして、ステップS216において、片方向予測画面の全符号化ブロックに対する動き検出が終了したかどうかを判定し、終了していなければ、上述のステップ202からステップS216の処理が繰り返され、終了していれば、第2の参照画素格納モードでの動き検出を終了する。
以上、第1〜第2の実施形態について詳細に説明したように、参照ブロック用高速メモリ130を第1の参照画素格納モードに設定した場合は、複数の符号化画面に対して外部大容量メモリ110からの同一参照画像の読み出しが1回で済むために、外部大容量メモリ110から参照画素を読み出すためのメモリバンド幅を大幅に削減することができる。また、各符号化ブロックに対する動き検出範囲が参照ブロック用高速メモリ130内の参照部分領域に存在するか否かの判断が不要であり、符号化ブロックを重複して読み出すことも不要となるため、差異評価部162の利用効率を向上でき、外部大容量メモリ110から符号化ブロックを読み出すためのメモリバンド幅の削減が可能となる。
また、参照ブロック用高速メモリ130を第2の参照画素格納モードに設定した場合は、同一符号化ブロックに対して2回の異なる参照部分領域保存状態での動き検出を許容することにより、参照ブロック用高速メモリ130の容量の削減と参照画素読み出しのためのメモリバンド幅の削減が可能となる。
更に、参照ブロック用高速メモリ130を第2の参照画素格納モードに設定した場合は、差異評価実行範囲設定部161は、垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、各参照動きベクトルに基づく垂直方向の動き検出範囲の所定割合以上が参照ブロック用高速メモリ130内の参照部分領域に含まれ、且つ動き検出が完了していない符号化ブロックについてのみ、符号化ブロック転送部104を制御して符号化ブロック用高速メモリ140に転送させ、差異評価実行範囲を動き検出範囲の所定割合単位で行う。これにより、差異評価実行範囲が僅かな範囲に設定されるのを防止し、次の符号化ブロックに対する判断処理や設定処理をその差異評価実行中に完了できるようにすることで、差異評価部162の処理能力の向上や、判断処理や設定処理の高速化を不要にすることができる。
また、参照画像格納モード設定部100は、参照ブロック用高速メモリ130の容量の制限などにより、符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を格納できない符号化画面に対してのみ、参照ブロック用高速メモリ130を第2の参照画素格納モードに設定することで、参照ブロック用高速メモリ130の容量を削減しても良い。
特に、同一符号化ブロックに対する差異評価の連続処理を分ける場合は最大2回までとしているため、上記所定割合を垂直方向の動き検出範囲の1/2とすることで、差異評価実行中に次の判断処理や設定処理に利用できる最小期間が最も改善され、差異評価部162の処理能力の向上や、判断処理や設定処理の高速化が不要となり、回路規模の縮小が可能となる。
また、参照ブロック用高速メモリ130は、複数のバッファメモリと、参照画像の部分領域を格納する複数の高速メモリとで構成し、第1のメモリから読み出された参照画像の部分領域をその複数のバッファメモリに格納した後、複数のバッファメモリから同時に読み出して複数の高速メモリに高速で転送することにより、差異評価部162が高速メモリをアクセスできない期間、即ち差異評価部162の停止期間を短縮することが可能となり、差異評価部162の高速化を不要にし、回路規模の縮小を可能にする。
更に、差異評価部162が読み出していない高速メモリが存在する場合は、複数のバッファメモリから差異評価部162が読み出している高速メモリへの参照画像の部分領域の転送に先立って、複数のバッファメモリから差異評価部162が読み出していない高速メモリへの参照画像の部分領域の転送を行うことで、差異評価部162が高速メモリをアクセスできない期間を無くすることができ、差異評価部162の高速化が不要になって回路規模の縮小を可能にする。
以上、本発明の実施の形態について詳細に説明したが、本発明は、その精神または主要な特徴から逸脱することなく、他の色々な形で実施することができる。
従って、前述の各実施例はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には何ら拘束されない。更に、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
第1及び第2の実施形態に係る動きベクトル検出装置の構成例を示すブロック図である。 第1の実施形態において、第1の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。 第1の実施形態において、第1の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例を示す図である。 第1の実施形態において、第2の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。 第1の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(1回目の実行機会)を示す図である。 図5に示した動き検出設定範囲において、差異評価実行範囲の設定例を示す図である。 第1の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(2回目の実行機会)を示す図である。 第1の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(3回目の実行機会)を示す図である。 第1の実施形態において、フレーム単位で動きベクトルを検出し、符号化遅延を最適化した例を示す図である。 第1の実施形態において、フレーム単位で動きベクトルを検出し、メモリバンド幅を最適化した例を示す図である。 第2の実施形態において、第1の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。 第2の実施形態において、第1の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例を示す図である。 第2の実施形態において、第2の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。 第2の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(5フィールド目の1回目の実行機会)を示す図である。 第2の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(5フィールド目の2回目の実行機会)を示す図である。 第2の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(5フィールド目の3回目の実行機会)を示す図である。 第2の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(6フィールド目の1回目の実行機会)を示す図である。 第2の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(6フィールド目の2回目の実行機会)を示す図である。 第2の実施形態において、第2の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例(6フィールド目の3回目の実行機会)を示す図である。 第2の実施形態において、フィールド単位で動きベクトルを検出し、符号化遅延を最適化した例を示す図である。 第2の実施形態において、フィールド単位で動きベクトルを検出し、メモリバンド幅を最適化した例を示す図である。 図1に示した動きベクトル検出装置による動きベクトル検出方法の処理手順例を示すフローチャートである。 動き検出情報を用いて情報量を圧縮する動画像符号化装置の構成例を示すブロック図である。 フレーム単位の動き検出における前方予測順序を例示した図である。 フレーム単位の動き検出における後方予測順序を例示した図である。 フィールド単位の動き検出における前方予測順序を例示した図である。 フィールド単位の動き検出における後方予測順序を例示した図である。
符号の説明
100…参照画像格納モード設定部
100a…参照画像格納モード信号
101…画像記憶用アドレス生成部
101a…入力画像書込アドレス
102…検出結果転送部
102a…検出結果読出アドレス
102b…検出結果書込アドレス
103…参照画像転送部
103a…参照画素読出アドレス
103b…参照画素書込アドレス
104…符号化ブロック転送部
104a…符号化ブロック読出アドレス
104b…符号化ブロック書込アドレス
105…参照情報転送部
105a…参照情報読出アドレス
105b…参照動きベクトル書込アドレス
105c…検出結果書込アドレス
110…外部大容量メモリ
110a…入力画像データ
120…検出結果保存メモリ
120a,120b,120c,120d…動きベクトル検出結果
130…参照ブロック用高速メモリ
130a…参照画素データ
130b…参照ブロック画素データ
140…符号化ブロック用高速メモリ
140a,140b…符号化ブロックデータ
150…動きベクトル参照用メモリ
150a,150b…参照動きベクトル
161…差異評価実行範囲設定部
161a…符号化ブロック位置情報
161c,161d…参照情報読出アドレス
162…差異評価部
162a…符号化ブロック読出アドレス
162b…参照ブロック読出アドレス
163…最小差異評価値検出部
163a…差異評価値
910…入力画像メモリ
910a…入力画像データ
915…ME部
920…MC部
925…DCT部
930…量子化部
935…逆量子化部
940…IDCT部
945…局部再生部
950…再生画像メモリ
960…符号化多重部

Claims (6)

  1. 符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置であって、
    第1のメモリに格納された符号化対象画像から前記符号化ブロックを読み出す符号化ブロック転送部と、
    前記第1のメモリから読み出された前記符号化ブロックを格納する第2のメモリと、
    前記第1のメモリに格納された参照画像から、前記参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、
    前記第1のメモリから読み出された参照部分領域を格納する第3のメモリと、
    前記符号化ブロックと前記参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、
    前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された前記差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、
    前記差異評価値に基づいて、前記符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部とを具備し、
    第1の参照画素格納モードにおいて、前記第3のメモリは、異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を格納し、
    前記差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、前記最小差異評価値検出部に初期設定して、参照画面に近い符号化ブロックから順次動きベクトルの検出を実行させることを特徴とする動きベクトル検出装置。
  2. 符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置であって、
    第1のメモリに格納された前記符号化対象画像から前記符号化ブロックを読み出す符号化ブロック転送部と、
    前記第1のメモリから読み出された前記符号化ブロックを格納する第2のメモリと、
    前記第1のメモリに格納された前記参照画像から、前記参照画像の水平方向のサイズと同じサイズの参照部分領域を読み出す参照画像転送部と、
    前記第1のメモリから読み出された前記参照部分領域を第2の参照画素格納モードとして格納する第3のメモリと、
    前記第1のメモリに格納された動き検出済み画面の前記動きベクトルを符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、
    前記第1のメモリから読み出された前記参照動きベクトルを格納する第4のメモリと、
    前記符号化ブロックと前記参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、
    前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された参照ブロックのうち前記差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、
    前記差異評価値に基づいて、前記符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、
    前記最小差異評価値検出部において検出された動き検出結果を格納する第5のメモリと、
    前記第5のメモリに格納された動きベクトル及び差異評価値を読み出して前記第1のメモリに格納する動き検出結果転送部とを具備し、
    前記第2の参照画素格納モードにおいて、前記参照情報転送部は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルを前記第1のメモリから読み出して前記第4のメモリに転送すると共に、それらの符号化ブロックに対する動き検出結果を前記第1のメモリから読み出して前記第5のメモリに動き検出中間結果として転送し、
    前記差異評価実行範囲設定部は、前記第4のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が前記第3のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、前記符号化ブロック転送部を制御して前記第2のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定して、所定の順序で順次動きベクトルの検出を実行させることを特徴とする動きベクトル検出装置。
  3. 符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置であって、
    第1のメモリに格納された前記符号化対象画像から符号化ブロックを読み出す符号化ブロック転送部と、
    前記第1のメモリから読み出された前記符号化ブロックを格納する第2のメモリと、
    前記第1のメモリに格納された前記参照画像から前記参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、
    前記第1のメモリから読み出された参照部分領域を格納する第3のメモリと、
    前記第1のメモリに格納された前記動きベクトル検出結果を符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、
    前記第1のメモリから読み出された前記参照動きベクトルを格納する第4のメモリと、
    前記符号化ブロックと前記参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、
    前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された前記差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、
    前記差異評価値に基づいて、前記符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、
    前記最小差異評価値検出部において検出された動きベクトル及び差異評価値を動きベクトル検出結果または動き検出中間結果として格納する第5のメモリと、
    前記第5のメモリに格納された動きベクトル及び差異評価値を読み出して前記第1のメモリに格納する動き検出結果転送部と、
    異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を前記第3のメモリに格納させる第1の参照画素格納モードと、参照部分領域の水平方向画素数を前記参照画像の水平方向のサイズと同じサイズの参照部分領域を前記第3のメモリに格納させる第2の参照画素格納モードとを含む格納モードを設定する参照画素格納モード設定部とを具備し、
    前記参照画像転送部が、前記格納モードに応じて、前記第3のメモリに参照部分領域を格納し、
    前記第1の参照画素格納モードにおいて、前記差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、前記最小差異評価値検出部に初期設定して、参照画面に近い符号化ブロックから順次動きベクトルの検出を実行させ、
    前記第2の参照画素格納モードにおいては、前記差異評価実行範囲設定部は、前記第4のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が前記第3のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、前記符号化ブロック転送部を制御して前記第2のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定して、所定の順序で順次動きベクトルの検出を実行させることを特徴とする動きベクトル検出装置。
  4. 符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置における動きベクトル検出方法であって、
    符号化対象画像及び参照画像を格納する第1のメモリから、異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を読み出して第1の参照画素格納モードとして第3のメモリに格納するステップと、
    異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックの動きベクトル検出結果を参照動きベクトルとして、次に前記参照画面に時間的に離れた符号化ブロックに対して前記参照ブロックとの差異評価を実行する差異評価実行範囲を設定するステップと、
    異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させるように、前記第1のメモリに格納された符号化対象画像から符号化ブロックを読み出して第2のメモリに格納するステップと、
    前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、
    前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出するステップと
    を含む前記各ステップを前記動きベクトル検出装置に実行させることを特徴とする動きベクトル検出方法。
  5. 符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置における動きベクトル検出方法であって、
    符号化対象画像及び参照画像と複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第1のメモリから、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルとして前記動きベクトル検出結果を読み出して第4のメモリに格納するステップと、
    前記第1のメモリから、前記参照画像の水平方向のサイズと同じサイズの参照部分領域を読み出して第2の参照画素格納モードとして第3のメモリに格納するステップと、
    前記第1のメモリから前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出中間結果を順次読み出して第5のメモリに格納するステップと、
    前記参照動きベクトルに基づく動き検出範囲の所定割合以上が前記第3のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、前記符号化ブロック転送部を制御して前記第2のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが前記第5のメモリに動き検出中間結果として格納されている時は最小差異評価値を検出する際の初期値としてそれらの値を設定するステップと、
    前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、
    前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出し第5のメモリに格納するステップと、
    前記第5のメモリに格納された動きベクトル検出結果または動き検出中間結果を読み出して前記第1のメモリに格納するステップと
    を含む前記各ステップを前記動きベクトル検出装置に実行させることを特徴とする動きベクトル検出方法。
  6. 符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出方法における動きベクトル検出方法であって、
    両方向からの動きベクトルを求める必要のある両方向予測符号化画面に対する動き検出期間か、片方向予測符号化画面に対する動き検出期間かを判定するステップと、
    両方向予測符号化画面に対する動き検出期間の場合に、符号化対象画像及び参照画像を格納する第1のメモリから、異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を読み出して第1の参照画素格納モードとして第3のメモリに格納するステップと、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックの動きベクトル検出結果を参照動きベクトルとして、次に前記参照画面に時間的に離れた符号化ブロックに対して前記参照ブロックとの差異評価を実行する差異評価実行範囲を設定するステップと、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させるように、前記第1のメモリに格納された符号化対象画像から符号化ブロックを読み出して第2のメモリに格納するステップと、前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出するステップとを含む前記各ステップを前記動きベクトル検出装置に実行させ、
    片方向予測符号化画面に対する動き検出期間の場合に、符号化対象画像及び参照画像と複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第1のメモリから、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルとして前記動きベクトル検出結果を読み出して第4のメモリに格納するステップと、前記第1のメモリから前記参照画像の水平方向のサイズと同じサイズの参照部分領域を読み出して第2の参照画素格納モードとして第3のメモリに格納するステップと、前記第1のメモリから前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出中間結果を順次読み出して第5のメモリに格納するステップと、前記参照動きベクトルに基づく動き検出範囲が前記第3のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックを、前記符号化ブロック転送部を制御して前記第2のメモリに転送させ、垂直方向の差異評価実行範囲を設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが前記第5のメモリに動き検出中間結果として格納されている時は最小差異評価値を検出する際の初期値としてそれらの値を設定するステップと、前記第2のメモリに格納された前記符号化ブロックと、前記第3のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出し第5のメモリに格納するステップと、
    前記第5のメモリに格納された動きベクトル検出結果または動き検出中間結果を読み出して前記第1のメモリに格納するステップとを含む前記各ステップを前記動きベクトル検出装置に実行させることを特徴とする動きベクトル検出方法。
JP2003296849A 2003-08-20 2003-08-20 動きベクトル検出装置及び動きベクトル検出方法 Expired - Fee Related JP4015084B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003296849A JP4015084B2 (ja) 2003-08-20 2003-08-20 動きベクトル検出装置及び動きベクトル検出方法
TW93124502A TWI263924B (en) 2003-08-20 2004-08-16 Dynamical vector sensing device and dynamical vector sensing method
US10/921,210 US20050226332A1 (en) 2003-08-20 2004-08-19 Motion vector detector, method of detecting motion vector and image recording equipment
KR20040065980A KR100646302B1 (ko) 2003-08-20 2004-08-20 움직임 벡터 검출 장치 및 움직임 벡터 검출 방법
CNB200410085510XA CN1311692C (zh) 2003-08-20 2004-08-20 动态矢量检出装置以及动态矢量检出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003296849A JP4015084B2 (ja) 2003-08-20 2003-08-20 動きベクトル検出装置及び動きベクトル検出方法

Publications (3)

Publication Number Publication Date
JP2005072726A JP2005072726A (ja) 2005-03-17
JP2005072726A5 JP2005072726A5 (ja) 2005-06-30
JP4015084B2 true JP4015084B2 (ja) 2007-11-28

Family

ID=34402901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003296849A Expired - Fee Related JP4015084B2 (ja) 2003-08-20 2003-08-20 動きベクトル検出装置及び動きベクトル検出方法

Country Status (5)

Country Link
US (1) US20050226332A1 (ja)
JP (1) JP4015084B2 (ja)
KR (1) KR100646302B1 (ja)
CN (1) CN1311692C (ja)
TW (1) TWI263924B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006067731A1 (en) * 2004-12-22 2006-06-29 Koninklijke Philips Electronics N.V. Video stream modifier
JP4879558B2 (ja) * 2005-11-02 2012-02-22 パナソニック株式会社 動きベクトル検出装置
TWI304303B (en) * 2006-01-04 2008-12-11 Sunplus Technology Co Ltd Apparatus for image encoding and the method thereof
JP2007206644A (ja) * 2006-02-06 2007-08-16 Seiko Epson Corp 画像表示システム,画像表示方法,画像表示プログラム,記録媒体,データ処理装置,画像表示装置
JP4757080B2 (ja) * 2006-04-03 2011-08-24 パナソニック株式会社 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置
US9204149B2 (en) * 2006-11-21 2015-12-01 Vixs Systems, Inc. Motion refinement engine with shared memory for use in video encoding and methods for use therewith
US8296662B2 (en) * 2007-02-05 2012-10-23 Brother Kogyo Kabushiki Kaisha Image display device
JP5238882B2 (ja) * 2009-06-01 2013-07-17 パナソニック株式会社 画像符号化装置、方法、集積回路、プログラム
US8527689B2 (en) * 2010-10-28 2013-09-03 Lsi Corporation Multi-destination direct memory access transfer
JP2012142865A (ja) * 2011-01-05 2012-07-26 Sony Corp 画像処理装置及び画像処理方法
EP2490448A1 (de) * 2011-02-18 2012-08-22 Siemens Aktiengesellschaft Kodierverfahren und Bildkodiervorrichtung zur Kompression einer Bildsequenz
KR101805622B1 (ko) * 2011-06-08 2017-12-08 삼성전자주식회사 프레임율 제어 방법 및 장치
JP5803697B2 (ja) * 2012-01-27 2015-11-04 株式会社ソシオネクスト 動画像復号装置及び動画像復号方法
JP6526589B2 (ja) 2016-03-14 2019-06-05 株式会社東芝 画像処理デバイス及び画像処理プログラム
CN115250350B (zh) * 2018-09-03 2024-04-09 华为技术有限公司 运动矢量的获取方法、装置、计算机设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3385077B2 (ja) * 1993-10-28 2003-03-10 松下電器産業株式会社 動きベクトル検出装置
US5627601A (en) * 1994-11-30 1997-05-06 National Semiconductor Corporation Motion estimation with bit rate criterion
JP3994445B2 (ja) * 1995-12-05 2007-10-17 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
US5973742A (en) * 1996-05-24 1999-10-26 Lsi Logic Corporation System and method for performing motion estimation with reduced memory loading latency
TW361051B (en) * 1997-01-09 1999-06-11 Matsushita Electric Ind Co Ltd Motion vector detection apparatus
JPH11112991A (ja) * 1997-10-08 1999-04-23 Sharp Corp 動きベクトル検出装置
KR100246918B1 (ko) * 1997-12-31 2000-03-15 윤종용 모션벡터 검출장치
JP2000287214A (ja) * 1999-03-31 2000-10-13 Toshiba Corp 動き検出方法および装置
JP2002152756A (ja) * 2000-11-09 2002-05-24 Mitsubishi Electric Corp 動画像符号化装置
JP2003023638A (ja) * 2001-07-06 2003-01-24 Mitsubishi Electric Corp 動きベクトル検出装置および動きベクトル検出装置における自己テスト方法
JP2003143609A (ja) * 2001-08-21 2003-05-16 Canon Inc 画像処理装置、画像処理方法、記録媒体及びプログラム

Also Published As

Publication number Publication date
CN1592422A (zh) 2005-03-09
KR100646302B1 (ko) 2006-11-23
JP2005072726A (ja) 2005-03-17
TWI263924B (en) 2006-10-11
US20050226332A1 (en) 2005-10-13
TW200513934A (en) 2005-04-16
CN1311692C (zh) 2007-04-18
KR20050020714A (ko) 2005-03-04

Similar Documents

Publication Publication Date Title
JP4015084B2 (ja) 動きベクトル検出装置及び動きベクトル検出方法
KR100413153B1 (ko) 화상 부호화 장치, 화상 복호화 장치 및 기록 매체
US4853775A (en) Method and device to estimate motion in a sequence of moving pictures
KR101520027B1 (ko) 움직임 추정 방법 및 장치
US20150085918A1 (en) Image coding device, image coding method, and image coding integrated circuit
US20140049607A1 (en) Devices and Methods for Sparse Representation of Dense Motion Vector Fields for Compression of Visual Pixel Data
JP4514203B2 (ja) 動きベクトル検出装置及び方法
KR20210129206A (ko) 인코딩 및 디코딩 방법 및 장치, 인코딩단 기기 및 디코딩단 기기
CN102036067A (zh) 运动图像编码设备及其控制方法
US20050123039A1 (en) Motion estimation method for motion picture encoding and recording medium having program recorded thereon to implement the motion estimation method
BR112020026988A2 (pt) Método e aparelho de refinamento exato de subpixel baseado em superfície de erro para refinamento de vetor de movimento do lado do decodificador
KR20220003027A (ko) 인코딩 및 디코딩 방법, 장치 및 그 기기
KR20200138668A (ko) 동작 정보를 이용한 고해상도 동영상 생성 방법 및 장치
US20050105620A1 (en) Motion vector detecting device and motion vector detecting program
JP2005512202A (ja) 画像データ検索
US7852939B2 (en) Motion vector detection method and device of the same
JP2009071569A (ja) 動画像符号化における動き探索装置
JP2008154072A (ja) 動画像符号化装置及び動画像符号化方法
JP2002152750A (ja) 動きベクトル検出方法および装置
JP2007174202A (ja) 動きベクトル検出装置およびその方法
JP2001285874A (ja) 動きベクトル探索装置、方法及びプログラムを記録した記録媒体
JP4429996B2 (ja) 動画像符号化プログラム、動画像符号化方法および動画像符号化装置
JP2008245016A (ja) 画像符号化装置、画像符号化方法、及びプログラム
JPH08265773A (ja) 階層型動きベクトル検出方法及びその装置
JP2002051342A (ja) 符号化装置及び符号化方法並びに記憶媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070912

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees