JP2004215215A - Motion vector detecting method - Google Patents

Motion vector detecting method Download PDF

Info

Publication number
JP2004215215A
JP2004215215A JP2003068058A JP2003068058A JP2004215215A JP 2004215215 A JP2004215215 A JP 2004215215A JP 2003068058 A JP2003068058 A JP 2003068058A JP 2003068058 A JP2003068058 A JP 2003068058A JP 2004215215 A JP2004215215 A JP 2004215215A
Authority
JP
Japan
Prior art keywords
motion vector
block
candidate
picture
unit
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.)
Withdrawn
Application number
JP2003068058A
Other languages
Japanese (ja)
Inventor
Makoto Hagai
誠 羽飼
Shinya Sumino
眞也 角野
Toshiyuki Kondo
敏志 近藤
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003068058A priority Critical patent/JP2004215215A/en
Publication of JP2004215215A publication Critical patent/JP2004215215A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a motion vector detecting method which detects an optimum motion vector even when fading is caused. <P>SOLUTION: This method comprises: a step (S300) for generating a first motion vector candidate MVC1 based on a reference frame Rf1 and a second motion vector candidate MVC2 based on a reference frame Rf2; steps (S302, S304) for generating a interpolation predicting block PBO by interpolating a pixel value based on a predicting block PB1 indicated by the first motion vector candidate MVC1 and a predicting block PB2 indicated by the second motion vector candidate MVC2; steps (S306-S310) for calculating prediction error evaluation value based on a difference between pixel values of the interpolation predicting block PB0 and an encoding object block; and steps (S312, S314) for detecting the first and second motion vector candidates MVC1 and MVC2 with which the prediction error evaluation value becomes minimum, as motion vectors MV1 and MV2 of the encoding object block, respectively. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、動画像の符号化を行う際の、画像内の領域の動きを示す動きベクトルを検出する動きベクトル検出方法に関する。
【0002】
【従来の技術】
近年、マルチメディアアプリケーションの発展に伴い、画像・音声・テキストなど、あらゆるメディアの情報をディジタル化することにより統一的に扱うことが一般的になってきた。しかしながら、ディジタル化された画像は膨大なデータ量を持つため、蓄積・伝送のためには、画像の情報圧縮技術が不可欠である。一方で、圧縮した画像データを相互運用するためには、圧縮技術の標準化も重要である。画像圧縮技術の標準規格としては、ITU−T(国際電気通信連合 電気通信標準化部門)のH.261、H.263、又はISO(国際標準化機構)のMPEG(Moving Picture Experts Group)−1、MPEG−2、MPEG−4などがある(例えば、非特許文献1および非特許文献2参照。)。
【0003】
これらの標準規格の動画像符号化方式に共通の技術として動き補償を伴うフレーム間予測がある。これらの動画像符号化方式の動き補償では、入力画像のフレームを所定のサイズの矩形(以降、ブロックと呼ぶ)に分割し、各ブロック毎にフレーム間の動きを示す動きベクトルから予測画素を生成する。
【0004】
図31は、動きベクトルを説明するための説明図である。
例えば、ビデオカメラで動きのある被写体を撮影した場合、各フレーム毎に被写体の写っているブロックの位置は移動する。つまり、動きのある被写体がフレームRfのブロックBに含まれ、フレームTfではその被写体がブロックB0に含まれていれば、ブロックB0はブロックBから変位することとなり、ブロックB0に対するその変位が動きベクトルMVとして表される。
【0005】
そして、上述の動き補償では各ブロックに対して動きベクトルMVが検出され、その検出は、一般に、参照元となるフレーム(図31ではフレームRf)の中から、検出の対象となるブロック(図31ではブロックB0)と画素値が近いブロックを探すことで行われる。
【0006】
また、現在、ITU−Tで標準化中のH.26Lでは、符号化対象フレームの直前2枚のフレームを参照フレームとして画素補間することで予測画素を得る方法が検討されている。ここで、符号化対象フレームより表示時刻が前の2枚のフレームを参照して画素補間により予測画像(予測画素)を生成する予測方法を、前方補間予測という。
【0007】
図32は、2枚のフレームを用いて予測画像を生成する様子を説明するための説明図である。
この図32に示すように、符号化対象フレームTfのブロックB0の予測画像を生成するときには、例えば、表示時刻から見て、符号化対象フレームTfの直前にあるフレームRf1と、符号化対象フレームTfの2枚前にある参照フレームRf2とが参照フレームとして用いられる。即ち、これらの参照フレームRf1,Rf2の中からブロックB0と画素値が近いブロックB1,B2が探し出され、そのブロックB1,B2とブロックB0の位置の変位から動きベクトルMV1,MV2が検出される。
【0008】
そして、動きベクトルMV1で示される参照フレームRf1のブロックB1と、動きベクトルMV2で示される参照フレームRf2のブロックB2とからブロックB0の予測画像が生成される。つまり、ブロックB1の画素値とブロックB2の画素値とを用いて、ブロックB0に対して画素値の補間を行うことによって上記予測画像が生成される。このような画素値の補間方法には、例えば、平均値や外挿補間などがある。外挿補間はフェードなど時刻経過に対し画素値が線形に変化していく画面効果の予測に高い効果がある。
【0009】
また、ブロックB0は上述のように生成された予測画像を用いて符号化される。
図33は、上記従来の動画像符号化方式により動画像を符号化する動画像符号化装置800の構成を示すブロック図である。
【0010】
この動画像符号化装置800は、マルチフレームバッファ801と、動き推定部802と、動き補償部803と、画像符号化部804と、画像復号部805と、可変長符号化部806と、動きベクトルスケーリング部807と、加算器808と、減算器809,810と、スイッチ811,812とを備え、画像信号Imgにより示されるフレームをブロックに分割し、そのブロック毎に処理を行う。
【0011】
減算器809は、動画像符号化装置800に入力された画像信号Imgから予測画像信号Preを減算し、残差信号Resを出力する。
画像符号化部804は、残差信号Resを取得してDCT変換・量子化などの画像符号化処理を行い、量子化済DCT係数などを含む残差符号化信号Erを出力する。
【0012】
画像復号部805は、残差符号化信号Erを取得して逆量子化・逆DCT変換などの画像復号処理を行い、残差復号信号Drを出力する。加算器808は、残差復号信号Drと予測画像信号Preを加算し、再構成画像信号Rcを出力する。また、再構成画像信号Rcのうち、以降のフレーム間予測で参照される可能性がある信号は、マルチフレームバッファ801に格納される。
【0013】
図34は、動き推定部802の構成を示すブロック図である。
動き推定部802は、ブロック毎の動きベクトルを検出するものであって、動きベクトル候補生成部821と画素取得部822と減算器823と動きベクトル選択部824とを備えている。
【0014】
動きベクトル候補生成部821は、符号化対象となるブロックの動きベクトルMVの候補として、動きベクトル候補MVCを生成する。ここで、動きベクトル候補生成部821は、所定の動きベクトル検出範囲内から幾つかの動きベクトル候補MVCを順次生成する。
【0015】
画素取得部822は、動きベクトル候補MVCが示す参照フレームRf中の1ブロックを取得して、予測ブロックPBとして減算器823に出力する。
減算器823は、画像信号Imgの符号化対象となるブロックと、予測ブロックPBとの画素値の差分を計算し、予測誤差ブロックRBとして動きベクトル選択部824に出力する。
【0016】
動きベクトル選択部824は、動きベクトル候補生成部821で生成された各動きベクトル候補MVCに対する予測誤差ブロックRBを取得すると、これらの予測誤差ブロックRBのそれぞれに対して、そのブロック内の画素値からSAD(予測誤差値の絶対値和)やSSD(予測誤差値の2乗和)などの予測誤差評価値を算出する。そして、動きベクトル選択部824は、その予測誤差評価値が最小となるときの動きベクトル候補MVCを選択し、その選択した動きベクトル候補MVCを動きベクトルMVとして出力する。
【0017】
このような動きベクトル推定部802は、前方補間予測時には、上述のような処理動作を繰り返し行うことで、符号化対象ブロックに対して2つの参照フレームRf1,Rf2に基づく動きベクトルMV1,MV2を検出する。
【0018】
図35は、動きベクトルMV1,MV2を検出する様子を説明するための説明図である。
動き推定部802は、スイッチ811,812の接点が接点0側に切り換えられると、上述のように予測誤差評価値を算出することで、符号化対象フレームTf中の符号化対象ブロックと画素値の近いブロック(予測誤差評価値が最小のブロック)を参照フレームRf1から探し出し、符号化対象フレームTf中のブロックの画素Pt0と、参照フレームRf1から探し出されたブロック内において画素Pt0とブロック内の相対位置が等しい画素Pt1との変位を示す動きベクトルMV1を検出する。
【0019】
次に、動き推定部802は、スイッチ811,812の接点が接点1側に切り換えられると、上述と同様、符号化対象フレームTf中の符号化対象ブロックと画素値の近いブロック(予測誤差評価値が最小のブロック)を参照フレームRf2から探し出し、符号化対象フレームTf中のブロックの画素Pt0と、参照フレームRf2から探し出されたブロック内において画素Pt0とブロック内の相対位置が等しい画素Pt2との変位を示す動きベクトルMV2を検出する。
【0020】
動き補償部803は、前方補間予測時には、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ801から取り出す。そして動き補償部803は、これらのブロックに基づいて画素値の補間処理を行って予測画像を示す予測画像信号Preを作成し、これを出力する。
【0021】
なお、この前方補間予測により予測画像を得る場合の符号化対象ブロックを前方補間予測ブロックと呼ぶ。また、動き補償部803はブロック毎に他の予測方法、例えば表示時刻より前の1枚のフレームのみから予測を行う前方予測、に切り替えることも可能である。
【0022】
ここで、画素値(輝度値)が時間的に変化するフェードについて説明する。上述のように被写体を含むブロックの位置はその被写体の動きに応じて変位するとともに、そのブロック内の画素値は時間的に変化する。
【0023】
図36は、フェードによる画素値の変化を説明するための説明図である。
上述の動きベクトルMV2で示される画素Pt2の画素値は、動きベクトルMV1で示される画素Pt1の画素値に変化する。このような変化は時間間隔が短ければ図36中の線Lで示されるように時間に比例すると仮定することができる。
【0024】
そこで、符号化対象フレームTfのブロックB0の画素Pt0の画素値P0は、参照フレームRf1,Rf2の画素Pt1,Pt2の画素値P1,P2から外挿して、計算式「P0=2×P1−P2」により予測される。
【0025】
動き補償部803は、上式の外挿を行うことでフェードに対する予測効果を高めて符号化効率を向上している。また、動き補償部803は、フェードがない画像に対しては、外挿の代わりに内挿(平均値)による補間を行っており、その結果、より最適な予測方法の選択の幅を広げて符号化効率を向上している。
【0026】
動きベクトルスケーリング部807は、動きベクトルMV1に対してスケーリングを行う。
動き推定部802で検出された動きベクトルMV1に対して、動きベクトルスケーリング部807は、図35に示すように、符号化対象フレームTf及び参照フレームRf1が表示される時間差を示す表示時間差T1と、符号化対象フレームTf及び参照フレームRf2が表示される時間差を示す表示時間差T2とに基づいて、スケーリングを行う。
【0027】
即ち、動きベクトルスケーリング部807は、表示時間差T1に対する表示時間差T2の割合(T2/T1)を、動きベクトルMV1に乗じることで、動きベクトルMV1に対するスケーリングを行い、動きベクトルMVsを求める。
【0028】
また、このような表示時間差T1,T2に関する情報は、マルチフレームバッファ801から取得される。つまり、再生構成画像信号Rcにより示されるフレームは、そのフレームの表示時間に関する情報と共にマルチフレームバッファ801に記録されている。
【0029】
減算器810は、動き推定部802で検出された動きベクトルMV2から、上述の動きベクトルMVsを減算して、図35に示す差分ベクトルMVdを出力する。
【0030】
可変長符号化部806は、動きベクトルMV1と差分ベクトルMVdと残差符号化信号Erとを可変長符号化し、画像符号化信号Bsを出力する。
以上、説明した処理により動画像符号化装置800は画像信号Imgを符号化して、画像符号化信号Bsを出力する。
【0031】
図37は、画像符号化信号Bsのフォーマットの概念を示す概念図である。
画像符号化信号Bsには、前方補間予測により符号化されたフレームを示す内容のフレーム符号化信号Bsf9が含まれ、さらにこのフレーム符号化信号Bsf9には符号化された前方補間予測ブロック(符号化対象ブロック)を示す内容のブロック符号化信号Bsb9が含まれている。そしてさらに、このブロック符号化信号Bsb9には、符号化された動きベクトルMV1を示す内容の第1動きベクトル符号化信号Bs1と、符号化された差分ベクトルMVdを示す内容の差分ベクトル符号化信号Bsdとが含まれる。
【0032】
このような動画像符号化装置800が実行する動きベクトル符号化方法では、動きベクトルスケーリング部807及び減算器810並びに可変長符号化部806により、動きベクトルMV1と差分ベクトルMVdが符号化されるため、符号化対象フレームTf、参照フレームRf1及び参照フレームRf2の各フレーム間で、画面内の被写体の動きの向き・速度が一定と仮定すると、差分ベクトルMVdが0に近くなって、動きベクトルの符号化効率が良い。
【0033】
次に、動画像符号化装置800により符号化された画像を復号化する動画像復号化装置について説明する。
図38は、従来の動画像復号化装置の構成を示すブロック図である。
【0034】
この動画像復号化装置900は、マルチフレームバッファ901と、動き補償部903と、画像復号化部905と、可変長復号化部906と、動きベクトルスケーリング部907と、加算器909,910とを備えている。
【0035】
可変長復号化部906は、画像符号化信号Bsを取得して可変長復号を行い、残差符号化信号Erと動きベクトルMV1と差分ベクトルMVdとを出力する。画像復号化部905は、残差符号化信号Erを取得して、逆量子化や逆DCT変換などの画像復号処理を行い、残差復号信号Drを出力する。
【0036】
動きベクトルスケーリング部907は、動画像符号化装置800の動きベクトルスケーリング部807と同様、可変長復号化部906から出力された動きベクトルMV1を取得すると、符号化対象フレームTfと参照フレームRf1との表示時間差T1、及び符号化対象フレームTfと参照フレームRf2との表示時間差T2に基づいて、動きベクトルMV1に対してスケーリングを行い、その結果生成された動きベクトルMVsを出力する。
【0037】
加算器910は、スケーリング済みの動きベクトルMVsと差分ベクトルMVdとを加算し、その加算結果を動きベクトルMV2として出力する。
動き補償部903は、動画像符号化装置800の動き補償部803と同様、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ901から取り出す。そして動き補償部903は、これらのブロックに基づいて画素値の補間処理を行って予測画像信号Preを作成しこれを出力する。
【0038】
加算器909は、動き補償部903からの予測画像信号Preと、画像復号化部905からの残差復号信号Drとを加算し、その結果を復号画像信号Diとして出力する。
【0039】
マルチフレームバッファ901は、動画像符号化装置800のマルチフレームバッファ801と同様の構成を有し、復号画像信号Diのうち、フレーム間予測で参照される可能性がある信号を格納する。
【0040】
このような動画像復号化装置900は画像符号化信号Bsを復号化して、その復号結果を復号画像信号Diとして出力する。
以上のように動画像符号化装置800を含む多くの従来の動画像符号化装置における動きベクトルの検出方法には、SADやSSDなどの予測誤差評価値が用いられている。
【0041】
【非特許文献1】
“Video Coding for Low Bit Rate Communication”H.263,ITU−T,1996.3
【0042】
【非特許文献2】
DRAFT FOR “H.263++” ANNEXES U, V, AND W TO RECOMMENDATION H.263(U.4 Decoder Process),ITU−T,2000.11
【0043】
【発明が解決しようとする課題】
しかしながら、上記従来の動きベクトル検出方法では、フェードによる画素値の変化が考慮されていないため、符号化対象ブロックと予測画像との画素値に差が生じ易く、つまり上述のSADやSSDなどの予測誤差評価値の値が増加し易く、最適な動きベクトルを検出することができないといった問題がある。
【0044】
そこで本発明では、フェードが生じても最適な動きベクトルを検出する動きベクトル検出方法を提供することを目的とする。
【0045】
【課題を解決するための手段】
上記目的を達成するために、本発明の動きベクトル検出方法は、動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを検出する動きベクトル検出方法であって、前記検出対象ブロックの第1の参照ピクチャに基づく第1の動きベクトル候補を生成する第1の候補生成ステップと、前記検出対象ブロックの第2の参照ピクチャに基づく第2の動きベクトル候補を生成する第2の候補生成ステップと、前記第1の参照ピクチャにおける第1の動きベクトル候補が示す第1の予測用ブロックと、前記第2の参照ピクチャにおける第2の動きベクトル候補が示す第2の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで補間予測ブロックを作成する補間ステップと、前記補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する算出ステップと、前記評価値に基づいて、前記第1の候補生成ステップで生成された複数の第1の動きベクトル候補の中から1つを選択するとともに、前記第2の候補生成ステップで生成された複数の第2の動きベクトル候補の中から1つを選択する選択ステップと、選択された前記第1の動きベクトル候補を、前記検出対象ブロックにおける前記第1の参照ピクチャに基づく第1の動きベクトルとして検出するとともに、選択された前記第2の動きベクトル候補を、前記検出対象ブロックにおける前記第2の参照ピクチャに基づく第2の動きベクトルとして検出する検出ステップとを含むことを特徴とする。例えば、前記選択ステップでは、前記評価値が最小となる第1及び第2の動きベクトル候補をそれぞれ1つ選択する。
【0046】
これにより、画素値の補間処理を行った結果に基づいて評価値が算出されるため、フェードが生じる場合であってもその影響による評価値の誤差の増加を防止して、最適な動きベクトルを検出することができる。
【0047】
さらに、本発明に係る動きベクトル符号化方法は、動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを符号化する動きベクトル符号化方法であって、上記本発明に係る動きベクトル検出方法で第1及び第2の動きベクトルを検出する動きベクトル検出ステップと、前記第1及び第2の動きベクトルをそれぞれ符号化する符号化ステップとを含むことを特徴とする。
【0048】
これにより、最適な動きベクトルをそれぞれ符号化することができる。
また、本発明に係る動きベクトル符号化方法は、動画像における符号化の対象となる符号化対象ピクチャに対して、他の2つのピクチャを参照ピクチャとして参照することで第1及び第2の動きベクトルの符号化方法を特定し、前記第1及び第2の動きベクトルに関する情報を符号化する動きベクトル符号化方法であって、ピクチャがその表示時刻に関する情報と共に記録される第1の領域と前記第1の領域に記録されていないピクチャが記録される第2の領域とを有する記憶手段から前記2つの参照ピクチャを読み出す読出ステップと、前記2つの参照ピクチャのうちの少なくとも1つが前記第2の領域から読み出されたか否かを判定する判定ステップと、前記判定ステップで、前記2つの参照ピクチャのうちの少なくとも1つが前記第2の領域から読み出されたと判定されたときには、前記第1の動きベクトルと前記第2の動きベクトルとの差分を示す差分ベクトルを求める差分ベクトル導出ステップと、前記第1の動きベクトルと前記差分ベクトルとを符号化する符号化ステップとを含むことを特徴としても良い。
【0049】
これにより、前記2つの参照ピクチャのうちの少なくとも1つがメモリの第2の領域から読み出されたときには、従来例のように動きベクトルのスケーリングが行われないため、無理なスケーリングの実行を省き、動きベクトルの符号化効率の向上を図ることができる。
【0050】
一方、本発明に係る動きベクトル復号化方法は、動画像における復号化の対象となる復号化対象ピクチャに対して、他の2つのピクチャを参照ピクチャとして参照することで第1及び第2の動きベクトルの復号化方法を特定し、前記第1及び第2の動きベクトルに関する情報を符号化した符号化情報を復号化する動きベクトル復号化方法であって、前記符号化情報から前記第1の動きベクトルと前記第1及び第2の動きベクトルに関する関連ベクトルとを復号化する復号化ステップと、ピクチャがその表示時刻に関する情報と共に記録される第1の領域と前記第1の領域に記録されていないピクチャが記録される第2の領域とを有する記憶手段から前記2つの参照ピクチャを読み出す読出ステップと、前記2つの参照ピクチャのうちの少なくとも1つが前記第2の領域から読み出されたか否かを判定する判定ステップと、前記判定ステップで、前記2つの参照ピクチャのうちの少なくとも1つが前記第2の領域から読み出されたと判定されたときには、前記関連ベクトルと前記第1の動きベクトルを加算して前記第2の動きベクトルを求める演算ステップとを含むことを特徴とする。
【0051】
これにより、前記2つの参照ピクチャのうちの少なくとも1つがメモリの第2の領域から読み出されたときには、従来例のように動きベクトルのスケーリングが行われないため、無理なスケーリングの実行を省き、動きベクトルの復号化効率の向上を図ることができる。
【0052】
なお、本発明は、上記動きベクトル検出方法や動きベクトル符号化方法を用いる動画像符号化装置、プログラム、及びそのプログラムを格納する記憶媒体としても実現することができる。
【0053】
【発明の実施の形態】
(実施の形態1)
以下、本発明の第1の実施の形態における動画像符号化装置について図面を参照しながら説明する。
【0054】
図1は、本実施の形態における動画像符号化装置300Aの構成を示すブロック図である。
本実施の形態の動画像符号化装置300Aは、最適な動きベクトルを検出して符号化するものであって、マルチフレームバッファ301と、動き推定部302と、動き補償部303と、画像符号化部304と、画像復号部305と、可変長符号化部306と、加算器308及び減算器309とを備える。
【0055】
動き推定部302は、マルチフレームバッファ301から読み出された参照フレームRf1,Rf2のそれぞれに基づいて、画像信号Imgにより示される符号化対象フレームTf中のブロック(符号化対象ブロック)の最適な動きベクトルMV1,MV2を検出する。
【0056】
動き補償部303は、動画像符号化装置800の動き補償部803と同様に、前方補間予測時には、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ801から取り出す。そして、動き補償部303はこれらのブロックに基づいて、図36で説明したような外挿による画素値の補間処理を行って予測画像を示す予測画像信号Preを作成してこれを出力する。このように外挿による画素値の補間処理を行うことでフェードに対する予測効果を高めることができる。なお、動き補償部303は、符号化対象のブロック毎に予測方法を、前方補間予測と他の予測方法、例えば表示時刻より前の1枚のフレームのみから予測を行う前方予測と、に切り替えても良い。
【0057】
減算器309は、画像信号Imgから予測画像信号Preを減算して残差信号Resを出力する。
画像符号化部304は、残差信号Resを取得してDCT変換・量子化などの画像符号化処理を行い、量子化済DCT係数などを含む残差符号化信号Erを出力する。
【0058】
画像復号部305は、残差符号化信号Erを取得して、逆量子化・逆DCT変換などの画像復号処理を行い、残差復号信号Drを出力する。
加算器108は、残差復号信号Drと予測画像信号Preを加算して再構成画像信号Rcを出力する。
【0059】
マルチフレームバッファ301は、再構成画像信号Rcのうち、フレーム間予測で参照される可能性がある信号を格納する。
可変長符号化部306は、動き推定部302で検出された動きベクトルMV1,MV2と、画像符号化部304から出力される残差符号化信号Erとを可変長符号化し、これらの符号化された結果を画像符号化信号Bs1として出力する。
【0060】
このような動画像符号化装置300Aは、画像信号Imgにより示される符号化対象フレームTfの各ブロックを符号化するときには、2枚の参照フレームRf1,Rf2を参照して、これらの参照フレームRf1,Rf2に基づく符号化対象ブロックの動きベクトルMV1,MV2を検出する。そして動画像符号化装置300Aは、検出した動きベクトルMV1,MV2をそれぞれ符号化するとともに、参照フレームRf1,Rf2及び動きベクトルMV1,MV2から予測される予測画像と、符号化対象ブロックとの画素値の差を符号化する。
【0061】
ここで、参照フレームRf1,Rf2はそれぞれ、符号化対象フレームTfに対して時間的に前方にあっても後方にあっても良い。
図2は、参照フレームRf1,Rf2と符号化対象フレームTfの時間的な位置関係を示すフレーム配置図である。
【0062】
この図2中の(a)に示すように、動画像符号化装置300Aは、符号化対象フレームTfの前方に位置するフレームを参照フレームRf1,Rf2として参照しても良く、図2中の(b)に示すように、符号化対象フレームTfの後方に位置するフレームを参照フレームRf1,Rf2として参照しても良い。さらに、図2中の(c)に示すように、符号化対象フレームTfの前方に位置する1つのフレームを参照フレームRf2として参照し、符号化対象フレームTfの後方に位置する1つのフレームを参照フレームRf1として参照しても良く、その逆、つまり符号化対象フレームTfの前方に位置する1つのフレームを参照フレームRf1として参照し、符号化対象フレームTfの後方に位置する1つのフレームを参照フレームRf2として参照しても良い。
【0063】
このような本実施の形態における動画像符号化装置300Aの動き推定部302について詳細に説明する。
動き推定部302は、上述のように参照フレームRf1,Rf2のそれぞれに基づいて、符号化対象ブロックの動きベクトルMV1,MV2を検出し、これらの動きベクトルMV1,MV2を動き補償部303に出力する。
【0064】
図3は、動き推定部302の構成を示すブロック図である。
本実施の形態における上述の動き推定部302は、第1動きベクトル候補生成部321と、第2動きベクトル候補生成部322と、画素取得部323,324と、補間部325と、減算器326と、動きベクトル選択部327とを備えている。
【0065】
第1動きベクトル候補生成部321は、符号化対象ブロックの参照フレームRf1に基づく動きベクトルMV1の候補を、所定の検出範囲から全て抽出し、これらをそれぞれ第1動きベクトル候補MVC1として順次出力する。
【0066】
第2動きベクトル候補生成部322は、第1動きベクトル候補生成部321と同様、符号化対象ブロックの参照フレームRf2に基づく動きベクトルMV2の候補を、所定の検出範囲から全て抽出し、これらをそれぞれ第2動きベクトル候補MVC2として順次出力する。
【0067】
図4は、第1動きベクトル候補MVC1及び第2動きベクトル候補MVC2の生成方法を説明するための説明図である。
第1動きベクトル候補生成部321は、参照フレームRf1の動きベクトル検出範囲SRから何れかの画素Pt1を選択し、符号化対象ブロックの画素Pt0と画素Pt1との変位を第1動きベクトル候補MVC1として出力し、第2動きベクトル候補生成部322は、参照フレームRf2の動きベクトル検出範囲SR1から何れかの画素Pt2を選択し、符号化対象ブロックの画素Pt0と画素Pt2との変位を第2動きベクトル候補MVC2として出力する。
【0068】
画素取得部323は、第1動きベクトル候補MVC1が示す参照フレームRf1中の1ブロック(図4中の画素Pt1を含むブロック)を取得して、予測ブロックPB1として補間部325に出力する。
【0069】
画素取得部324は、第2動きベクトル候補MVC2が示す参照フレームRf2中の1ブロック(図4中の画素Pt2を含むブロック)を取得して、予測ブロックPB2として補間部325に出力する。
【0070】
補間部325は、予測ブロックPB1,PB2のブロック内での相対位置が互いに等しい2つの画素を用いて画素値の補間を行うことで、符号化対象ブロックに対する補間予測ブロックPB0を作成し、これを減算器326に出力する。
【0071】
このような画素値の補間処理は、前方補間予測の場合であれば、図36で説明したように、2つの画素値を外挿することにより行われる。つまり、図36に示すように、予測ブロックPB1内の画素Pt1と、予測ブロックPB2内の画素Pt2とがブロック内での相対位置が互いに等しい場合、画素Pt1の画素値P1と画素Pt2の画素値P2とから計算式「P0’=2×P1−P2」の計算を行い、画素Pt1,Pt2に対応する符号化対象ブロック内の画素Pt0の補間予測画素値P0’を算出する。そして補間部325は、符号化対象ブロック内の全ての画素に対する補間予測画素値P0’を算出することで補間予測ブロックPB0を作成している。
【0072】
減算器326は、画像信号Imgに示される符号化対象ブロックと、補間予測ブロックPB0との互いに対応する画素の画素値の差分(P0−P0’)を計算し、その結果を予測誤差ブロックRB0として動きベクトル選択部327に出力する。
【0073】
動きベクトル選択部327は、減算器326から予測誤差ブロックRB0を取得すると、以下の(式1)で示されるSAD(予測誤差値の絶対値和)や、以下の(式2)で示されるSSD(予測誤差値の2乗和)などの予測誤差評価値を算出する。
【0074】
【数1】

Figure 2004215215
このような予測誤差評価値は、第1動きベクトル候補生成部321で生成される第1動きベクトル候補MVC1と、第2動きベクトル候補生成部322で生成される第2動きベクトル候補MVC2との全ての組合せに対して算出される。
【0075】
そして、動きベクトル選択部327は、予測誤差評価値が最も小さくなる第1動きベクトル候補MVC1及び第2動きベクトル候補MVC2を選択し、選択した第1動きベクトル候補MVC1を、参照フレームRf1に基づく符号化対象ブロックの動きベクトルMV1として出力するとともに、選択した第2動きベクトル候補MVC2を、参照フレームRf2に基づく符号化対象ブロックの動きベクトルMV2として出力する。
【0076】
これにより、本実施の形態の動き推定部302は、フェードによる画素値の変化が生じても、これを考慮して動きベクトルを検出するため、最適な動きベクトルを検出することができる。
【0077】
そして可変長符号化部306は、上述のように動き推定部302で検出された動きベクトルMV1,MV2を可変長符号化し、画像符号化信号Bs1に含めて出力する。なお、可変長復号化部306は、符号化対象ブロックの周辺にある周辺ブロックから求められた動きベクトルMV1,MV2の予測値を、それぞれ動きベクトルMV1,MV2から差し引いて、それぞれの差分を符号化しても良い。
【0078】
図5は、画像符号化信号Bs1のフォーマットの概念を示す概念図である。
画像符号化信号Bs1には、符号化されたフレームを示す内容のフレーム符号化信号Bsf1が含まれ、さらにこのフレーム符号化信号Bsf1には符号化されたブロックを示す内容のブロック符号化信号Bsb1が含まれている。そしてさらに、このブロック符号化信号Bsb1には、符号化された動きベクトルMV1を示す内容の第1動きベクトル符号化信号Bs1と、符号化された動きベクトルMV2を示す内容の第2動きベクトル符号化信号Bs2とが含まれる。
【0079】
図6は、動画像符号化装置300Aが動きベクトルを検出して符号化するまでの動作を示すフロー図である。
まず、動画像符号化装置300Aの動き推定部302は、第1動きベクトル候補MVC1と第2動きベクトル候補MVC2をそれぞれ1つ生成する(ステップS300)。
【0080】
そして動き推定部302は、その第1動きベクトル候補MVC1で示される予測ブロックPB1と、第2動きベクトル候補MVC2で示される予測ブロックPB2とを取得する(ステップS302)。
【0081】
次に、動き推定部302は、予測ブロックPB1,PB2から画素補間処理を行うことにより補間予測ブロックPB0を作成する(ステップS304)。
その後、動き推定部302は、符号化対象ブロックを取得して(ステップS306)、その符号化対象ブロックと補間予測ブロックPB0との差分を求め、予測誤差ブロックRB0を作成する(ステップS308)。
【0082】
そして動き推定部302は、ステップS308で作成された予測誤差ブロックRP0から予測誤差評価値を算出し(ステップS310)、第1動きベクトル候補MVC1と第2動きベクトル候補MVC2との全ての組合せに対して予測誤差評価値を算出したか否かを判断する(ステップS312)。
【0083】
ここで、動き推定部302が、全ての組合せに対して予測誤差評価値を算出していないと判断したときには(ステップS312のN)、再び前回と異なる第1動きベクトル候補MVC1と第2動きベクトル候補MVC2との組み合わせを生成してステップS300からの動作を繰り返し実行する。また、動き推定部302が全ての組合せに対して予測誤差評価値を算出したと判断したときには(ステップS312のY)、ステップS310で算出された全ての予測誤差評価値の中で、最小の予測誤差評価値が算出されたときにステップS300で生成された第1動きベクトル候補MVC1を動きベクトルMV1として検出するとともに、このときの第2動きベクトル候補MVC2を動きベクトルMV2として検出する(ステップS314)。
【0084】
そして動画像符号化装置300Aの可変長符号化部306は、ステップS314で検出された動きベクトルMV1,MV2をそれぞれ符号化する(ステップS316)。
【0085】
このように本実施の形態では、画素値の補間処理を行った結果に基づいて予測誤差評価値を算出するため、フェードが生じる場合であってもその影響による予測誤差評価値の増加を防止して、最適な動きベクトルを検出することができる。また、その結果、動きベクトルの符号化効率を向上することができる。
【0086】
(実施の形態2)
以下、本発明の第2の実施の形態における動画像復号化装置について図面を参照しながら説明する。
【0087】
図7は、本実施の形態における動画像復号化装置300Bの構成を示すブロック図である。
本実施の形態の動画像復号化装置300Bは、実施の形態1の動画像符号化装置300Aにより符号化された動画像を復号化するものであって、可変長復号化部336と、動き補償部333と、画像復号化部335と、マルチフレームバッファ331と、加算器339とを備えている。
【0088】
可変長復号化部336は、画像符号化信号Bs1を取得して可変長復号を行い、残差符号化信号Erと動きベクトルMV1と動きベクトルMV2とを出力する。なお、動きベクトルMV1,MV2のそれぞれが、復号化対象ブロックの周辺にある周辺ブロックから求められた動きベクトルMV1,MV2の予測値を差し引いて符号化されているときには、可変長復号化部2336はその符号化された差分をそれぞれ復号化して、そのそれぞれの差分に対して上述の予測値を加算することで動きベクトルMV1,MV2を生成しても良い。
【0089】
画像復号化部335は、残差符号化信号Erを取得して、逆量子化や逆DCT変換などの画像復号処理を行い、残差復号信号Drを出力する。
動き補償部333は、動画像符号化装置300Aの動き補償部303と同様に、前方補間予測時には、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ331から取り出す。そして、動き補償部333はこれらのブロックに基づいて、図36で説明したような外挿による画素値の補間処理を行って予測画像信号Preを作成してこれを出力する。
【0090】
加算器339は、動き補償部333からの予測画像信号Preと、画像復号化部335からの残差復号信号Drとを加算し、その結果を復号画像信号Diとして出力する。
【0091】
マルチフレームバッファ331は、復号画像信号Diのうち、フレーム間予測で参照される可能性がある信号を格納する。
このような本実施の形態における動画像復号化装置300Bは、動きベクトルMV1,MV2に基づく動き補償を行うことで、動画像符号化装置300Aで符号化された画像を正確に復号することができる。
【0092】
(実施の形態3)
以下、本発明の第3の実施の形態における動画像符号化装置について図面を参照しながら説明する。
【0093】
図8は、本実施の形態における動画像符号化装置400Aの構成を示すブロック図である。
本実施の形態の動画像符号化装置300Aは、実施の形態1と同様、最適な動きベクトルを検出して符号化するものであって、マルチフレームバッファ401と、動き推定部402と、動き補償部403と、画像符号化部404と、画像復号部405と、可変長符号化部406と、加算器408及び減算器409とを備える。
【0094】
ここで本実施の形態におけるマルチフレームバッファ401と、動き補償部403と、画像符号化部404と、画像復号部405と、加算器408及び減算器409とは、実施の形態1のマルチフレームバッファ301と、動き補償部303と、画像符号化部304と、画像復号部305と、加算器308及び減算器309とそれぞれ同様の機能及び構成を有する。
【0095】
このような本実施の形態の動画像符号化装置400Aでは、実施の形態1と比べて、動きベクトルの検出方法と動きベクトルの符号化方法とが異なっており、前方補間予測時であっても動きベクトルを実質的に1つだけ検出してこれを符号化する点に特徴がある。
【0096】
図9は、本実施の形態の動き推定部402の構成を示すブロック図である。
本実施の形態における動き推定部402は、第1動きベクトル候補生成部421と、動きベクトルスケーリング部422と、画素取得部423,424と、補間部425と、減算器426と、動きベクトル選択部427とを備えている。そして、このような動き推定部402は、マルチフレームバッファ401から読み出された参照フレームRf1,Rf2のそれぞれに基づいて、画像信号Imgにより示される符号化対象フレームTf中のブロック(符号化対象ブロック)の最適な動きベクトルMV1,MV2を検出する。
【0097】
ここで、第1動きベクトル候補生成部421と画素取得部423,424と補間部425と減算器426と動きベクトル選択部427は、実施の形態1の動き推定部302における第1動きベクトル候補生成部321と画素取得部323,324と補間部325と減算器326と動きベクトル選択部327とそれぞれ同様の機能及び構成を有している。
【0098】
即ち本実施の形態における動き推定部402は、実施の形態1の第2動きベクトル候補生成部322の代わりに動きベクトルスケーリング部422を備えており、第1動きベクトル候補MVC1をスケーリングすることで第2動きベクトル候補MVC2を生成している。
【0099】
図10は、第1動きベクトル候補MVC1及び第2動きベクトル候補MVC2の生成方法を説明するための説明図である。
第1動きベクトル候補生成部421は、参照フレームRf1の動きベクトル検出範囲SRから何れかの画素Pt1を選択し、符号化対象ブロックの画素Pt0と画素Pt1との変位を第1動きベクトル候補MVC1として出力する。
【0100】
動きベクトルスケーリング部422は、上述のように生成された第1動きベクトル候補MVC1を取得すると、符号化対象フレームTf及び参照フレームRf1が表示される時間差を示す表示時間差T1と、符号化対象フレームTf及び参照フレームRf2が表示される時間差を示す表示時間差T2とに基づいて、第1動きベクトル候補MVC1に対してスケーリングを行う。
【0101】
即ち、動きベクトルスケーリング部422は、表示時間差T1に対する表示時間差T2の割合(T2/T1)を、第1動きベクトル候補MVC1に乗じることで、第1動きベクトル候補MVC1に対するスケーリングを行い、動きベクトルMVCsを求める。
【0102】
そして動きベクトルスケーリング部422はこのようにスケーリングして求めた動きベクトルMVCsを画素取得部424と動きベクトル選択部427へ出力する。
【0103】
画素取得部424と動きベクトル選択部427は、動きベクトルスケーリング部422から動きベクトルMVCsを取得すると、この動きベクトルMVCsを第2動きベクトル候補MVC2として扱い、それぞれ実施の形態1と同様の動作を行う。
【0104】
また、第1動きベクトル候補生成部421は、動きベクトル検出範囲SRから順次全ての第1動きベクトル候補MVC1を作成し、動きベクトルスケーリング部422は、その第1動きベクトル候補MVC1を取得するごとにスケーリングを行い、動きベクトルMVCsを作成する。
【0105】
動きベクトル選択部427は、第1動きベクトル候補生成部421で第1動きベクトル候補MVC1が生成されるたびに、その第1動きベクトル候補MVC1と、こらから求められた動きベクトルMVCsとに基づく予測誤差評価値を算出し、その結果、予測誤差評価値が最小となる第1動きベクトル候補MVC1と動きベクトルMVCsとを選択する。そして動きベクトル選択部427は、選択した第1動きベクトル候補MVC1と動きベクトルMVCsとを、動きベクトルMV1,MV2として出力する。
【0106】
上述のような動き推定部402の一連の動作について以下に説明する。
まず、第1動きベクトル候補生成部421は、動きベクトルMV1の候補である第1動きベクトル候補MVC1を生成する。
【0107】
次に、動きベクトルスケーリング部422は、第1動きベクトル候補MVC1に対してスケーリングを行うことで動きベクトルMVCsを生成してこれを出力する。
【0108】
そして画素取得部423は、第1動きベクトル候補MVC1により示される参照フレームRf1の画素を含む1ブロックを予測ブロックPB1として取得し、これを補間部425に出力する。画素取得部424は、動きベクトルMVCsにより示される参照フレームRf2の画素を含む1ブロックを予測ブロックPB2として取得し、これを補間部425に出力する。
【0109】
補間部425は、画素取得部423,424がそれぞれ取得した2つの予測ブロックPB1,PB2のそれぞれにおいて、対応する画素の画素値を補間処理することで補間予測ブロックPB0を生成する。
【0110】
減算器426は、補間予測ブロックPB0と画像信号Img中の符号化対象ブロックとの間の画素値の差分を計算し、その計算結果を予測誤差ブロックRB0として出力する。
【0111】
動きベクトル選択部427は、予測誤差ブロックRB0内の画素の画素値に基づいて予測誤差評価値を算出する。そして動きベクトル選択部427は、第1動きベクトル候補生成部421で生成された全ての第1動きベクトル候補MVC1に対してそれぞれ上述のように予測誤差評価値を算出すると、予測誤差評価値が最小となる第1動きベクトル候補MVC1と動きベクトルMVCsとを選択する。
【0112】
そして動きベクトル選択部427は、選択した第1動きベクトル候補MVC1と動きベクトルMVCsとを、動きベクトルMV1,MV2として出力する。
このように本実施の形態における動き推定部402では、実施の形態1と同様に、画素値の補間処理を行った結果に基づいて予測誤差評価値を算出するため、フェードが生じる場合であってもその影響による予測誤差評価値の増加を防止して、最適な動きベクトルを検出することができる。また、本実施の形態における動き推定部402では、前方補間予測時であっても実質的な動きベクトルMV2の検出を行っておらず、動きベクトルMV1に対してスケーリングが行われたものを動きベクトルMV2とするため、動きベクトルMV2の検出にかかる手間を省いて、符号化効率を向上することができる。
【0113】
また本実施の形態の可変長符号化部406は、動きベクトルMV1と残差符号化信号Erとを可変長符号化し、画像符号化信号Bs2を出力する。
図11は、画像符号化信号Bs2のフォーマットの概念を示す概念図である。
【0114】
画像符号化信号Bs2には、符号化されたフレームを示す内容のフレーム符号化信号Bsf2が含まれ、さらにこのフレーム符号化信号Bsf2には符号化されたブロックを示す内容のブロック符号化信号Bsb2が含まれている。そしてさらに、このブロック符号化信号Bsb2には、符号化された動きベクトルMV1を示す内容の動きベクトル符号化信号Bs1が含まれる。
【0115】
このように本実施の形態では、符号化された動きベクトルMV2を示す第2動きベクトル符号化信号Bs2を、画像符号化信号Bs2に格納しなくてもよいため、符号量を減少して符号化効率を向上することができる。
【0116】
なお、本実施の形態では、図38に示すように、前方補間予測の場合について説明したが、実施の形態1と同様、参照フレームRf1,Rf2はそれぞれ符号化対象フレームTfの前方又は後方の何れにあっても良い。
【0117】
さらに、本実施の形態では、符号化対象フレームTfを基準とした表示時間差が参照フレームRf1よりも長くなるフレームを、参照フレームRf2として選択し、参照フレームRf1に基づく第1動きベクトル候補MVC1に対してスケーリングを行ったが、符号化対象フレームTfの表示時刻よりも前にあるフレームを参照フレームRf1として選択するとともに、符号化対象フレームTfの表示時刻よりも後にあるフレームを参照フレームRf2として選択して、その参照フレームRf1に基づく第1動きベクトル候補MVC1に対してスケーリングを行っても良い。
【0118】
なお、可変長符号化部406は、動きベクトルMV1と、符号化対象ブロックの周辺にある周辺ブロックの動きベクトルから予測される予測値との差分を符号化し、その結果を示す符号化信号を動きベクトル符号化信号Bs1の代わりにブロック符号化信号Bsb2に含めても良い。この場合には符号化効率をさらに向上することができる。
【0119】
(実施の形態4)
以下、本発明の第4の実施の形態における動画像復号化装置について図面を参照しながら説明する。
【0120】
図12は、本実施の形態における動画像復号化装置400Bの構成を示すブロック図である。
本実施の形態の動画像復号化装置400Bは、実施の形態3の動画像符号化装置400Aにより符号化された動画像を復号化するものであって、可変長復号化部436と、動きベクトルスケーリング部437と、動き補償部433と、画像復号化部435と、マルチフレームバッファ431と、加算器439とを備えている。
【0121】
ここで本実施の形態における画像復号化部435と動き補償部433とマルチフレームバッファ431と加算器439とは、実施の形態2の動画像復号化装置300Bの画像復号化部335と動き補償部333とマルチフレームバッファ331と加算器339とそれぞれ同様の機能及び構成を有する。
【0122】
可変長復号化部336は、画像符号化信号Bsを取得して可変長復号を行い、残差符号化信号Erと動きベクトルMV1とを出力する。なお、動きベクトルMV1が、復号化対象ブロックの周辺にある周辺ブロックから求められた動きベクトルMV1の予測値を差し引いて符号化されているときには、可変長復号化装置336は、その符号化された差分を復号化してこれに上述の予測値を加算することで、動きベクトルMV1を生成して出力しても良い。
【0123】
動きベクトルスケーリング部437は、動画像復号化装置900の動きベクトルスケーリング部907と同様、可変長復号化部906から出力された動きベクトルMV1を取得すると、符号化対象フレームTfと参照フレームRf1との表示時間差T1、及び符号化対象フレームTfと参照フレームRf2との表示時間差T2に基づいて、動きベクトルMV1に対してスケーリングを行う。そして動きベクトルスケーリング部437は、その結果生成された動きベクトルを、参照フレームRf2に基づいて検出された動きベクトルMV2として動き補償部433に出力する。
【0124】
動き補償部433は、実施の形態2の動き補償部333と同様、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ431から取り出す。そして動き補償部433は、これらのブロックに基づいて画素値の補間処理を行って予測画像信号Preを作成してこれを出力する。
【0125】
このような本実施の形態における動画像符号化装置400Bは、動きベクトルMV1に対してスケーリングを行うことで動きベクトルMV2を導出し、動画像符号化装置400Aで符号化された画像を正確に復号することができる。
【0126】
(実施の形態5)
以下、本発明の第5の実施の形態における動画像符号化装置について図面を参照しながら説明する。
【0127】
図13は、本実施の形態における動画像符号化装置500Aの構成を示すブロック図である。
この動画像符号化装置500Aは、マルチフレームバッファ501、動き推定部502、動き補償部503、画像符号化部504、画像復号部505、可変長符号化部506、動きベクトルスケーリング部507、加算器508、減算器509,510を備え、画像信号Imgにより示されるフレームをブロックに分割し、そのブロック毎に処理を行う。
【0128】
ここで本実施の形態におけるマルチフレームバッファ501、動き補償部503、画像符号化部504、画像復号部505、可変長符号化部506、動きベクトルスケーリング部507、加算器508、減算器509,510は、従来の動画像符号化装置800におけるマルチフレームバッファ801、動き補償部803、画像符号化部804、画像復号部805、可変長符号化部806、動きベクトルスケーリング部807、加算器808、減算器809,810とそれぞれ同様の機能及び構成を有する。
【0129】
つまり、本実施の形態は、動き推定部502の動きベクトルの検出方法に特徴があり、動きベクトル符号化方法などの動作処理は動画像符号化装置800と共通する。
【0130】
図14は、本実施の形態の動き推定部502の構成を示すブロック図である。動き推定部502は、第1動きベクトル候補生成部521と、第2動きベクトル候補生成部522と、動きベクトルスケーリング部521aと、画素取得部523,524と、補間部525と、減算器526と、動きベクトル選択部527と、スイッチ528,529とを備えている。
【0131】
また、動き推定部502における第1動きベクトル候補生成部521と、動きベクトルスケーリング部521aと、画素取得部523,524と、補間部525と、減算器526とは、実施の形態3の動き推定部402における第1動きベクトル候補生成部421と、動きベクトルスケーリング部422と、画素取得部423,424と、補間部425と、減算器426とそれぞれ同様の機能及び構成を有する。
【0132】
そして第2動きベクトル候補生成部522は、符号化対象ブロックの参照フレームRf2に基づく動きベクトルMV2の候補を、所定の動きベクトル検出範囲から全て抽出し、これらをそれぞれ第2動きベクトル候補MVC2として出力する。
【0133】
実施の形態3で説明したように実施の形態3における動き推定部402は、幾つかの第1動きベクトル候補MVC1を生成するとともに、それぞれの第1動きベクトル候補MVC1に対してスケーリングを行うことで動きベクトルMVCsを生成し、最も予測誤差評価値が小さくなる第1動きベクトル候補MVC1とそれに対応する動きベクトルMVCsとを動きベクトルMV1,MV2として検出した。即ち動き推定部402は、動きベクトルMV1に対してスケーリングを行ったものを動きベクトルMV2として検出している。
【0134】
しかし、本実施の形態における動き推定部502は、実施の形態3における動き推定部402と同様の方法で動きベクトルMV1を検出するが、動きベクトルMV1に対してスケーリングを行ったものを動きベクトルMV2とすることなく、検出した動きベクトルMV1を用いて予測誤差評価値が最も小さくなる動きベクトルMV2をさらに検出する点に特徴がある。
【0135】
このような動き推定部502の具体的な動作について、図14及び図15を用いて説明する。
動き推定部502は、スイッチ528,529の接点が接点0側に切り換えられているときには、実施の形態3と同様の方法で第1動きベクトル候補MVC1及び動きベクトルMVCsの生成し、動きベクトルMV1を検出する。
【0136】
図15の(a)は、第1動きベクトル候補MVC1及び動きベクトルMVCsの生成方法を説明するための説明図である。
第1動きベクトル候補生成部521は、参照フレームRf1の動きベクトル検出範囲SRから何れかの第1動きベクトル候補MVC1を生成する。
【0137】
動きベクトルスケーリング部521aは、表示時間差T1に対する表示時間差T2の割合(T2/T1)を、上述のように生成された第1動きベクトル候補MVC1に乗じることで、第1動きベクトル候補MVC1に対するスケーリングを行い、動きベクトルMVCsを生成する。
【0138】
画素取得部523は、第1動きベクトル候補MVC1が示す参照フレームRf1中の1ブロック(画素Pt1を含むブロック)を取得して、予測ブロックPB1として補間部525に出力する。
【0139】
画素取得部524は、動きベクトル候補MVCsが示す参照フレームRf2中の1ブロック(画素Pt2を含むブロック)を取得して、予測ブロックPB2として補間部525に出力する。
【0140】
補間部525は、予測ブロックPB1,PB2のブロック内での相対位置が互いに等しい2つの画素を用いて画素値の補間を行うことで、符号化対象ブロックに対する補間予測ブロックPB0を作成し、これを減算器526に出力する。
【0141】
減算器526は、画像信号Imgに示される符号化対象ブロックと、補間予測ブロックPB0との互いに対応する画素の画素値の差分を計算し、その結果を予測誤差ブロックRB0として動きベクトル選択部527に出力する。
【0142】
動きベクトル選択部527は、減算器526から予測誤差ブロックRB0を取得すると、SADやSSDなどの予測誤差評価値を算出する。
そして、動きベクトル選択部527は、予測誤差評価値が最も小さくなる第1動きベクトル候補MVC1及び動きベクトル候補MVCsを選択し、選択した第1動きベクトル候補MVC1を、参照フレームRf1に基づく符号化対象ブロックの動きベクトルMV1として出力する。
【0143】
次に、動き推定部502は、スイッチ528,529の接点が接点0側に切り換えられると、上述のように検出した動きベクトルMV1を用いて予測誤差評価値が最も小さくなる動きベクトルMV2を検出する。
【0144】
図15の(b)は、第2動きベクトル候補MVC2の生成方法を説明するための説明図である。
第2動きベクトル候補生成部522は、動きベクトルMV1のスケーリングにより示される参照フレームRf2中の位置Cを中心とした動きベクトル検出範囲SR2から、幾つかの第2動きベクトル候補MVC2を順次生成する。
【0145】
画素取得部523は、上述のように既に検出された動きベクトルMV1が示す参照フレームRf1中の1ブロックを取得して、予測ブロックPB1として補間部525に出力する。
【0146】
画素取得部524は、第2動きベクトル候補MVC2が示す参照フレームRf2中の1ブロックを取得して、予測ブロックPB2として補間部525に出力する。
【0147】
補間部525は、上述と同様に、予測ブロックPB1,PB2のブロック内での相対位置が互いに等しい2つの画素を用いて画素値の補間を行うことで、符号化対象ブロックに対する補間予測ブロックPB0を作成し、これを減算器526に出力する。
【0148】
減算器526は、画像信号Imgに示される符号化対象ブロックと、補間予測ブロックPB0との互いに対応する画素の画素値の差分を計算し、その結果を予測誤差ブロックRB0として動きベクトル選択部527に出力する。
【0149】
動きベクトル選択部527は、減算器526から予測誤差ブロックRB0を取得すると、SADやSSDなどの予測誤差評価値を算出する。
そして、動きベクトル選択部527は、予測誤差評価値が最も小さくなる第2動きベクトル候補MVC2を選択し、選択した第2動きベクトル候補MVC2を、参照フレームRf2に基づく符号化対象ブロックの動きベクトルMV2として出力する。
【0150】
ここで、被写体の動きがフレーム間で一定であるとすれば、既に検出した動きベクトルMV1のスケーリングにより示される位置Cに近いほど、動きベクトルMV2が存在する確率が高い。
【0151】
従って、本実施の形態の動き推定部502は、動きベクトルMV2を検出するときに、位置Cを中心とした動きベクトル検出範囲SR2を設定して、その動きベクトル検出範囲SR2から第2動きベクトル候補MVC2を生成するため、動きベクトル検出範囲SR2を狭くすることができ、動きベクトルの検出効率を向上することができる。また、スパイラルサーチなどの手法を用いたときには、より高速に動きベクトルMV2を検出することができる。
【0152】
なお、本実施の形態では、動きベクトルMV1を検出した後に、その動きベクトルMV1を固定して用いて動きベクトルMV2の検出を行ったが、さらに、このように検出された動きベクトルMV2を固定して用い、動きベクトルMV1の検出をもう一度行っても良い。この場合、画素取得部524が一度検出された固定の動きベクトルMV2を取得している状態で、画素取得部523は、所定の動きベクトル検出範囲から幾つか抽出された可変の第1動きベクトル候補MVC1を第1動きベクトル候補生成部521から取得する。そして、動きベクトル選択部527は、抽出された第1動きベクトル候補MVC1の中から予測誤差評価値が最も小さくなる第1動きベクトル候補MVC1を動きベクトルMV1として検出する。これにより、さらに適切な動きベクトルを検出することができ、検出効率を向上することができる。
【0153】
またさらに、このように再度検出された動きベクトルMV1を固定して用い、動きベクトルMV2の検出をもう一度行っても良い。このような動きベクトルの検出の繰り返しは何度行っても良く、その繰り返し回数が所定の回数に達するまで、又は、予測誤差評価値の減少率が所定の値以下となるまで行っても良い。
【0154】
このように本実施の形態では、実施の形態1又は3と同様、画素値の補間処理を行った結果に基づいて予測誤差評価値を算出するため、フェードが生じる場合であってもその影響による予測誤差評価値の増加を防止して、最適な動きベクトルを検出することができる。また、本実施の形態では、実施の形態3と異なり、各参照フレーム毎にそれぞれ独立した動きベクトルを使用するため、フレーム間で動きが一定でない場合でも予測効率を向上することができる。
【0155】
(変形例)
次に、上記本実施の形態における動画像符号化装置500Aの変形例について説明する。
【0156】
図16は、本実施の形態の変形例に係る動画像符号化装置550Aの構成を示すブロック図である。
この変形例に係る動画像符号化装置550Aは、動画像符号化装置500Aの動き推定部502や動き補償部503などの他、減算器510から出力される差分ベクトルMVdに応じて「1」又は「2」を示すコードNuを生成するコード生成部512と、減算器510と可変長符号化部506aとの間を開閉するスイッチ511とを備えている。
【0157】
コード生成部512は、減算器510から差分ベクトルMVdを取得すると、その差分ベクトルMVdが「0」か否かを判別し、「0」であれば、スイッチ511を開くことで可変長符号化部506aが差分ベクトルMVdを取得するのを禁止し、「1」を示すコードNuを生成して可変長符号化部506aに出力する。また、差分ベクトルMVdが「0」でなければ、コード生成部512は、スイッチ511を閉じることで可変長符号化部506aに差分ベクトルMVdを取得させ、「2」を示すコードNuを生成して可変長符号化部506aに出力する。
【0158】
そしてこの変形例に係る可変長符号化部506aは、コードNuが「1」を示すときには、残差符号化信号Erと動きベクトルMV1とコードNuとを可変長符号化し、コードNuが「2」を示すときには、残差符号化信号Erと動きベクトルMV1と差分ベクトルMVdとコードNuとを可変長符号化する。つまり、可変長符号化部506aは、コードNuが「1」のとき、即ち差分ベクトルMVdが「0」のときには差分ベクトルMVdの符号化を行わない。そして可変長符号化部506aは、上述のように可変長符号化した結果を、画像符号化信号Bs3として出力する。
【0159】
図17は、画像符号化信号Bs3のフォーマットの概念を示す概念図である。
画像符号化信号Bs3には、符号化されたフレームを示す内容のフレーム符号化信号Bsf3が含まれ、さらにこのフレーム符号化信号Bsf3には符号化されたブロックを示す内容のブロック符号化信号Bsb3,Bsb4が含まれている。そしてさらに、このブロック符号化信号Bsb3には、符号化されたコードNu(2)を示す内容のコード信号Bsn2と、符号化された動きベクトルMV1を示す内容の第1動きベクトル符号化信号Bs1と、符号化された差分ベクトルMVdを示す内容の差分ベクトル符号化信号Bsdとが含まれる。また、ブロック符号化信号Bsb4には、符号化されたコードNu(1)を示す内容のコード信号Bsn1と、符号化された動きベクトルMV1を示す内容の第1動きベクトル符号化信号Bs1とが含まれる。
【0160】
つまり、ブロック符号化信号Bsb3で示されるブロックに対しては差分ベクトルMVdが「0」ではないので、ブロック符号化信号Bsb3には、第1動きベクトル符号化信号BS1以外にコード信号Bsn2と差分ベクトル符号化信号Bsdが含まれ、ブロック符号化信号Bsb4で示されるブロックに対しては差分ベクトルMVdが「0」なので、ブロック符号化信号Bsb4には、第1動きベクトル符号化信号BS1以外にはコード信号Bsn1しか含まれない。
【0161】
ここで、コードNuは「1」又は「2」を示すため、コードNuに対する情報量は1ビットあれば十分である。一方、差分ベクトルMVdに対する情報量は、差分ベクトルMVdを横方向成分及び縦方向成分に独立して可変長符号化するような場合には、少なくとも2ビットは必要である。また、多くの場合において、短い時間では画像内の被写体の動きは一定であるため、殆どの符号化対象ブロックに対する差分ベクトルMVdは「0」となる。
【0162】
従って、本変形例では、画像符号化信号Bs3には、差分ベクトル符号化信号Bsdを省略して情報量を少なくしたブロック符号化信号Bsb4が多く含まれるために、符号化効率を向上することができる。
【0163】
また、殆どの符号化対象ブロックに対する差分ベクトルMVdが「0」となると、コードNuにより示される値の出現頻度に偏りが生じて、そのコードNuに対する情報量は1ビットよりも小さくなる。従って、ハフマン符号などの整数ビット単位の可変長符号化方法で動きベクトルの符号化を行う場合には、コードNuを他の種類のコードと組み合わせて符号化することで、上述のように単独でコードNuを符号化するよりも符号化効率を向上することができる。
【0164】
なお、本実施の形態では、コード信号Bsn1,Bsn2をブロック符号化信号ごとに格納したが、ブロック符号化信号ごとではなく、例えば、MPEGのマクロブロックやスライスなどのように、ブロックより大きな単位で画像が符号化された内容を示す信号毎に、コード信号Bsn1,Bsn2を格納するようにしてもよい。これにより、コード信号Bsn1,Bsn2を減らすことができ、より符号化効率を改善することができる。
【0165】
以上のように本変形例によれば、画像符号化信号Bs3にコード信号Bsn1の情報を格納して差分ベクトル符号化信号Bsdを省くことで、情報量を削減することができ、符号化効率を向上することができる。
【0166】
(実施の形態6)
以下、本発明の第6の実施の形態における動画像復号化装置について図面を参照しながら説明する。
【0167】
図18は、本実施の形態における動画像復号化装置550Bの構成を示すブロック図である。
本実施の形態の動画像復号化装置550Bは、実施の形態5の変形例に係る動画像符号化装置550Aにより符号化された動画像を復号化するものであって、可変長復号化部536と、動きベクトルスケーリング部537と、動き補償部533と、画像復号化部535と、マルチフレームバッファ531と、加算器539,540と、スイッチ541とを備えている。
【0168】
ここで本実施の形態における画像復号化部535と動き補償部533とマルチフレームバッファ531と加算器539,540とは、従来例に示す動画像復号化装置900における画像復号化部905と動き補償部903とマルチフレームバッファ901と加算器909,910とそれぞれ同様の機能及び構成を有するため説明を省略する。
【0169】
本実施の形態における可変長復号化部536は、画像符号化信号Bs3を取得して可変長復号を行い、コードNuが「1」を示しているときには、そのコードNuと残差符号化信号Erと動きベクトルMV1とを出力し、コードNuが「2」を示しているときには、そのコードNuと残差符号化信号Erと動きベクトルMV1と差分ベクトルMVdとを出力する。
【0170】
スイッチ541は、可変長復号化部536と加算器540との間を、可変長復号化部536からのコードNuに応じて開閉する。即ち、コードNuが「1」を示すときにはスイッチ541は開いて、可変長復号化部536から加算器540に差分ベクトルMVdが出力されるのを禁止し、コードNuが「2」を示すときにはスイッチ541は閉じて、可変長復号化部536から加算器540への差分ベクトルMVdの出力を許可する。
【0171】
その結果、スイッチ541が開いたときには、加算器40は、動きベクトルスケーリング部537で生成された動きベクトルMVsのみを取得するので、その動きベクトルMVsを動きベクトルMV2として動き補償部533に出力する。また、スイッチ541が閉じたときには、加算器40は、動きベクトルスケーリング部537で生成された動きベクトルMVsと、可変長復号化部536から出力される差分ベクトルMVdとを取得するので、その動きベクトルMVsに差分ベクトルMVdを加算して、その加算結果を動きベクトルMV2として動き補償部533に出力する。
【0172】
これにより、本実施の形態では、画像復号化信号Bs3に差分ベクトルMVdを含む情報が含まれていれば、その差分ベクトルMVdに、スケーリング処理された動きベクトルMVsを加算することで、動きベクトルMV2が生成され、画像復号化信号Bs3に差分ベクトルMVdを含む情報が含まれていなければ、スケーリング処理された動きベクトルMVsを動きベクトルMV2とすることで、動きベクトルMV2が生成される。
【0173】
従って本実施の形態によれば、実施の形態5の変形例に係る動画像符号化装置550Aで符号化された動きベクトルに関する情報を正しく復号化し、その結果、動画像を正確に復号化することができる。
【0174】
(実施の形態7)
ところで、従来例で示した動画像符号化装置800の動きベクトル符号化方法では、動きベクトルMV1に対してスケーリングを行うが、スケーリングを行うために必要な表示時間差T1,T2に関する情報がマルチフレームバッファ801から取得できない場合があり、このような場合には動きベクトルを符号化できないといった問題がある。また、マルチフレームバッファ801から表示時間差T1,T2に関する情報を取得できたとしても、表示時間差T1,T2のうちの少なくとも一方が非常に大きいときには、スケーリングを行うことに意味を成さず、動きベクトルの符号化効率が低下してしまうといった問題がある。
【0175】
つまり、マルチフレームバッファ800には短時間メモリと長時間メモリの2種類の領域が確保されており、長時間メモリには、表示時間に関する情報が省かれた状態でフレームが記録されている場合があり、このようなフレームが参照フレームとして読み出されたときには、スケーリングを行うことができない。また、長時間メモリには、符号化対象フレームと表示時間差が非常に大きいフレームが記録されている場合があり、このようなフレームが参照フレームとして読み出されたときには、意味を成さないスケーリングが行われてしまうのである。
【0176】
そこで、本発明の第7の実施の形態における動画像符号化装置は、意味を成さないスケーリングを避けて動きベクトルを符号化効率が高まるように符号化する点に特徴がある。
【0177】
以下、本発明の第7の実施の形態における動画像符号化装置について図面を参照しながら説明する。
図19は、本実施の形態における動画像符号化装置100の構成を示すブロック図である。
【0178】
本実施の形態の動画像符号化装置100は、マルチフレームバッファ101と、動き推定部102と、動き補償部103と、画像符号化部104と、画像復号部105と、可変長符号化部106と、動きベクトルスケーリング部107と、加算器108及び減算器109,110と、スイッチ111,112,113と、判定部114とを備える。
【0179】
この動画像符号化装置100は、画像信号Imgにより示される符号化対象フレームTfの各ブロックを符号化するときには、2枚の参照フレームRf1,Rf2を参照して、これらの参照フレームRf1,Rf2に対する符号化対象ブロックの動きベクトルMV1,MV2に関する情報と、参照フレームRf1,Rf2及び動きベクトルMV1,MV2から予測される予測画像に基づく情報とを符号化する。
【0180】
ここで、本実施の形態においても実施の形態1と同様、参照フレームRf1,Rf2はそれぞれ、符号化対象フレームTfに対して時間的に前方にあっても後方にあっても良い。
【0181】
図2中の(a)に示すように、動画像符号化装置100は、符号化対象フレームTfの前方に位置するフレームを参照フレームRf1,Rf2として参照しても良く、図2中の(b)に示すように、符号化対象フレームTfの後方に位置するフレームを参照フレームRf1,Rf2として参照しても良く、さらに、図2中の(c)に示すように、符号化対象フレームTfの前方に位置する1つのフレームを参照フレームRf2として参照し、符号化対象フレームTfの後方に位置する1つのフレームを参照フレームRf1として参照しても良い。
【0182】
スイッチ111,112は、符号化対象ブロック毎に、参照される2つのフレーム(参照フレームRf1,Rf2)に応じて、その接点0,1を切り換える。例えば、参照フレームRf1が参照されるときには、スイッチ111,112は、それぞれ接点0を動き推定部102に接続し、参照フレームRf2が参照されるときには、スイッチ111,112は、それぞれ接点1を動き推定部102に接続する。
【0183】
動き推定部102は、マルチフレームバッファ101から読み出された参照フレームRf1,Rf2のそれぞれに基づいて、画像信号Imgにより示される符号化対象フレームTf中のブロックに対する動きベクトルMV1,MV2を、実施の形態1の動き推定部302、又は実施の形態3の動き推定部402、又は実施の形態5の動き推定部502と同様の方法で検出する。
【0184】
動き補償部103は、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ101から取り出す。そして動き補償部103は、これらのブロックに基づいて画素の補間処理を行って予測画像信号Preを作成しこれを出力する。
【0185】
減算器109は、画像信号Imgから予測画像信号Preを減算して残差信号Resを出力する。
画像符号化部104は、残差信号Resを取得してDCT変換・量子化などの画像符号化処理を行い、量子化済DCT係数などを含む残差符号化信号Erを出力する。
【0186】
画像復号部105は、残差符号化信号Erを取得して、逆量子化・逆DCT変換などの画像復号処理を行い、残差復号信号Drを出力する。
加算器108は、残差復号信号Drと予測画像信号Preを加算して再構成画像信号Rcを出力する。
【0187】
マルチフレームバッファ101は、再構成画像信号Rcのうち、フレーム間予測で参照される可能性がある信号を格納する。
図20は、マルチフレームバッファ101における上記信号を格納するメモリの概略構成を示す構成図である。
【0188】
マルチフレームバッファ101には、図20に示すように、短時間メモリ101sと長時間メモリ101lとが確保され、再構成画像信号Rcにより示されるフレームは短時間メモリ101sと長時間メモリ101lとに適宜分別して保存される。
【0189】
短時間メモリ101sは、先入れ先出し方式(FIFO)のメモリであり、新規の信号が短時間メモリ101sに記録されると、記録された時刻が古い順から記録内容が破棄され、短時間メモリ101sには常に最新の一定フレーム数の画像が保存される。また、この短時間メモリ101sに、再構成画像信号Rcの示すフレームが記録されるときには、そのフレームの表示時刻に関する情報と共に記録される。
【0190】
長時間メモリ101lは、ランダムアクセス方式のメモリであり、任意の領域にフレームを格納したり、任意の領域に格納されたフレームの読み出しが可能な構成を有する。この長時間メモリ101lは、背景画像や、シーン挿入前の画像など、主に長時間に渡って参照される画像を保存し、短時間メモリ101sよりも長い時間分のフレームを保存する。また、長時間メモリ101lへのフレームの保存は、短時間メモリ101sに保存されたものが長時間メモリ101lに移動するという形式で行われる。
【0191】
さらに、この長時間メモリ101lに、再構成画像信号Rcの示すフレームが記録されるときには、そのフレームの表示時刻に関する情報と共に記録されたり、その時刻に関する情報が省かれた状態で記録されたりする。
【0192】
また本実施の形態のマルチフレームバッファ101は通知部115を備えており、この通知部115は、スイッチ111を介して動き推定部102によって読み出される参照フレームRf1,Rf2が短時間メモリ101sから読み出されたものか、長時間メモリ101lから読み出されたものかを通知する内容の通知信号Infを出力する。
【0193】
図21は、マルチフレームバッファ101に保存されたフレームの状態を示す状態図である。
短時間メモリ101sには、時間の経過ととともに、フレームfs1、フレームfs2、フレームfs3…が順に保存され、長時間メモリ101lには、短時間メモリ101sに保存されたフレームのうち、後に参照される可能性のあるフレームfl1とフレームfl2が順に保存されている。
【0194】
ここでマルチフレームバッファ101から、図21中の(a)に示すように、短時間メモリ101sに保存されているフレームfs2が参照フレームRf1として読み出されると、マルチフレームバッファ101の通知部115は、短時間メモリ101sからフレームが読み出されたことを知らせる内容の通知信号Infを出力する。また、マルチフレームバッファ101から、長時間メモリ101lに保存されているフレームfl2が参照フレームRf2として読み出されると、マルチフレームバッファ101の通知部115は、長時間メモリ101lからフレームが読み出されたことを知らせる内容の通知信号Infを出力する。
【0195】
これと同様、図21の(b)に示すように、マルチフレームバッファ101から、長時間メモリ101lに保存されているフレームfl1,fl2がそれぞれ参照フレームRf1,Rf2として読み出されると、マルチフレームバッファ101の通知部115は、フレームfl1,fl2が読み出されるごとに、長時間メモリ101lからフレームが読み出されたことを知らせる内容の通知信号Infを出力する。
【0196】
判定部114は、通知部115からの通知信号Infを取得して、符号化対象ブロックごとに参照される参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたものか否かを判定する。そして、判定部114は、その判定結果に基づいてスイッチ113の接点の切り換えを指示する切換信号si1を出力する。
【0197】
スイッチ113は、上述の切換信号si1に応じて接点を切り換えることで、動き推定部102の動きベクトルMV1の出力先を、動きベクトルスケーリング部107と減算器110とに切り換える。
【0198】
即ち上述の判定部114は、参照フレームRf1,Rf2が短時間メモリ101sから読み出されたものであると判定したときには、スイッチ113の出力先が動きベクトルスケーリング部107になるように指示する切換信号si1を出力し、参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたものであると判定したときには、スイッチ113の出力先が減算器110になるように指示する切換信号si1を出力する。
【0199】
動きベクトルスケーリング部107は、図35を参照して説明した動作と同様、符号化対象フレームTfと参照フレームRf1との表示時間差T1、及び符号化対象フレームTfと参照フレームRf2との表示時間差T2に基づいて、動きベクトルMV1をスケーリングし、その結果生成された動きベクトルMVsを出力する。
【0200】
減算器110は、スイッチ113の出力先が動きベクトルスケーリング部107に設定されているときには、動き推定部102から取得された動きベクトルMV2と、動きベクトルスケーリング部107から取得された動きベクトルMVsとの差分を求め、その結果を示す差分ベクトルMVdを出力する。
【0201】
また、減算器110は、自らがスイッチ113の出力先として設定されているときには、動きベクトルスケーリング部107からの動きベクトルMVsの代わりに、動き推定部102からスイッチ113を介して取得された動きベクトルMV1を用い、動きベクトルMV2と動きベクトルMV1との差分を求めて、その差分結果を差分ベクトルMVdとして出力する。
【0202】
図22は、差分ベクトルMVdの作成される様子を説明するための説明図である。
この図22に示すように、減算器110は、動きベクトルMVsの代わりに動きベクトルMV1を取得したときには、動きベクトルMV2と動きベクトルMV1との差分を求めて差分ベクトルMVdを作成する。
【0203】
可変長符号化部106は、この差分ベクトルMVdと動きベクトルMV1と残差符号化信号Erとを可変長符号化し、これらの符号化された結果を画像符号化信号Bsとして出力する。
【0204】
このような本実施の形態における動画像符号化装置100の動きベクトルの符号化の一連の動作について、図23を参照して説明する。
図23は、動きベクトルの符号化の一連の動作を示すフロー図である。
【0205】
まず、動画像符号化装置100の判定部114は、通知信号Infに基づいて参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたか否かを判定する(ステップS101)。
【0206】
そして、判定部114は、参照フレームRf1,Rf2の2つのフレームが短時間メモリ101sから読み出されたと判定したときには(ステップS101のN)、スイッチ113の出力先が動きベクトルスケーリング部107となるようにスイッチ113の接点を切り換えさせる。その結果、動きベクトルスケーリング部107は、動きベクトルMV1を取得してこれをスケーリングすることで動きベクトルMVsを作成する(ステップS102)。そして、減算器110は、その作成された動きベクトルMVsを取得する。
【0207】
一方、判定部114は、参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたと判定したときには(ステップS101のY)、スイッチ113の出力先が減算器110となるようにスイッチ113の接点を切り換えさせる。その結果、減算器110は、スイッチ113を介して動き推定部102から取得された動きベクトルMV1を、動きベクトルスケーリング部107から出力された動きベクトルMVsとして扱う(ステップS103)。
【0208】
次に、減算器110は、動きベクトルMV2と、上述の動きベクトルMVsとの差分を求め、その差分結果を示す差分ベクトルMVdを可変長符号化部106に出力する(ステップS104)。
【0209】
そして、可変長符号化部106は、動き推定部102から取得された動きベクトルMV1を可変長符号化し(ステップS105)、減算器110から取得された差分ベクトルMVdを可変長符号化する(ステップS106)。
【0210】
このように本実施の形態では、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたときには、動きベクトルスケーリング部107にスケーリングさせないため、フレームの表示時間に関する情報が長時間メモリ101lに記録されている場合であっても、その情報を利用した意味を成さないスケーリングの実行を省き、動きベクトルの符号化効率の向上を図ることができる。また、フレームの表示時間に関する情報が長時間メモリ101lに記録されていない場合には、無理なスケーリングの実行を省き、動きベクトルの符号化効率の向上を図ることができる。
【0211】
なお、本実施の形態では、スイッチ113の切り換えにより動きベクトルスケーリング部107に対してスケーリングを行わせたり、スケーリングを行わせないようにしたが、スイッチ113を備えずに図33に示すような構成として、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたときには、常に動きベクトルスケーリング部107にスケーリングを行わないようにさせても良い。
【0212】
また、本実施の形態では、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ101lから読み出されたときには、動きベクトルMV1と差分ベクトルMVdを符号化したが、差分ベクトルMVdを求めずに動きベクトルMV1と動きベクトルMV2を符号化しても良い。これは、2つの参照フレームRf1,Rf2のうち少なくとも1つが長時間メモリ101lから読み出された場合には差分ベクトルMVdを符号化するのではなく、動きベクトルMV2を符号化することを意味する。この場合にはさらに、符号化対象ブロックの周辺にある周辺ブロックから動きベクトルMV1,MV2の予測値を求めて動きベクトルMV1,MV2のそれぞれとの予測値の差分を計算し、その差分を符号化しても良い。
【0213】
また、本実施の形態では、通知部115をマルチフレームバッファ101に備えたが、マルチフレームバッファ101以外の他の構成要素に備えても良く、通知部115を単独で備えても良い。
【0214】
(実施の形態8)
以下、本発明の第8の実施の形態における動画像復号化装置について図面を参照しながら説明する。
【0215】
図24は、本実施の形態における動画像復号化装置200の構成を示すブロック図である。
本実施の形態の動画像復号化装置200は、実施の形態7の動画像符号化装置100により符号化された動画像を復号化するものであって、可変長復号化部206と、動きベクトルスケーリング部207と、動き補償部203と、画像復号化部204と、マルチフレームバッファ201と、判定部214と、加算器209,210と、スイッチ213とを備えている。
【0216】
可変長復号化部206は、画像符号化信号Bsを取得して可変長復号を行い、残差符号化信号Erと、動きベクトルMV1と、差分ベクトルMVdとを出力する。
【0217】
画像復号化部204は、残差符号化信号Erを取得して、逆量子化や逆DCT変換などの画像復号処理を行い、残差復号信号Drを出力する。
動き補償部203は、実施の形態1の動き補償部103と同様、参照フレームRf1における動きベクトルMV1により指し示される位置のブロックと、参照フレームRf2における動きベクトルMV2により指し示される位置のブロックとを、マルチフレームバッファ201から取り出す。そして動き補償部203は、これらのブロックに基づいて画素の補間処理を行って予測画像信号Preを作成しこれを出力する。
【0218】
加算器209は、動き補償部203からの予測画像信号Preと、画像復号化部204からの残差復号信号Drとを加算し、その結果を復号画像信号Diとして出力する。
【0219】
動きベクトルスケーリング部207は、実施の形態7の動きベクトルスケーリング部107と同様、可変長復号化部206から出力された動きベクトルMV1を取得すると、符号化対象フレームTfと参照フレームRf1との表示時間差T1、及び符号化対象フレームTfと参照フレームRf2との表示時間差T2に基づいて、動きベクトルMV1に対してスケーリングを行い、その結果生成された動きベクトルMVsを出力する。
【0220】
マルチフレームバッファ201は、復号画像信号Diのうち、フレーム間予測で参照される可能性がある信号を格納する。また、このマルチフレームバッファ201には、実施の形態7のマルチフレームバッファ101の短時間メモリ101s及び長時間メモリ101lと同様の機能及び構成を有する、短時間メモリ201sと長時間メモリ201lとが確保されている。つまり、復号画像信号Diが示すフレームは短時間メモリ201sと長時間メモリ201lとに適宜分別して保存される。
【0221】
さらに、このマルチフレームバッファ201は、実施の形態7のマルチバッファフレーム101の通知部115と同様の機能及び構成を有する通知部215を備えている。即ち、この通知部215は、動き補償部203によって読み出される参照フレームRf1,Rf2が短時間メモリ201sから読み出されたものか、長時間メモリ201lから読み出されたものかを通知する内容の通知信号Infを出力する。
【0222】
判定部214は、実施の形態7の判定部114と同様の機能及び構成を有し、通知部215からの通知信号Infを取得して、符号化対象ブロックごとに参照される参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたものか否かを判定する。そして、判定部214は、その判定結果に基づいてスイッチ213の接点の切り換えを指示する切換信号si1を出力する。
【0223】
スイッチ213は、上述の切換信号si1に応じて接点を切り換えることで、可変長復号化部206から取得された動きベクトルMV1の出力先を、動きベクトルスケーリング部207と加算器210とに切り換える。
【0224】
即ち上述の判定部214は、参照フレームRf1,Rf2が短時間メモリ201sから読み出されたものであると判定したときには、スイッチ213の出力先が動きベクトルスケーリング部207になるように指示する切換信号si1を出力し、参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたものであると判定したときには、スイッチ213の出力先が加算器210になるように指示する切換信号si1を出力する。
【0225】
加算器210は、スイッチ213の出力先が動きベクトルスケーリング部207に設定されているときには、可変長復号化部206から取得された動きベクトルMVdと、動きベクトルスケーリング部207から取得された動きベクトルMVsとを加算し、その結果を示す動きベクトルMV2を動き補償部203に対して出力する。
【0226】
また、加算器210は、自らがスイッチ213の出力先として設定されているときには、動きベクトルスケーリング部207からの動きベクトルMVsの代わりに、可変長復号化部206からスイッチ213を介して取得された動きベクトルMV1を用い、動きベクトルMVdと動きベクトルMV1とを加算し、その結果を動きベクトルMV2として動き補償部203に対して出力する。
【0227】
このような本実施の形態における動画像復号化装置200の動きベクトルの復号化の一連の動作について、図25を参照して説明する。
図25は、動きベクトルの復号化の一連の動作を示すフロー図である。
【0228】
まず、動画像復号化装置200の可変長復号化部206は、画像符号化信号Bsを取得して可変長復号することで、動きベクトルMV1を復号化するとともに(ステップS201)、差分ベクトルMVdを復号化する(ステップS202)。
【0229】
次に、判定部214は、通知信号Infに基づいて参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたか否かを判別する(ステップS203)。
【0230】
そして、判定部214は、参照フレームRf1,Rf2の2つのフレームが短時間メモリ201sから読み出されたと判定したときには(ステップS203のN)、スイッチ213の出力先が動きベクトルスケーリング部207となるようにスイッチ213の接点を切り換えさせる。その結果、動きベクトルスケーリング部207は、動きベクトルMV1を取得してこれに対してスケーリングを行うことで動きベクトルMVsを作成する(ステップS204)。そして、加算器210は、その作成された動きベクトルMVsを取得する。
【0231】
一方、判定部214は、参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたと判定したときには(ステップS203のY)、スイッチ213の出力先が加算器210となるようにスイッチ213の接点を切り換えさせる。その結果、加算器210は、スイッチ213を介して可変長復号化部206から取得された動きベクトルMV1を、動きベクトルスケーリング部107から出力された動きベクトルMVsとして扱う(ステップS205)。
【0232】
そして、加算器210は、差分ベクトルMVdに動きベクトルMVsを加算し、その加算結果を示す動きベクトルMV2を動き補償部203に出力する(ステップS206)。
【0233】
このように本実施の形態では、実施の形態7と同様、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたときには、動きベクトルスケーリング部207にスケーリングをさせないため、フレームの表示時間に関する情報が長時間メモリ201lに記録されている場合であっても、その情報を利用した意味を持たないスケーリングの実行を省き、動きベクトルの復号化効率の向上を図ることができる。また、フレームの表示時間に関する情報が長時間メモリ201lに記録されていない場合には、無理なスケーリングの実行を省き、動きベクトルの復号化効率の向上を図ることができる。
【0234】
なお、本実施の形態では、スイッチ213の切り換えにより動きベクトルスケーリング部207に対してスケーリングを行わせたり、スケーリングを行わせないようにしたが、スイッチ213を備えずに、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたときには、常に動きベクトルスケーリング部207にスケーリングを行わせないようにしても良い。
【0235】
また、本実施の形態では、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出されたときには、動きベクトルMV1に差分ベクトルMVdを加算して動きベクトルMV2を導出したが、加算せずに動きベクトルMV2を直接復号化しても良い。これは、2つの参照フレームRf1,Rf2のうちの少なくとも1つが長時間メモリ201lから読み出された場合には差分ベクトルMVdを復号化するのではなく、動きベクトルMV2を復号化することを意味する。この場合にはさらに、動きベクトルMV1,MV2のそれぞれが、復号化対象ブロックの周辺にある周辺ブロックから求められた動きベクトルMV1,MV2の予測値を差し引いて符号化されているときには、その符号化された動きベクトルMV1,MV2と上述の予測値を加算して、動きベクトルMV1,MV2を復号化しても良い。
【0236】
また、本実施の形態では、通知部215をマルチフレームバッファ201に備えたが、マルチフレームバッファ201以外の他の構成要素に備えても良く、通知部215を単独で備えても良い。
【0237】
なお、実施の形態1〜8で説明したフレームは、フィールドであっても良い。また、フレームとフィールドを総称してピクチャと呼ぶ。
以上のように、本発明に係る動きベクトル検出方法と、この方法を用いた動きベクトル符号化方法と、動きベクトル復号化方法と、これらの方法を用いた装置について実施の形態1〜8を用いて説明したが、本発明は実施の形態1〜8に限定されるものではなく、他の形態によっても実現されるのは言うまでもない。
【0238】
(実施の形態9)
さらに、上記各実施の形態で示した動きベクトル検出方法及び動きベクトル符号化方法並びに動きベクトル復号化方法を実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【0239】
図26は、実施の形態1〜8の動きベクトル検出方法及び動きベクトル符号化方法並びに動きベクトル復号化方法をコンピュータシステムにより実現するためのプログラムを格納する記憶媒体についての説明図である。
【0240】
図26中の(b)は、フレキシブルディスクFDの正面からみた外観、断面構造、及びディスク本体FD1を示し、図26中の(a)は、記録媒体の本体であるディスク本体FD1の物理フォーマットの例を示している。
【0241】
ディスク本体FD1はケースF内に内蔵され、ディスク本体FD1の表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクFDでは、上記ディスク本体FD1上に割り当てられた領域に、上記プログラムとしての動きベクトル符号化方法や動きベクトル復号化方法が記録されている。
【0242】
また、図26中の(c)は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。
上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsが上記プログラムとしての動きベクトル符号化方法または動きベクトル復号化方法をフレキシブルディスクドライブFDDを介して書き込む。また、フレキシブルディスクFD内のプログラムにより上記動きベクトル符号化方法又は動きベクトル復号化方法をコンピュータシステムCs中に構築する場合は、フレキシブルディスクドライブFDDによりプログラムがフレキシブルディスクFDから読み出され、コンピュータシステムCsに転送される。
【0243】
なお、上記説明では、記録媒体としてフレキシブルディスクFDを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
【0244】
(実施の形態10)
さらにここで、上記実施の形態で示した動きベクトル検出方法及び動きベクトル符号化方法並びに動きベクトル復号化方法の応用例とそれを用いたシステムを説明する。
【0245】
図27は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
【0246】
このコンテンツ供給システムex100は、例えば、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex107〜ex110を介して、コンピュータex111、PDA(personal digital assistant)ex112、カメラex113、携帯電話ex114、カメラ付きの携帯電話ex115などの各機器が接続される。
【0247】
しかし、コンテンツ供給システムex100は図27のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex107〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。
【0248】
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、PDC(Personal Digital Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、若しくはGSM(Global System for Mobile Communications)方式の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
【0249】
また、ストリーミングサーバex103は、カメラex113から基地局ex109、電話網ex104を通じて接続されており、カメラex113を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex116で撮影した動画データはコンピュータex111を介してストリーミングサーバex103に送信されてもよい。カメラex116はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex116で行ってもコンピュータex111で行ってもどちらでもよい。また、符号化処理はコンピュータex111やカメラex116が有するLSIex117において処理することになる。なお、画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込んでもよい。さらに、カメラ付きの携帯電話ex115で動画データを送信してもよい。このときの動画データは携帯電話ex115が有するLSIで符号化処理されたデータである。
【0250】
このコンテンツ供給システムex100では、ユーザがカメラex113、カメラex116等で撮影しているコンテンツ(例えば、音楽ライブを撮影した映像等)を上記実施の形態同様に符号化処理してストリーミングサーバex103に送信する一方で、ストリーミングサーバex103は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等がある。このようにすることでコンテンツ供給システムex100は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【0251】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した動画像符号化装置あるいは動画像復号化装置を用いるようにすればよい。
その一例として携帯電話について説明する。
【0252】
図28は、上記実施の形態で説明した動きベクトル検出方法及び動きベクトル符号化方法と動きベクトル復号化方法を用いた携帯電話ex115を示す図である。携帯電話ex115は、基地局ex110との間で電波を送受信するためのアンテナex201、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex203、カメラ部ex203で撮影した映像、アンテナex201で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex202、操作キーex204群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex208、音声入力をするためのマイク等の音声入力部ex205、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex207、携帯電話ex115に記録メディアex207を装着可能とするためのスロット部ex206を有している。記録メディアex207はSDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものである。
【0253】
さらに、携帯電話ex115について図29を用いて説明する。携帯電話ex115は表示部ex202及び操作キーex204を備えた本体部の各部を統括的に制御するようになされた主制御部ex311に対して、電源回路部ex310、操作入力制御部ex304、画像符号化部ex312、カメラインターフェース部ex303、LCD(Liquid Crystal Display)制御部ex302、画像復号化部ex309、多重分離部ex308、記録再生部ex307、変復調回路部ex306及び音声処理部ex305が同期バスex313を介して互いに接続されている。
【0254】
電源回路部ex310は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex115を動作可能な状態に起動する。
【0255】
携帯電話ex115は、CPU、ROM及びRAM等でなる主制御部ex311の制御に基づいて、音声通話モード時に音声入力部ex205で集音した音声信号を音声処理部ex305によってディジタル音声データに変換し、これを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。また携帯電話機ex115は、音声通話モード時にアンテナex201で受信した受信データを増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex306でスペクトラム逆拡散処理し、音声処理部ex305によってアナログ音声データに変換した後、これを音声出力部ex208を介して出力する。
【0256】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex204の操作によって入力された電子メールのテキストデータは操作入力制御部ex304を介して主制御部ex311に送出される。主制御部ex311は、テキストデータを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して基地局ex110へ送信する。
【0257】
データ通信モード時に画像データを送信する場合、カメラ部ex203で撮像された画像データをカメラインターフェース部ex303を介して画像符号化部ex312に供給する。また、画像データを送信しない場合には、カメラ部ex203で撮像した画像データをカメラインターフェース部ex303及びLCD制御部ex302を介して表示部ex202に直接表示することも可能である。
【0258】
画像符号化部ex312は、本願発明で説明した画像符号化装置を備えた構成であり、カメラ部ex203から供給された画像データを上記実施の形態で示した画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex308に送出する。また、このとき同時に携帯電話機ex115は、カメラ部ex203で撮像中に音声入力部ex205で集音した音声を音声処理部ex305を介してディジタルの音声データとして多重分離部ex308に送出する。
【0259】
多重分離部ex308は、画像符号化部ex312から供給された符号化画像データと音声処理部ex305から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。
【0260】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex201を介して基地局ex110から受信した受信データを変復調回路部ex306でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex308に送出する。
【0261】
また、アンテナex201を介して受信された多重化データを復号化するには、多重分離部ex308は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex313を介して当該符号化画像データを画像復号化部ex309に供給すると共に当該音声データを音声処理部ex305に供給する。
【0262】
次に、画像復号化部ex309は、本願発明で説明した画像復号化装置を備えた構成であり、画像データのビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをLCD制御部ex302を介して表示部ex202に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex305は、音声データをアナログ音声データに変換した後、これを音声出力部ex208に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【0263】
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図30に示すようにディジタル放送用システムにも上記実施の形態の少なくとも画像符号化装置または画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex409では映像情報のビットストリームが電波を介して通信または放送衛星ex410に伝送される。これを受けた放送衛星ex410は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex406で受信し、テレビ(受信機)ex401またはセットトップボックス(STB)ex407などの装置によりビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex402に記録したビットストリームを読み取り、復号化する再生装置ex403にも上記実施の形態で示した画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex404に表示される。また、ケーブルテレビ用のケーブルex405または衛星/地上波放送のアンテナex406に接続されたセットトップボックスex407内に画像復号化装置を実装し、これをテレビのモニタex408で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでも良い。また、アンテナex411を有する車ex412で衛星ex410からまたは基地局ex107等から信号を受信し、車ex412が有するカーナビゲーションex413等の表示装置に動画を再生することも可能である。
【0264】
更に、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex421に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex420がある。更にSDカードex422に記録することもできる。レコーダex420が上記実施の形態で示した画像復号化装置を備えていれば、DVDディスクex421やSDカードex422に記録した画像信号を再生し、モニタex408で表示することができる。
【0265】
なお、カーナビゲーションex413の構成は例えば図29に示す構成のうち、カメラ部ex203とカメラインターフェース部ex303、画像符号化部ex312を除いた構成が考えられ、同様なことがコンピュータex111やテレビ(受信機)ex401等でも考えられる。
【0266】
また、上記携帯電話ex114等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
【0267】
このように、上記実施の形態で示した動きベクトル検出方法、符号化方法、復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【0268】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【0269】
【発明の効果】
以上の説明から明らかなように、本発明に係る動きベクトル検出方法によれば、動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを検出する動きベクトル検出方法であって、前記検出対象ブロックの第1の参照ピクチャに基づく第1の動きベクトル候補を生成する第1の候補生成ステップと、前記検出対象ブロックの第2の参照ピクチャに基づく第2の動きベクトル候補を生成する第2の候補生成ステップと、前記第1の参照ピクチャにおける第1の動きベクトル候補が示す第1の予測用ブロックと、前記第2の参照ピクチャにおける第2の動きベクトル候補が示す第2の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで補間予測ブロックを作成する補間ステップと、前記補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する算出ステップと、前記評価値に基づいて、前記第1の候補生成ステップで生成された複数の第1の動きベクトル候補の中から1つを選択するとともに、前記第2の候補生成ステップで生成された複数の第2の動きベクトル候補の中から1つを選択する選択ステップと、選択された前記第1の動きベクトル候補を、前記検出対象ブロックにおける前記第1の参照ピクチャに基づく第1の動きベクトルとして検出するとともに、選択された前記第2の動きベクトル候補を、前記検出対象ブロックにおける前記第2の参照ピクチャに基づく第2の動きベクトルとして検出する検出ステップとを含むことを特徴とする。例えば、前記選択ステップでは、前記評価値が最小となる第1及び第2の動きベクトル候補をそれぞれ1つ選択する。
【0270】
これにより、画素値の補間処理を行った結果に基づいて評価値が算出されるため、フェードが生じる場合であってもその影響による評価値の誤差の増加を防止して、最適な動きベクトルを検出することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における動画像符号化装置の構成を示すブロック図である。
【図2】同上の参照フレームと符号化対象フレームの時間的位置関係を示すフレーム配置図である。
【図3】同上の動き推定部の構成を示すブロック図である。
【図4】同上の第1動きベクトル候補及び第2動きベクトル候補の生成方法を説明するための説明図である。
【図5】同上の画像符号化信号のフォーマットの概念を示す概念図である。
【図6】同上の動画像符号化装置が動きベクトルを検出して符号化するまでの動作を示すフロー図である。
【図7】本発明の第2の実施の形態における動画像復号化装置の構成を示すブロック図である。
【図8】本発明の第3の実施の形態における動画像符号化装置の構成を示すブロック図である。
【図9】同上の動き推定部の構成を示すブロック図である。
【図10】同上の第1動きベクトル候補及び第2動きベクトル候補の生成方法を説明するための説明図である。
【図11】同上の画像符号化信号のフォーマットの概念を示す概念図である。
【図12】本発明の第4の実施の形態における動画像復号化装置の構成を示すブロック図である。
【図13】本発明の第5の実施の形態における動画像符号化装置の構成を示すブロック図である。
【図14】同上の動き推定部の構成を示すブロック図である。
【図15】第1動きベクトル候補及び動きベクトル並びに第2動きベクトル候補の生成方法を説明するための説明図である。
【図16】同上の変形例に係る動画像符号化装置の構成を示すブロック図である。
【図17】同上の変形例に係る動画像符号化装置の画像符号化信号のフォーマットの概念を示す概念図である。
【図18】本発明の第6の実施の形態における動画像復号化装置の構成を示すブロック図である。
【図19】本発明の第7の実施の形態における動画像符号化装置の構成を示すブロック図である。
【図20】同上のマルチフレームバッファの内部のメモリの概略構成を示す構成図である。
【図21】同上のマルチフレームバッファに保存されたフレームの状態を示す状態図である。
【図22】同上の差分ベクトルの作成される様子を説明するための説明図である。
【図23】同上の動きベクトルの符号化の一連の動作を示すフロー図である。
【図24】本発明の第8の実施の形態における動画像復号化装置の構成を示すブロック図である。
【図25】同上の動きベクトルの復号化の一連の動作を示すフロー図である。
【図26】本発明の第9の実施の形態における記録媒体についての説明図である。
【図27】本発明の第10の実施の形態におけるコンテンツ供給システムの全体構成を示すブロック図である。
【図28】同上の携帯電話の正面図である。
【図29】同上の携帯電話のブロック図である。
【図30】同上のディジタル放送用システムの全体構成を示すブロック図である。
【図31】動きベクトルを説明するための説明図である。
【図32】2枚のフレームを用いて予測画像を生成する様子を説明するための説明図である。
【図33】従来例を示す動画像符号化装置の構成を示すブロック図である。
【図34】同上の動き推定部の構成を示すブロック図である。
【図35】同上の動きベクトルを検出する様子を説明するための説明図である。
【図36】フェードによる画素値の変化を説明するための説明図である。
【図37】従来例を示す動画像符号化装置が出力する画像符号化信号のフォーマットの概念を示す概念図である。
【図38】従来例を示す動画像復号化装置の構成を示すブロック図である。
【符号の説明】
301 マルチフレームバッファ
302 動き推定部
303 動き補償部
304 画像符号化部
305 画像復号部
306 可変長符号化部
308 加算機
309 減算器
Bs1 画像符号化信号
Dr 残差復号信号
Er 残差符号化信号
Img 画像信号
MV1,MV2 動きベクトル
Pre 予測画像信号
Rc 再構成画像信号
Rf1,Rf2 参照フレーム[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a motion vector detecting method for detecting a motion vector indicating a motion of a region in an image when encoding the moving image.
[0002]
[Prior art]
2. Description of the Related Art In recent years, with the development of multimedia applications, it has become common to handle all media information such as images, voices, and texts by digitizing them. However, since a digitized image has a huge amount of data, an image information compression technique is indispensable for storage and transmission. On the other hand, in order to interoperate compressed image data, standardization of compression technology is also important. Standards for image compression technology include H.264 of ITU-T (International Telecommunication Union Telecommunication Standardization Sector). 261, H .; 263, or ISO (International Organization for Standardization) MPEG (Moving Picture Experts Group) -1, MPEG-2, and MPEG-4 (for example, see Non-Patent Documents 1 and 2).
[0003]
An inter-frame prediction with motion compensation is a technique common to the video coding systems of these standards. In the motion compensation of these video coding methods, a frame of an input image is divided into rectangles of a predetermined size (hereinafter, referred to as blocks), and a prediction pixel is generated from a motion vector indicating a motion between frames for each block. I do.
[0004]
FIG. 31 is an explanatory diagram for describing a motion vector.
For example, when a moving object is photographed by a video camera, the position of the block in which the object is photographed moves for each frame. That is, if a moving subject is included in the block B of the frame Rf and the subject is included in the block B0 in the frame Tf, the block B0 is displaced from the block B, and the displacement with respect to the block B0 is a motion vector. Expressed as MV.
[0005]
In the above-described motion compensation, a motion vector MV is detected for each block, and the detection is generally performed from a reference source frame (frame Rf in FIG. 31) as a detection target block (FIG. 31). Is performed by searching for a block whose pixel value is close to that of the block B0).
[0006]
In addition, the H.264 standard currently being standardized by the ITU-T. In 26L, a method of obtaining a predicted pixel by interpolating pixels using two frames immediately before the encoding target frame as a reference frame is being studied. Here, a prediction method of generating a predicted image (predicted pixel) by pixel interpolation with reference to two frames whose display time is earlier than the encoding target frame is referred to as forward interpolation prediction.
[0007]
FIG. 32 is an explanatory diagram for explaining how to generate a predicted image using two frames.
As shown in FIG. 32, when a predicted image of the block B0 of the encoding target frame Tf is generated, for example, the frame Rf1 immediately before the encoding target frame Tf and the encoding target frame Tf The reference frame Rf2 two frames before is used as a reference frame. That is, the blocks B1 and B2 whose pixel values are close to the block B0 are searched for from the reference frames Rf1 and Rf2, and the motion vectors MV1 and MV2 are detected from the displacement of the positions of the blocks B1 and B2 and the block B0. .
[0008]
Then, a predicted image of the block B0 is generated from the block B1 of the reference frame Rf1 indicated by the motion vector MV1 and the block B2 of the reference frame Rf2 indicated by the motion vector MV2. That is, by using the pixel values of the block B1 and the pixel values of the block B2 to interpolate the pixel values of the block B0, the predicted image is generated. Examples of such a pixel value interpolation method include an average value and extrapolation. Extrapolation is highly effective in predicting a screen effect such as a fade in which pixel values change linearly with time.
[0009]
Further, the block B0 is encoded using the predicted image generated as described above.
FIG. 33 is a block diagram showing a configuration of a moving picture coding apparatus 800 for coding a moving picture according to the conventional moving picture coding method.
[0010]
The moving picture coding apparatus 800 includes a multi-frame buffer 801, a motion estimating section 802, a motion compensating section 803, a picture coding section 804, a picture decoding section 805, a variable length coding section 806, a motion vector The image processing apparatus includes a scaling unit 807, adders 808, subtractors 809 and 810, and switches 811 and 812, divides a frame indicated by the image signal Img into blocks, and performs processing for each block.
[0011]
The subtractor 809 subtracts the predicted image signal Pre from the image signal Img input to the video encoding device 800, and outputs a residual signal Res.
The image encoding unit 804 obtains the residual signal Res, performs image encoding processing such as DCT transform / quantization, and outputs a residual encoded signal Er including quantized DCT coefficients and the like.
[0012]
The image decoding unit 805 obtains the residual coded signal Er, performs image decoding processing such as inverse quantization and inverse DCT, and outputs a residual decoded signal Dr. The adder 808 adds the residual decoded signal Dr and the predicted image signal Pre, and outputs a reconstructed image signal Rc. Also, of the reconstructed image signal Rc, a signal that may be referred to in subsequent inter-frame prediction is stored in the multi-frame buffer 801.
[0013]
FIG. 34 is a block diagram illustrating a configuration of the motion estimation unit 802.
The motion estimation unit 802 detects a motion vector for each block, and includes a motion vector candidate generation unit 821, a pixel acquisition unit 822, a subtractor 823, and a motion vector selection unit 824.
[0014]
The motion vector candidate generation unit 821 generates a motion vector candidate MVC as a candidate for a motion vector MV of a block to be encoded. Here, the motion vector candidate generation unit 821 sequentially generates some motion vector candidates MVC from within a predetermined motion vector detection range.
[0015]
The pixel acquisition unit 822 acquires one block in the reference frame Rf indicated by the motion vector candidate MVC, and outputs it to the subtractor 823 as a prediction block PB.
The subtracter 823 calculates the difference between the pixel value of the block to be encoded of the image signal Img and the pixel value of the prediction block PB, and outputs the difference to the motion vector selection unit 824 as the prediction error block RB.
[0016]
When the motion vector selection unit 824 obtains the prediction error blocks RB for each of the motion vector candidates MVC generated by the motion vector candidate generation unit 821, the motion vector selection unit 824 calculates, for each of these prediction error blocks RB, a pixel value in the block. A prediction error evaluation value such as SAD (sum of absolute values of prediction error values) and SSD (sum of squares of prediction error values) is calculated. Then, the motion vector selection unit 824 selects a motion vector candidate MVC when the prediction error evaluation value is minimized, and outputs the selected motion vector candidate MVC as a motion vector MV.
[0017]
The motion vector estimating unit 802 detects the motion vectors MV1 and MV2 based on the two reference frames Rf1 and Rf2 for the current block by repeatedly performing the processing operation described above during forward interpolation prediction. I do.
[0018]
FIG. 35 is an explanatory diagram for describing how to detect the motion vectors MV1 and MV2.
When the contacts of the switches 811 and 812 are switched to the contact 0 side, the motion estimating unit 802 calculates the prediction error evaluation value as described above, and thereby calculates the prediction target evaluation value and the pixel value of the encoding target block and the pixel value in the encoding target frame Tf. A near block (a block with the smallest prediction error evaluation value) is searched from the reference frame Rf1, and the pixel Pt0 of the block in the encoding target frame Tf and the pixel Pt0 in the block searched from the reference frame Rf1 are compared with the pixel Pt0. A motion vector MV1 indicating a displacement from the pixel Pt1 at the same position is detected.
[0019]
Next, when the contacts of the switches 811 and 812 are switched to the contact 1 side, the motion estimating unit 802 determines, as described above, a block whose pixel value is close to the encoding target block in the encoding target frame Tf (the prediction error evaluation value). Is the smallest block) from the reference frame Rf2, and the pixel Pt0 of the block in the encoding target frame Tf and the pixel Pt2 having the same relative position as the pixel Pt0 in the block found in the reference frame Rf2. A motion vector MV2 indicating displacement is detected.
[0020]
At the time of forward interpolation prediction, the motion compensation unit 803 extracts, from the multi-frame buffer 801, the block at the position indicated by the motion vector MV1 in the reference frame Rf1 and the block at the position indicated by the motion vector MV2 in the reference frame Rf2. . Then, the motion compensation unit 803 performs a pixel value interpolation process based on these blocks to generate a predicted image signal Pre indicating a predicted image, and outputs this.
[0021]
Note that a coding target block when a predicted image is obtained by the forward interpolation prediction is referred to as a forward interpolation prediction block. Further, the motion compensation unit 803 can switch to another prediction method for each block, for example, forward prediction in which prediction is performed only from one frame before the display time.
[0022]
Here, a fade in which a pixel value (luminance value) changes with time will be described. As described above, the position of the block including the subject is displaced in accordance with the movement of the subject, and the pixel value in the block changes with time.
[0023]
FIG. 36 is an explanatory diagram for describing a change in a pixel value due to a fade.
The pixel value of the pixel Pt2 indicated by the above-described motion vector MV2 changes to the pixel value of the pixel Pt1 indicated by the motion vector MV1. It can be assumed that such a change is proportional to time if the time interval is short, as shown by the line L in FIG.
[0024]
Therefore, the pixel value P0 of the pixel Pt0 of the block B0 of the encoding target frame Tf is extrapolated from the pixel values P1 and P2 of the pixels Pt1 and Pt2 of the reference frames Rf1 and Rf2, and the calculation expression “P0 = 2 × P1−P2” ".
[0025]
The motion compensation unit 803 performs the extrapolation of the above equation to enhance the prediction effect on the fade and improve the coding efficiency. In addition, the motion compensation unit 803 performs interpolation by interpolation (average value) instead of extrapolation on an image without fade, and as a result, the range of selection of a more optimal prediction method is expanded. The coding efficiency has been improved.
[0026]
The motion vector scaling unit 807 performs scaling on the motion vector MV1.
For the motion vector MV1 detected by the motion estimator 802, the motion vector scaling unit 807, as shown in FIG. 35, displays a display time difference T1 indicating a time difference at which the encoding target frame Tf and the reference frame Rf1 are displayed; Scaling is performed based on the display time difference T2 indicating the time difference between when the encoding target frame Tf and the reference frame Rf2 are displayed.
[0027]
That is, the motion vector scaling unit 807 performs scaling on the motion vector MV1 by multiplying the ratio of the display time difference T2 to the display time difference T1 (T2 / T1) by the motion vector MV1, thereby obtaining the motion vector MVs.
[0028]
Information on such display time differences T1 and T2 is obtained from the multi-frame buffer 801. That is, the frame indicated by the reproduction constituent image signal Rc is recorded in the multi-frame buffer 801 together with information on the display time of the frame.
[0029]
The subtractor 810 subtracts the above-described motion vector MVs from the motion vector MV2 detected by the motion estimating unit 802, and outputs a difference vector MVd shown in FIG.
[0030]
The variable-length encoding unit 806 performs variable-length encoding on the motion vector MV1, the difference vector MVd, and the residual encoded signal Er, and outputs an image encoded signal Bs.
As described above, the moving image encoding device 800 encodes the image signal Img and outputs the image encoded signal Bs by the processing described above.
[0031]
FIG. 37 is a conceptual diagram showing the concept of the format of the image coded signal Bs.
The image coded signal Bs includes a frame coded signal Bsf9 having a content indicating a frame coded by forward interpolation prediction, and the coded frame interpolation signal Bsf9 further includes a coded forward interpolation prediction block (coding (Target block) is included. Further, the block coded signal Bsb9 includes a first motion vector coded signal Bs1 having the content indicating the coded motion vector MV1, and a difference vector coded signal Bsd having the content indicating the coded difference vector MVd. And are included.
[0032]
In the motion vector encoding method executed by the moving image encoding device 800, the motion vector MV1 and the difference vector MVd are encoded by the motion vector scaling unit 807, the subtractor 810, and the variable length encoding unit 806. Assuming that the direction and speed of the motion of the subject in the screen are constant among the encoding target frame Tf, the reference frame Rf1, and the reference frame Rf2, the difference vector MVd becomes close to 0 and the code of the motion vector Good conversion efficiency.
[0033]
Next, a moving image decoding device that decodes an image encoded by the moving image encoding device 800 will be described.
FIG. 38 is a block diagram showing a configuration of a conventional video decoding device.
[0034]
This video decoding device 900 includes a multi-frame buffer 901, a motion compensation unit 903, an image decoding unit 905, a variable length decoding unit 906, a motion vector scaling unit 907, and adders 909 and 910. Have.
[0035]
The variable length decoding unit 906 obtains the coded image signal Bs, performs variable length decoding, and outputs the coded residual signal Er, the motion vector MV1, and the difference vector MVd. The image decoding unit 905 acquires the residual coded signal Er, performs image decoding processing such as inverse quantization and inverse DCT transform, and outputs a residual decoded signal Dr.
[0036]
When the motion vector scaling unit 907 acquires the motion vector MV1 output from the variable length decoding unit 906, similarly to the motion vector scaling unit 807 of the moving picture coding device 800, the motion vector scaling unit 907 generates a target frame Tf and a reference frame Rf1. Based on the display time difference T1 and the display time difference T2 between the encoding target frame Tf and the reference frame Rf2, scaling is performed on the motion vector MV1, and the resulting motion vector MVs is output.
[0037]
The adder 910 adds the scaled motion vector MVs and the difference vector MVd, and outputs the addition result as a motion vector MV2.
Similar to the motion compensator 803 of the video encoding device 800, the motion compensator 903 includes a block at a position indicated by the motion vector MV1 in the reference frame Rf1 and a block at a position indicated by the motion vector MV2 in the reference frame Rf2. From the multi-frame buffer 901. Then, the motion compensating unit 903 performs a pixel value interpolation process based on these blocks to generate a predicted image signal Pre and outputs it.
[0038]
The adder 909 adds the predicted image signal Pre from the motion compensation unit 903 and the residual decoded signal Dr from the image decoding unit 905, and outputs the result as a decoded image signal Di.
[0039]
The multi-frame buffer 901 has the same configuration as the multi-frame buffer 801 of the video encoding device 800, and stores a signal of the decoded image signal Di that may be referred to in inter-frame prediction.
[0040]
Such a moving picture decoding apparatus 900 decodes the coded image signal Bs, and outputs the decoding result as a decoded image signal Di.
As described above, prediction error evaluation values such as SAD and SSD are used in the motion vector detection method in many conventional video encoding devices including the video encoding device 800.
[0041]
[Non-patent document 1]
"Video Coding for Low Bit Rate Communication," H. et al. 263, ITU-T, 1996.3
[0042]
[Non-patent document 2]
DRAFT FOR “H.263 ++” ANNEXES U, V, AND W TO RECOMMENDATION H. 263 (U.4 Decoder Process), ITU-T, 2000.11
[0043]
[Problems to be solved by the invention]
However, in the above-described conventional motion vector detection method, a change in pixel value due to a fade is not taken into consideration, so that a difference easily occurs in a pixel value between a coding target block and a prediction image. There is a problem that the value of the error evaluation value tends to increase, and an optimum motion vector cannot be detected.
[0044]
Therefore, an object of the present invention is to provide a motion vector detecting method for detecting an optimal motion vector even when a fade occurs.
[0045]
[Means for Solving the Problems]
In order to achieve the above object, the motion vector detection method of the present invention is a motion vector detection method for detecting a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image, A first candidate generating step of generating a first motion vector candidate based on a first reference picture of the detection target block, and a second candidate of a motion vector based on a second reference picture of the detection target block; A second candidate generation step, a first prediction block indicated by a first motion vector candidate in the first reference picture, and a second prediction block indicated by a second motion vector candidate in the second reference picture An interpolation step of creating an interpolation prediction block by interpolating pixel values of pixels corresponding to each other based on the A calculating step of calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the measurement block and the detection target block; and A selection step of selecting one from among one motion vector candidate, and selecting one from a plurality of second motion vector candidates generated in the second candidate generation step; A first motion vector candidate is detected as a first motion vector based on the first reference picture in the detection target block, and the selected second motion vector candidate is detected as the first motion vector in the detection target block. Detecting a second motion vector based on the second reference picture. For example, in the selecting step, one first and second motion vector candidate each having the smallest evaluation value is selected.
[0046]
As a result, since the evaluation value is calculated based on the result of performing the interpolation processing of the pixel value, even if a fade occurs, it is possible to prevent an increase in the error of the evaluation value due to the effect and to determine an optimal motion vector. Can be detected.
[0047]
Further, the motion vector encoding method according to the present invention is a motion vector encoding method for encoding a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image. The method includes a motion vector detecting step of detecting first and second motion vectors by the motion vector detecting method according to the present invention, and an encoding step of encoding the first and second motion vectors, respectively. .
[0048]
Thereby, it is possible to encode the optimum motion vectors.
Further, the motion vector encoding method according to the present invention is configured such that, for a current picture to be coded in a moving image, the first and second motion vectors are referred to by referring to the other two pictures as reference pictures. A motion vector encoding method for identifying a vector encoding method and encoding information relating to the first and second motion vectors, wherein a first area in which a picture is recorded together with information relating to its display time, Reading out the two reference pictures from a storage unit having a second area in which a picture not recorded in the first area is recorded, and at least one of the two reference pictures is the second area. A determining step of determining whether or not the reference picture has been read from the area; and determining at least one of the two reference pictures by the second When it is determined that the first motion vector and the second motion vector have been read, a difference vector deriving step of obtaining a difference vector indicating a difference between the first motion vector and the second motion vector; And an encoding step of encoding.
[0049]
With this, when at least one of the two reference pictures is read from the second area of the memory, the scaling of the motion vector is not performed as in the conventional example, so that execution of unreasonable scaling is omitted, It is possible to improve the coding efficiency of the motion vector.
[0050]
On the other hand, in the motion vector decoding method according to the present invention, the first and second motion vectors are referred to a decoding target picture to be decoded in a moving image by referring to the other two pictures as reference pictures. A motion vector decoding method for identifying a vector decoding method and decoding coded information obtained by coding information relating to the first and second motion vectors, wherein the first motion information is obtained from the coded information. A decoding step of decoding a vector and an associated vector relating to the first and second motion vectors, and a first area in which a picture is recorded together with information relating to its display time and a picture not recorded in the first area. Reading out the two reference pictures from storage means having a second area in which a picture is recorded; and reading out at least one of the two reference pictures. Determining whether at least one of the two reference pictures has been read from the second area; and determining that at least one of the two reference pictures has been read from the second area. Calculating the second motion vector by adding the related vector and the first motion vector.
[0051]
With this, when at least one of the two reference pictures is read from the second area of the memory, the scaling of the motion vector is not performed as in the conventional example, so that execution of unreasonable scaling is omitted, The decoding efficiency of the motion vector can be improved.
[0052]
Note that the present invention can also be realized as a moving image encoding device, a program, and a storage medium that stores the program using the motion vector detection method and the motion vector encoding method.
[0053]
BEST MODE FOR CARRYING OUT THE INVENTION
(Embodiment 1)
Hereinafter, a moving picture coding apparatus according to the first embodiment of the present invention will be described with reference to the drawings.
[0054]
FIG. 1 is a block diagram showing a configuration of a moving picture coding apparatus 300A according to the present embodiment.
The moving picture coding apparatus 300A according to the present embodiment detects and codes an optimal motion vector, and includes a multi-frame buffer 301, a motion estimating section 302, a motion compensating section 303, and a video coding apparatus. A section 304, an image decoding section 305, a variable length coding section 306, an adder 308 and a subtractor 309.
[0055]
The motion estimating unit 302 calculates an optimal motion of a block (encoding target block) in the encoding target frame Tf indicated by the image signal Img based on each of the reference frames Rf1 and Rf2 read from the multi-frame buffer 301. The vectors MV1 and MV2 are detected.
[0056]
Similar to the motion compensating unit 803 of the video encoding device 800, the motion compensating unit 303 uses the block at the position indicated by the motion vector MV1 in the reference frame Rf1 and the motion vector MV2 in the reference frame Rf2 during forward interpolation prediction. The block at the indicated position is extracted from the multi-frame buffer 801. Then, based on these blocks, the motion compensating unit 303 performs a process of interpolating pixel values by extrapolation as described with reference to FIG. 36 to generate and output a predicted image signal Pre indicating a predicted image. By performing the interpolation process of the pixel value by the extrapolation in this way, the effect of predicting the fade can be enhanced. Note that the motion compensation unit 303 switches the prediction method for each encoding target block between forward interpolation prediction and another prediction method, for example, forward prediction in which prediction is performed from only one frame before the display time. Is also good.
[0057]
The subtractor 309 subtracts the predicted image signal Pre from the image signal Img and outputs a residual signal Res.
The image coding unit 304 obtains the residual signal Res, performs image coding processing such as DCT transform / quantization, and outputs a residual coded signal Er including quantized DCT coefficients and the like.
[0058]
The image decoding unit 305 acquires the residual coded signal Er, performs image decoding processing such as inverse quantization and inverse DCT, and outputs a residual decoded signal Dr.
The adder 108 adds the residual decoded signal Dr and the prediction image signal Pre to output a reconstructed image signal Rc.
[0059]
The multi-frame buffer 301 stores a signal of the reconstructed image signal Rc which may be referred to in inter-frame prediction.
The variable-length coding unit 306 performs variable-length coding on the motion vectors MV1 and MV2 detected by the motion estimating unit 302 and the residual coded signal Er output from the image coding unit 304. The result is output as an image encoded signal Bs1.
[0060]
When encoding each block of the encoding target frame Tf indicated by the image signal Img, such a moving image encoding device 300A refers to the two reference frames Rf1 and Rf2 to refer to these reference frames Rf1 and Rf2. The motion vectors MV1 and MV2 of the current block based on Rf2 are detected. Then, the moving picture coding apparatus 300A codes the detected motion vectors MV1 and MV2, respectively, and sets the pixel values of the predicted picture predicted from the reference frames Rf1 and Rf2 and the motion vectors MV1 and MV2 and the coding target block. Is encoded.
[0061]
Here, each of the reference frames Rf1 and Rf2 may be temporally forward or backward with respect to the encoding target frame Tf.
FIG. 2 is a frame layout diagram showing a temporal positional relationship between the reference frames Rf1 and Rf2 and the encoding target frame Tf.
[0062]
As shown in FIG. 2A, the moving picture coding apparatus 300A may refer to frames located before the coding target frame Tf as reference frames Rf1 and Rf2. As shown in b), a frame located behind the encoding target frame Tf may be referred to as reference frames Rf1 and Rf2. Further, as shown in (c) of FIG. 2, one frame located before the encoding target frame Tf is referred to as a reference frame Rf2, and one frame located behind the encoding target frame Tf is referred to. The frame may be referred to as a frame Rf1, and vice versa, that is, one frame located before the encoding target frame Tf is referred to as a reference frame Rf1, and one frame located behind the encoding target frame Tf is referred to as a reference frame. It may be referred to as Rf2.
[0063]
The motion estimating unit 302 of the moving picture coding apparatus 300A according to the present embodiment will be described in detail.
The motion estimation unit 302 detects the motion vectors MV1 and MV2 of the encoding target block based on each of the reference frames Rf1 and Rf2 as described above, and outputs these motion vectors MV1 and MV2 to the motion compensation unit 303. .
[0064]
FIG. 3 is a block diagram illustrating a configuration of the motion estimation unit 302.
The above-described motion estimation unit 302 in the present embodiment includes a first motion vector candidate generation unit 321, a second motion vector candidate generation unit 322, pixel acquisition units 323 and 324, an interpolation unit 325, and a subtractor 326. , A motion vector selection unit 327.
[0065]
The first motion vector candidate generation unit 321 extracts all motion vector MV1 candidates based on the reference frame Rf1 of the current block from a predetermined detection range, and sequentially outputs them as first motion vector candidates MVC1.
[0066]
The second motion vector candidate generation unit 322 extracts all the motion vector MV2 candidates based on the reference frame Rf2 of the encoding target block from the predetermined detection range, similarly to the first motion vector candidate generation unit 321. These are sequentially output as the second motion vector candidate MVC2.
[0067]
FIG. 4 is an explanatory diagram for describing a method of generating the first motion vector candidate MVC1 and the second motion vector candidate MVC2.
The first motion vector candidate generation unit 321 selects any pixel Pt1 from the motion vector detection range SR of the reference frame Rf1, and sets the displacement between the pixel Pt0 and the pixel Pt1 of the encoding target block as the first motion vector candidate MVC1. Then, the second motion vector candidate generation unit 322 selects any pixel Pt2 from the motion vector detection range SR1 of the reference frame Rf2, and calculates the displacement between the pixel Pt0 and the pixel Pt2 of the encoding target block by the second motion vector. Output as candidate MVC2.
[0068]
The pixel acquisition unit 323 acquires one block (a block including the pixel Pt1 in FIG. 4) in the reference frame Rf1 indicated by the first motion vector candidate MVC1, and outputs the acquired block to the interpolation unit 325 as a prediction block PB1.
[0069]
The pixel acquisition unit 324 acquires one block (a block including the pixel Pt2 in FIG. 4) in the reference frame Rf2 indicated by the second motion vector candidate MVC2, and outputs the acquired block to the interpolation unit 325 as a prediction block PB2.
[0070]
The interpolation unit 325 creates an interpolation prediction block PB0 for the encoding target block by performing pixel value interpolation using two pixels whose relative positions in the prediction blocks PB1 and PB2 are equal to each other. Output to the subtractor 326.
[0071]
In the case of forward interpolation prediction, such interpolation of pixel values is performed by extrapolating two pixel values as described with reference to FIG. That is, as shown in FIG. 36, when the pixel Pt1 in the prediction block PB1 and the pixel Pt2 in the prediction block PB2 have the same relative position in the block, the pixel value P1 of the pixel Pt1 and the pixel value of the pixel Pt2 A calculation formula “P0 ′ = 2 × P1−P2” is calculated from P2, and an interpolation prediction pixel value P0 ′ of the pixel Pt0 in the encoding target block corresponding to the pixels Pt1 and Pt2 is calculated. Then, the interpolation unit 325 creates the interpolation prediction block PB0 by calculating the interpolation prediction pixel values P0 ′ for all the pixels in the encoding target block.
[0072]
The subtractor 326 calculates a difference (P0−P0 ′) between pixel values of pixels corresponding to the encoding target block indicated in the image signal Img and the interpolation prediction block PB0, and sets the result as a prediction error block RB0. Output to the motion vector selection unit 327.
[0073]
Upon obtaining the prediction error block RB0 from the subtractor 326, the motion vector selection unit 327 obtains an SAD (sum of absolute values of prediction error values) shown by the following (Equation 1) or an SSD shown by the following (Equation 2) A prediction error evaluation value such as (sum of squares of the prediction error value) is calculated.
[0074]
(Equation 1)
Figure 2004215215
Such a prediction error evaluation value is calculated based on all of the first motion vector candidate MVC1 generated by the first motion vector candidate generation unit 321 and the second motion vector candidate MVC2 generated by the second motion vector candidate generation unit 322. Is calculated for the combination of.
[0075]
Then, the motion vector selection unit 327 selects the first motion vector candidate MVC1 and the second motion vector candidate MVC2 having the smallest prediction error evaluation value, and assigns the selected first motion vector candidate MVC1 to a code based on the reference frame Rf1. In addition to outputting as the motion vector MV1 of the encoding target block, the selected second motion vector candidate MVC2 is output as the motion vector MV2 of the encoding target block based on the reference frame Rf2.
[0076]
Thus, even if a change in pixel value due to fading occurs, the motion estimating unit 302 according to the present embodiment detects a motion vector in consideration of the change, so that an optimal motion vector can be detected.
[0077]
Then, the variable-length coding unit 306 performs variable-length coding on the motion vectors MV1 and MV2 detected by the motion estimating unit 302 as described above, and outputs the motion vectors MV1 and MV2 together with the coded image signal Bs1. Note that the variable length decoding unit 306 subtracts the predicted values of the motion vectors MV1 and MV2 obtained from the peripheral blocks around the current block from the motion vectors MV1 and MV2, and encodes the respective differences. May be.
[0078]
FIG. 5 is a conceptual diagram showing the concept of the format of the image coded signal Bs1.
The image coded signal Bs1 includes a frame coded signal Bsf1 having a content indicating a coded frame, and the frame coded signal Bsf1 further includes a block coded signal Bsb1 having a content indicating a coded block. include. Further, the block coded signal Bsb1 includes a first motion vector coded signal Bs1 having the content indicating the coded motion vector MV1 and a second motion vector coded signal having the content indicating the coded motion vector MV2. Signal Bs2.
[0079]
FIG. 6 is a flowchart showing an operation until the moving picture coding apparatus 300A detects and codes a motion vector.
First, the motion estimator 302 of the video encoding device 300A generates one first motion vector candidate MVC1 and one second motion vector candidate MVC2 (Step S300).
[0080]
Then, the motion estimating unit 302 acquires a predicted block PB1 indicated by the first motion vector candidate MVC1 and a predicted block PB2 indicated by the second motion vector candidate MVC2 (step S302).
[0081]
Next, the motion estimating unit 302 creates an interpolation prediction block PB0 by performing pixel interpolation processing from the prediction blocks PB1 and PB2 (step S304).
Thereafter, the motion estimating unit 302 acquires the current block to be coded (step S306), obtains the difference between the current block to be coded and the interpolated prediction block PB0, and creates a prediction error block RB0 (step S308).
[0082]
Then, the motion estimating unit 302 calculates a prediction error evaluation value from the prediction error block RP0 generated in step S308 (step S310), and calculates all the combinations of the first motion vector candidate MVC1 and the second motion vector candidate MVC2. Then, it is determined whether or not the prediction error evaluation value has been calculated (step S312).
[0083]
Here, when the motion estimating unit 302 determines that the prediction error evaluation values have not been calculated for all the combinations (N in step S312), the first motion vector candidate MVC1 and the second motion vector A combination with the candidate MVC2 is generated, and the operation from step S300 is repeatedly executed. When the motion estimator 302 determines that the prediction error evaluation values have been calculated for all the combinations (Y in step S312), the smallest prediction error evaluation value among all the prediction error evaluation values calculated in step S310. When the error evaluation value is calculated, the first motion vector candidate MVC1 generated in step S300 is detected as a motion vector MV1, and the second motion vector candidate MVC2 at this time is detected as a motion vector MV2 (step S314). .
[0084]
Then, the variable-length encoding unit 306 of the video encoding device 300A encodes the motion vectors MV1 and MV2 detected in step S314 (step S316).
[0085]
As described above, in the present embodiment, since the prediction error evaluation value is calculated based on the result of performing the pixel value interpolation processing, even if a fade occurs, it is possible to prevent the prediction error evaluation value from increasing due to the effect. Thus, an optimal motion vector can be detected. As a result, the coding efficiency of the motion vector can be improved.
[0086]
(Embodiment 2)
Hereinafter, a moving picture decoding apparatus according to the second embodiment of the present invention will be described with reference to the drawings.
[0087]
FIG. 7 is a block diagram illustrating a configuration of a video decoding device 300B according to the present embodiment.
The moving picture decoding apparatus 300B according to the present embodiment decodes a moving picture encoded by the moving picture coding apparatus 300A according to the first embodiment, and includes a variable length decoding unit 336, a motion compensation A unit 333, an image decoding unit 335, a multi-frame buffer 331, and an adder 339 are provided.
[0088]
The variable-length decoding unit 336 acquires the coded image signal Bs1, performs variable-length decoding, and outputs the coded residual signal Er, the motion vector MV1, and the motion vector MV2. Note that when each of the motion vectors MV1 and MV2 is encoded by subtracting the predicted values of the motion vectors MV1 and MV2 obtained from the peripheral blocks around the current block, the variable-length decoding unit 2336 The encoded differences may be respectively decoded, and the above-described predicted values may be added to the respective differences to generate the motion vectors MV1 and MV2.
[0089]
The image decoding unit 335 acquires the residual coded signal Er, performs image decoding processing such as inverse quantization and inverse DCT transform, and outputs a residual decoded signal Dr.
The motion compensation unit 333, like the motion compensation unit 303 of the video encoding device 300A, uses the block at the position indicated by the motion vector MV1 in the reference frame Rf1 and the motion vector MV2 in the reference frame Rf2 during forward interpolation prediction. The block at the indicated position is extracted from the multi-frame buffer 331. Then, based on these blocks, the motion compensating unit 333 performs a process of interpolating pixel values by extrapolation as described with reference to FIG. 36 to generate and output a predicted image signal Pre.
[0090]
The adder 339 adds the predicted image signal Pre from the motion compensation unit 333 and the residual decoded signal Dr from the image decoding unit 335, and outputs the result as a decoded image signal Di.
[0091]
The multi-frame buffer 331 stores a signal of the decoded image signal Di that may be referred to in inter-frame prediction.
By performing motion compensation based on the motion vectors MV1 and MV2, the video decoding device 300B according to the present embodiment can accurately decode the image encoded by the video encoding device 300A. .
[0092]
(Embodiment 3)
Hereinafter, a video encoding device according to the third embodiment of the present invention will be described with reference to the drawings.
[0093]
FIG. 8 is a block diagram showing a configuration of a moving picture coding apparatus 400A according to the present embodiment.
The moving picture coding apparatus 300A according to the present embodiment detects and codes an optimal motion vector, as in the first embodiment, and includes a multi-frame buffer 401, a motion estimating unit 402, A section 403, an image coding section 404, an image decoding section 405, a variable length coding section 406, an adder 408 and a subtractor 409 are provided.
[0094]
Here, the multi-frame buffer 401, the motion compensation unit 403, the image encoding unit 404, the image decoding unit 405, the adder 408, and the subtractor 409 according to the present embodiment are the multi-frame buffer according to the first embodiment. 301, a motion compensation unit 303, an image encoding unit 304, an image decoding unit 305, and an adder 308 and a subtractor 309 have the same functions and configurations, respectively.
[0095]
In the moving picture coding apparatus 400A according to the present embodiment, the method of detecting a motion vector and the coding method of a motion vector are different from those of the first embodiment. The feature is that only one motion vector is detected and encoded.
[0096]
FIG. 9 is a block diagram illustrating a configuration of the motion estimation unit 402 according to the present embodiment.
The motion estimating unit 402 according to the present embodiment includes a first motion vector candidate generating unit 421, a motion vector scaling unit 422, pixel obtaining units 423 and 424, an interpolating unit 425, a subtractor 426, and a motion vector selecting unit. 427. Then, such a motion estimating unit 402 generates a block (encoding target block) in the encoding target frame Tf indicated by the image signal Img based on each of the reference frames Rf1 and Rf2 read from the multi-frame buffer 401. ), The optimal motion vectors MV1 and MV2 are detected.
[0097]
Here, the first motion vector candidate generation unit 421, the pixel acquisition units 423 and 424, the interpolation unit 425, the subtractor 426, and the motion vector selection unit 427 perform the first motion vector candidate generation in the motion estimation unit 302 of the first embodiment. The unit 321, the pixel acquisition units 323, 324, the interpolation unit 325, the subtractor 326, and the motion vector selection unit 327 have the same functions and configurations, respectively.
[0098]
That is, the motion estimating unit 402 according to the present embodiment includes a motion vector scaling unit 422 instead of the second motion vector candidate generating unit 322 according to the first embodiment, and performs scaling by scaling the first motion vector candidate MVC1. Two motion vector candidates MVC2 are generated.
[0099]
FIG. 10 is an explanatory diagram for describing a method of generating the first motion vector candidate MVC1 and the second motion vector candidate MVC2.
The first motion vector candidate generation unit 421 selects any pixel Pt1 from the motion vector detection range SR of the reference frame Rf1, and sets the displacement between the pixel Pt0 and the pixel Pt1 of the encoding target block as the first motion vector candidate MVC1. Output.
[0100]
When the motion vector scaling unit 422 acquires the first motion vector candidate MVC1 generated as described above, the display time difference T1 indicating the time difference in which the encoding target frame Tf and the reference frame Rf1 are displayed, and the encoding target frame Tf And scaling the first motion vector candidate MVC1 based on the display time difference T2 indicating the time difference when the reference frame Rf2 is displayed.
[0101]
That is, the motion vector scaling unit 422 performs scaling on the first motion vector candidate MVC1 by multiplying the ratio of the display time difference T2 to the display time difference T1 (T2 / T1) by the first motion vector candidate MVC1, and performs motion vector MVCs Ask for.
[0102]
Then, the motion vector scaling unit 422 outputs the motion vectors MVCs obtained by scaling in this manner to the pixel acquisition unit 424 and the motion vector selection unit 427.
[0103]
Upon acquiring the motion vector MVCs from the motion vector scaling unit 422, the pixel acquisition unit 424 and the motion vector selection unit 427 treat the motion vector MVCs as the second motion vector candidate MVC2, and perform the same operation as in the first embodiment. .
[0104]
Further, the first motion vector candidate generation unit 421 sequentially generates all the first motion vector candidates MVC1 from the motion vector detection range SR, and the motion vector scaling unit 422 obtains the first motion vector candidates MVC1 every time. Scaling is performed to create motion vectors MVCs.
[0105]
Each time the first motion vector candidate MVC1 is generated by the first motion vector candidate generation unit 421, the motion vector selection unit 427 performs prediction based on the first motion vector candidate MVC1 and the motion vector MVCs obtained therefrom. An error evaluation value is calculated, and as a result, the first motion vector candidate MVC1 and the motion vector MVCs that minimize the prediction error evaluation value are selected. Then, the motion vector selection unit 427 outputs the selected first motion vector candidate MVC1 and motion vector MVCs as the motion vectors MV1 and MV2.
[0106]
A series of operations of the above-described motion estimation unit 402 will be described below.
First, the first motion vector candidate generation unit 421 generates a first motion vector candidate MVC1, which is a candidate for the motion vector MV1.
[0107]
Next, the motion vector scaling unit 422 generates and outputs the motion vectors MVCs by performing scaling on the first motion vector candidate MVC1.
[0108]
Then, the pixel acquisition unit 423 acquires one block including the pixels of the reference frame Rf1 indicated by the first motion vector candidate MVC1 as the prediction block PB1, and outputs this to the interpolation unit 425. The pixel acquisition unit 424 acquires one block including the pixels of the reference frame Rf2 indicated by the motion vector MVCs as the prediction block PB2, and outputs this to the interpolation unit 425.
[0109]
The interpolation unit 425 generates an interpolation prediction block PB0 by interpolating pixel values of corresponding pixels in each of the two prediction blocks PB1 and PB2 obtained by the pixel obtaining units 423 and 424.
[0110]
The subtracter 426 calculates a difference between pixel values between the interpolation prediction block PB0 and the current block in the image signal Img, and outputs the calculation result as a prediction error block RB0.
[0111]
The motion vector selection unit 427 calculates a prediction error evaluation value based on the pixel values of the pixels in the prediction error block RB0. Then, the motion vector selection unit 427 calculates the prediction error evaluation values for all the first motion vector candidates MVC1 generated by the first motion vector candidate generation unit 421 as described above, and Is selected as the first motion vector candidate MVC1 and the motion vector MVCs.
[0112]
Then, the motion vector selection unit 427 outputs the selected first motion vector candidate MVC1 and motion vector MVCs as the motion vectors MV1 and MV2.
As described above, the motion estimating unit 402 in the present embodiment calculates the prediction error evaluation value based on the result of performing the interpolation process on the pixel values, similarly to the first embodiment, and therefore, there is a case where a fade occurs. This also prevents an increase in the prediction error evaluation value due to the influence, and can detect an optimal motion vector. Further, the motion estimating unit 402 in the present embodiment does not detect the substantial motion vector MV2 even at the time of forward interpolation prediction, and uses the scaled motion vector MV1 as the motion vector MV1. Since the MV2 is used, it is possible to improve the coding efficiency by eliminating the trouble of detecting the motion vector MV2.
[0113]
Further, variable-length coding section 406 of the present embodiment performs variable-length coding on motion vector MV1 and residual coded signal Er, and outputs video coded signal Bs2.
FIG. 11 is a conceptual diagram showing the concept of the format of the image coded signal Bs2.
[0114]
The image coded signal Bs2 includes a frame coded signal Bsf2 having a content indicating a coded frame, and the frame coded signal Bsf2 further includes a block coded signal Bsb2 having a content indicating a coded block. include. Further, the block coded signal Bsb2 includes a motion vector coded signal Bs1 having the content indicating the coded motion vector MV1.
[0115]
As described above, in the present embodiment, the second motion vector coded signal Bs2 indicating the coded motion vector MV2 does not need to be stored in the image coded signal Bs2. Efficiency can be improved.
[0116]
In the present embodiment, the case of forward interpolation prediction has been described as shown in FIG. 38. However, as in Embodiment 1, reference frames Rf1 and Rf2 are either forward or backward of encoding target frame Tf. It may be.
[0117]
Furthermore, in the present embodiment, a frame in which the display time difference based on the encoding target frame Tf is longer than the reference frame Rf1 is selected as the reference frame Rf2, and the first motion vector candidate MVC1 based on the reference frame Rf1 is selected. However, a frame before the display time of the encoding target frame Tf is selected as the reference frame Rf1, and a frame after the display time of the encoding target frame Tf is selected as the reference frame Rf2. Then, scaling may be performed on the first motion vector candidate MVC1 based on the reference frame Rf1.
[0118]
Note that the variable-length coding unit 406 codes a difference between the motion vector MV1 and a predicted value predicted from a motion vector of a peripheral block around the current block, and converts a coded signal indicating the result into a motion vector. It may be included in the block coded signal Bsb2 instead of the vector coded signal Bs1. In this case, the coding efficiency can be further improved.
[0119]
(Embodiment 4)
Hereinafter, a video decoding device according to the fourth embodiment of the present invention will be described with reference to the drawings.
[0120]
FIG. 12 is a block diagram illustrating a configuration of a video decoding device 400B according to the present embodiment.
A moving picture decoding apparatus 400B according to the present embodiment decodes a moving picture encoded by the moving picture coding apparatus 400A according to the third embodiment, and includes a variable length decoding unit 436 and a motion vector. It includes a scaling unit 437, a motion compensation unit 433, an image decoding unit 435, a multi-frame buffer 431, and an adder 439.
[0121]
Here, the image decoding unit 435, the motion compensation unit 433, the multi-frame buffer 431, and the adder 439 according to the present embodiment are the same as the image decoding unit 335 and the motion compensation unit of the video decoding device 300B according to the second embodiment. 333, the multi-frame buffer 331, and the adder 339 have the same functions and configurations, respectively.
[0122]
The variable length decoding unit 336 obtains the coded image signal Bs, performs variable length decoding, and outputs a coded residual error Er and a motion vector MV1. Note that when the motion vector MV1 is encoded by subtracting the predicted value of the motion vector MV1 obtained from the peripheral blocks around the current block, the variable-length decoding device 336 outputs The motion vector MV1 may be generated and output by decoding the difference and adding the above-described prediction value to the difference.
[0123]
When acquiring the motion vector MV1 output from the variable-length decoding unit 906, similarly to the motion vector scaling unit 907 of the video decoding device 900, the motion vector scaling unit 437 compares the encoding target frame Tf with the reference frame Rf1. The motion vector MV1 is scaled based on the display time difference T1 and the display time difference T2 between the encoding target frame Tf and the reference frame Rf2. Then, the motion vector scaling unit 437 outputs the resulting motion vector to the motion compensation unit 433 as the motion vector MV2 detected based on the reference frame Rf2.
[0124]
Similar to the motion compensation unit 333 according to the second embodiment, the motion compensation unit 433 determines a block at a position indicated by the motion vector MV1 in the reference frame Rf1 and a block at a position indicated by the motion vector MV2 in the reference frame Rf2. , From the multi-frame buffer 431. Then, the motion compensating unit 433 performs a pixel value interpolation process based on these blocks, creates a predicted image signal Pre, and outputs this.
[0125]
The video encoding device 400B according to the present embodiment derives the motion vector MV2 by performing scaling on the motion vector MV1, and correctly decodes the image encoded by the video encoding device 400A. can do.
[0126]
(Embodiment 5)
Hereinafter, a moving picture coding apparatus according to a fifth embodiment of the present invention will be described with reference to the drawings.
[0127]
FIG. 13 is a block diagram illustrating a configuration of a moving picture coding apparatus 500A according to the present embodiment.
The moving image encoding device 500A includes a multi-frame buffer 501, a motion estimating unit 502, a motion compensating unit 503, an image encoding unit 504, an image decoding unit 505, a variable length encoding unit 506, a motion vector scaling unit 507, and an adder. 508, and includes subtracters 509 and 510, and divides the frame indicated by the image signal Img into blocks, and performs processing for each block.
[0128]
Here, the multi-frame buffer 501, the motion compensation unit 503, the image encoding unit 504, the image decoding unit 505, the variable length encoding unit 506, the motion vector scaling unit 507, the adder 508, and the subtractors 509 and 510 in the present embodiment. Are the multi-frame buffer 801, the motion compensation unit 803, the image encoding unit 804, the image decoding unit 805, the variable length encoding unit 806, the motion vector scaling unit 807, the adder 808, and the subtraction in the conventional video encoding device 800. It has the same function and configuration as the devices 809 and 810, respectively.
[0129]
That is, the present embodiment is characterized in the motion vector detection method of the motion estimation unit 502, and the operation processing such as the motion vector encoding method is common to the moving image encoding device 800.
[0130]
FIG. 14 is a block diagram illustrating a configuration of the motion estimation unit 502 according to the present embodiment. The motion estimation unit 502 includes a first motion vector candidate generation unit 521, a second motion vector candidate generation unit 522, a motion vector scaling unit 521a, pixel acquisition units 523 and 524, an interpolation unit 525, and a subtractor 526. , A motion vector selection unit 527, and switches 528 and 529.
[0131]
Also, the first motion vector candidate generation unit 521, the motion vector scaling unit 521a, the pixel acquisition units 523 and 524, the interpolation unit 525, and the subtractor 526 in the motion estimation unit 502 The unit 402 has the same functions and configurations as the first motion vector candidate generation unit 421, the motion vector scaling unit 422, the pixel acquisition units 423, 424, the interpolation unit 425, and the subtractor 426.
[0132]
Then, the second motion vector candidate generation unit 522 extracts all the motion vector MV2 candidates based on the reference frame Rf2 of the encoding target block from the predetermined motion vector detection range, and outputs these as the second motion vector candidates MVC2, respectively. I do.
[0133]
As described in the third embodiment, the motion estimating unit 402 in the third embodiment generates some first motion vector candidates MVC1 and performs scaling on each of the first motion vector candidates MVC1. The motion vectors MVCs are generated, and the first motion vector candidate MVC1 with the smallest prediction error evaluation value and the corresponding motion vectors MVCs are detected as the motion vectors MV1 and MV2. That is, the motion estimating unit 402 detects a scaled version of the motion vector MV1 as the motion vector MV2.
[0134]
However, the motion estimating unit 502 in the present embodiment detects the motion vector MV1 in the same manner as the motion estimating unit 402 in the third embodiment, but calculates the motion vector MV1 by scaling the motion vector MV1. The feature is that the motion vector MV2 having the smallest prediction error evaluation value is further detected using the detected motion vector MV1.
[0135]
The specific operation of the motion estimation unit 502 will be described with reference to FIGS.
When the contacts of the switches 528 and 529 are switched to the contact 0 side, the motion estimating unit 502 generates the first motion vector candidate MVC1 and the motion vector MVCs by the same method as in the third embodiment, and generates the motion vector MV1. To detect.
[0136]
FIG. 15A is an explanatory diagram for describing a method of generating the first motion vector candidate MVC1 and the motion vector MVCs.
The first motion vector candidate generation unit 521 generates one of the first motion vector candidates MVC1 from the motion vector detection range SR of the reference frame Rf1.
[0137]
The motion vector scaling unit 521a multiplies the ratio (T2 / T1) of the display time difference T2 to the display time difference T1 by the first motion vector candidate MVC1 generated as described above to perform scaling on the first motion vector candidate MVC1. Then, motion vectors MVCs are generated.
[0138]
The pixel acquisition unit 523 acquires one block (a block including the pixel Pt1) in the reference frame Rf1 indicated by the first motion vector candidate MVC1, and outputs the acquired block to the interpolation unit 525 as a prediction block PB1.
[0139]
The pixel acquisition unit 524 acquires one block (a block including the pixel Pt2) in the reference frame Rf2 indicated by the motion vector candidate MVCs, and outputs the acquired block to the interpolation unit 525 as a prediction block PB2.
[0140]
The interpolation unit 525 creates an interpolation prediction block PB0 for the encoding target block by performing pixel value interpolation using two pixels having the same relative position in the prediction blocks PB1 and PB2. Output to the subtractor 526.
[0141]
The subtractor 526 calculates the difference between the pixel value of the pixel corresponding to the encoding target block indicated by the image signal Img and the pixel value of the corresponding pixel of the interpolation prediction block PB0, and outputs the result to the motion vector selection unit 527 as the prediction error block RB0. Output.
[0142]
Upon obtaining the prediction error block RB0 from the subtractor 526, the motion vector selection unit 527 calculates a prediction error evaluation value such as SAD or SSD.
Then, the motion vector selection unit 527 selects the first motion vector candidate MVC1 and the motion vector candidate MVCs with the smallest prediction error evaluation value, and determines the selected first motion vector candidate MVC1 as an encoding target based on the reference frame Rf1. Output as the motion vector MV1 of the block.
[0143]
Next, when the contacts of the switches 528 and 529 are switched to the contact 0 side, the motion estimating unit 502 detects the motion vector MV2 having the smallest prediction error evaluation value using the motion vector MV1 detected as described above. .
[0144]
FIG. 15B is an explanatory diagram for describing a method of generating the second motion vector candidate MVC2.
The second motion vector candidate generation unit 522 sequentially generates some second motion vector candidates MVC2 from the motion vector detection range SR2 centered on the position C in the reference frame Rf2 indicated by the scaling of the motion vector MV1.
[0145]
The pixel acquisition unit 523 acquires one block in the reference frame Rf1 indicated by the motion vector MV1 already detected as described above, and outputs the acquired block to the interpolation unit 525 as a prediction block PB1.
[0146]
The pixel acquisition unit 524 acquires one block in the reference frame Rf2 indicated by the second motion vector candidate MVC2, and outputs it to the interpolation unit 525 as a prediction block PB2.
[0147]
The interpolation unit 525 performs the interpolation of the interpolation prediction block PB0 for the encoding target block by performing pixel value interpolation using two pixels having the same relative position in the prediction blocks PB1 and PB2 as described above. And outputs it to the subtractor 526.
[0148]
The subtractor 526 calculates the difference between the pixel value of the pixel corresponding to the encoding target block indicated by the image signal Img and the pixel value of the corresponding pixel of the interpolation prediction block PB0, and outputs the result to the motion vector selection unit 527 as the prediction error block RB0. Output.
[0149]
Upon obtaining the prediction error block RB0 from the subtractor 526, the motion vector selection unit 527 calculates a prediction error evaluation value such as SAD or SSD.
Then, the motion vector selection unit 527 selects the second motion vector candidate MVC2 having the smallest prediction error evaluation value, and assigns the selected second motion vector candidate MVC2 to the motion vector MV2 of the encoding target block based on the reference frame Rf2. Is output as
[0150]
Here, assuming that the motion of the subject is constant between frames, the closer to the position C indicated by the scaling of the already detected motion vector MV1, the higher the probability that the motion vector MV2 exists.
[0151]
Therefore, when detecting the motion vector MV2, the motion estimating unit 502 of the present embodiment sets the motion vector detection range SR2 around the position C, and sets the second motion vector candidate from the motion vector detection range SR2. Since the MVC2 is generated, the motion vector detection range SR2 can be narrowed, and the detection efficiency of the motion vector can be improved. Further, when a technique such as a spiral search is used, the motion vector MV2 can be detected at higher speed.
[0152]
In the present embodiment, after detecting the motion vector MV1, the motion vector MV2 is detected using the fixed motion vector MV1, but the motion vector MV2 detected in this manner is further fixed. And the motion vector MV1 may be detected again. In this case, in a state where the pixel acquisition unit 524 has acquired the fixed motion vector MV2 once detected, the pixel acquisition unit 523 selects the variable first motion vector candidate extracted from the predetermined motion vector detection range. MVC1 is obtained from the first motion vector candidate generation unit 521. Then, the motion vector selection unit 527 detects, as the motion vector MV1, the first motion vector candidate MVC1 having the smallest prediction error evaluation value among the extracted first motion vector candidates MVC1. As a result, a more appropriate motion vector can be detected, and the detection efficiency can be improved.
[0153]
Furthermore, the motion vector MV1 thus detected again may be fixed and used, and the motion vector MV2 may be detected again. Such detection of the motion vector may be repeated any number of times, and may be performed until the number of repetitions reaches a predetermined number, or until the reduction rate of the prediction error evaluation value becomes a predetermined value or less.
[0154]
As described above, in the present embodiment, as in the first or third embodiment, the prediction error evaluation value is calculated based on the result of performing the pixel value interpolation processing. An optimal motion vector can be detected by preventing the prediction error evaluation value from increasing. Further, in the present embodiment, unlike Embodiment 3, since independent motion vectors are used for each reference frame, prediction efficiency can be improved even when the motion is not constant between frames.
[0155]
(Modification)
Next, a modified example of the moving picture coding apparatus 500A according to the present embodiment will be described.
[0156]
FIG. 16 is a block diagram illustrating a configuration of a moving picture coding device 550A according to a modification of the present embodiment.
The moving picture coding apparatus 550A according to this modification includes “1” or “1” according to the difference vector MVd output from the subtractor 510 in addition to the motion estimating section 502 and the motion compensating section 503 of the moving picture coding apparatus 500A. A code generation unit 512 that generates a code Nu indicating “2” and a switch 511 that opens and closes between the subtractor 510 and the variable length coding unit 506a are provided.
[0157]
Upon acquiring the difference vector MVd from the subtractor 510, the code generation unit 512 determines whether or not the difference vector MVd is “0”. If the difference vector MVd is “0”, the code generation unit 512 opens the switch 511 to open the switch 511. The control unit 506a prohibits the 506a from acquiring the difference vector MVd, generates a code Nu indicating "1", and outputs the code Nu to the variable-length coding unit 506a. If the difference vector MVd is not “0”, the code generation unit 512 causes the variable-length coding unit 506a to acquire the difference vector MVd by closing the switch 511, and generates a code Nu indicating “2”. Output to the variable length coding unit 506a.
[0158]
When the code Nu indicates “1”, the variable-length coding unit 506a according to this modification performs variable-length coding on the residual coded signal Er, the motion vector MV1, and the code Nu, and sets the code Nu to “2”. , The residual encoded signal Er, the motion vector MV1, the difference vector MVd, and the code Nu are subjected to variable-length encoding. That is, when the code Nu is “1”, that is, when the difference vector MVd is “0”, the variable-length encoding unit 506a does not encode the difference vector MVd. Then, the variable-length encoding unit 506a outputs the result of the variable-length encoding as described above as an image encoded signal Bs3.
[0159]
FIG. 17 is a conceptual diagram showing the concept of the format of the image coded signal Bs3.
The image coded signal Bs3 includes a frame coded signal Bsf3 having a content indicating a coded frame, and the frame coded signal Bsf3 further includes a block coded signal Bsb3 having a content indicating a coded block. Bsb4 is included. Further, the block coded signal Bsb3 includes a code signal Bsn2 having a content indicating the coded code Nu (2) and a first motion vector coded signal Bs1 having a content indicating the coded motion vector MV1. , A difference vector coded signal Bsd having a content indicating the coded difference vector MVd. Further, the block coded signal Bsb4 includes a code signal Bsn1 having a content indicating the coded code Nu (1) and a first motion vector coded signal Bs1 having a content indicating the coded motion vector MV1. It is.
[0160]
That is, since the difference vector MVd is not “0” for the block indicated by the block coded signal Bsb3, the block coded signal Bsb3 includes the code signal Bsn2 and the difference vector other than the first motion vector coded signal BS1. Since the coded signal Bsd is included and the difference vector MVd is “0” for the block indicated by the block coded signal Bsb4, the block coded signal Bsb4 contains codes other than the first motion vector coded signal BS1. Only the signal Bsn1 is included.
[0161]
Here, since the code Nu indicates “1” or “2”, it is sufficient that the information amount for the code Nu is 1 bit. On the other hand, the information amount for the difference vector MVd requires at least 2 bits when the difference vector MVd is subjected to variable-length coding independently for the horizontal component and the vertical component. In many cases, the motion of the subject in the image is constant in a short time, and thus the difference vector MVd for most of the coding target blocks is “0”.
[0162]
Therefore, in the present modified example, since the image coded signal Bs3 includes a large amount of the block coded signal Bsb4 in which the amount of information is reduced by omitting the difference vector coded signal Bsd, the coding efficiency can be improved. it can.
[0163]
Also, when the difference vector MVd for most of the coding target blocks becomes “0”, the appearance frequency of the value indicated by the code Nu is biased, and the information amount for the code Nu becomes smaller than 1 bit. Therefore, when a motion vector is encoded by a variable length encoding method such as a Huffman code in units of an integer bit, the code Nu is encoded in combination with another type of code, so that the encoding is performed independently as described above. Encoding efficiency can be improved as compared with encoding the code Nu.
[0164]
In this embodiment, the code signals Bsn1 and Bsn2 are stored for each block coded signal. However, the code signals Bsn1 and Bsn2 are not stored for each block coded signal but in units larger than a block, such as an MPEG macro block or slice. The code signals Bsn1 and Bsn2 may be stored for each signal indicating the content of the encoded image. As a result, the code signals Bsn1 and Bsn2 can be reduced, and the coding efficiency can be further improved.
[0165]
As described above, according to the present modification, by storing information of the code signal Bsn1 in the image coded signal Bs3 and omitting the differential vector coded signal Bsd, the amount of information can be reduced, and the coding efficiency can be reduced. Can be improved.
[0166]
(Embodiment 6)
Hereinafter, a video decoding device according to the sixth embodiment of the present invention will be described with reference to the drawings.
[0167]
FIG. 18 is a block diagram illustrating a configuration of a video decoding device 550B according to the present embodiment.
The moving picture decoding apparatus 550B of the present embodiment decodes a moving picture encoded by the moving picture coding apparatus 550A according to the modification of the fifth embodiment, and includes a variable length decoding unit 536. , A motion vector scaling unit 537, a motion compensation unit 533, an image decoding unit 535, a multi-frame buffer 531, adders 539 and 540, and a switch 541.
[0168]
Here, the image decoding unit 535, the motion compensation unit 533, the multi-frame buffer 531 and the adders 539 and 540 in the present embodiment are the same as the image decoding unit 905 and the motion compensation in the moving image decoding apparatus 900 shown in the conventional example. The section 903, the multi-frame buffer 901, and the adders 909 and 910 have the same functions and configurations, respectively, and thus description thereof is omitted.
[0169]
The variable-length decoding unit 536 in the present embodiment obtains the image coded signal Bs3 and performs variable-length decoding. When the code Nu indicates “1”, the code Nu and the residual coded signal Er When the code Nu indicates "2", the code Nu, the residual coded signal Er, the motion vector MV1, and the difference vector MVd are output.
[0170]
The switch 541 opens and closes between the variable length decoding unit 536 and the adder 540 according to the code Nu from the variable length decoding unit 536. That is, when the code Nu indicates “1”, the switch 541 is opened to inhibit the output of the difference vector MVd from the variable length decoding unit 536 to the adder 540, and when the code Nu indicates “2”, the switch 541 is opened. 541 is closed, and the output of the difference vector MVd from the variable length decoding unit 536 to the adder 540 is permitted.
[0171]
As a result, when the switch 541 is opened, the adder 40 acquires only the motion vector MVs generated by the motion vector scaling unit 537, and outputs the motion vector MVs to the motion compensation unit 533 as the motion vector MV2. When the switch 541 is closed, the adder 40 acquires the motion vector MVs generated by the motion vector scaling unit 537 and the difference vector MVd output from the variable length decoding unit 536. The difference vector MVd is added to MVs, and the result of the addition is output to the motion compensation unit 533 as a motion vector MV2.
[0172]
Accordingly, in the present embodiment, if information including the difference vector MVd is included in the decoded image signal Bs3, the motion vector MVs subjected to the scaling process is added to the difference vector MVd to obtain the motion vector MV2. Is generated, and if the decoded image signal Bs3 does not include information including the difference vector MVd, the motion vector MV2 subjected to the scaling process is used as the motion vector MV2, thereby generating the motion vector MV2.
[0173]
Therefore, according to the present embodiment, it is possible to correctly decode information relating to a motion vector coded by moving image coding apparatus 550A according to the modification of Embodiment 5, and as a result, to accurately decode a moving image. Can be.
[0174]
(Embodiment 7)
By the way, in the motion vector encoding method of the moving image encoding device 800 shown in the conventional example, scaling is performed on the motion vector MV1, but information regarding the display time differences T1 and T2 necessary for performing scaling is stored in a multi-frame buffer. In some cases, the motion vector cannot be obtained. In such a case, there is a problem that the motion vector cannot be encoded. Even if information about the display time differences T1 and T2 can be obtained from the multi-frame buffer 801, if at least one of the display time differences T1 and T2 is very large, it does not make sense to perform scaling, and the motion vector However, there is a problem that the coding efficiency is reduced.
[0175]
That is, two types of areas, a short-time memory and a long-term memory, are secured in the multi-frame buffer 800, and a frame may be recorded in the long-term memory in a state where information on the display time is omitted. Yes, scaling cannot be performed when such a frame is read as a reference frame. In addition, a frame having a very large display time difference from the encoding target frame may be recorded in the long-term memory, and when such a frame is read as a reference frame, insignificant scaling is performed. It is done.
[0176]
Therefore, the moving picture coding apparatus according to the seventh embodiment of the present invention is characterized in that a moving vector is coded so as to increase coding efficiency by avoiding meaningless scaling.
[0177]
Hereinafter, a video encoding device according to the seventh embodiment of the present invention will be described with reference to the drawings.
FIG. 19 is a block diagram illustrating a configuration of a moving picture coding apparatus 100 according to the present embodiment.
[0178]
The moving picture coding apparatus 100 according to the present embodiment includes a multi-frame buffer 101, a motion estimating section 102, a motion compensating section 103, an image coding section 104, an image decoding section 105, and a variable length coding section 106. , A motion vector scaling unit 107, adders 108 and subtractors 109 and 110, switches 111, 112 and 113, and a determination unit 114.
[0179]
When encoding each block of the encoding target frame Tf indicated by the image signal Img, the moving image encoding apparatus 100 refers to the two reference frames Rf1 and Rf2 to perform processing on the reference frames Rf1 and Rf2. The information on the motion vectors MV1 and MV2 of the current block and the information based on the predicted images predicted from the reference frames Rf1 and Rf2 and the motion vectors MV1 and MV2 are encoded.
[0180]
Here, also in the present embodiment, as in Embodiment 1, each of reference frames Rf1 and Rf2 may be temporally forward or backward with respect to encoding target frame Tf.
[0181]
As illustrated in (a) of FIG. 2, the video encoding device 100 may refer to frames located in front of the encoding target frame Tf as reference frames Rf1 and Rf2, and refer to (b) of FIG. 2), a frame located behind the encoding target frame Tf may be referred to as reference frames Rf1 and Rf2. Further, as shown in (c) of FIG. One frame located ahead may be referred to as a reference frame Rf2, and one frame located behind the encoding target frame Tf may be referred to as a reference frame Rf1.
[0182]
The switches 111 and 112 switch their contact points 0 and 1 in accordance with two frames (reference frames Rf1 and Rf2) referred to for each encoding target block. For example, when the reference frame Rf1 is referred to, the switches 111 and 112 respectively connect the contact 0 to the motion estimating unit 102, and when the reference frame Rf2 is referred to, the switches 111 and 112 respectively move the contact 1 to the motion estimation unit 102. Connect to the unit 102.
[0183]
The motion estimating unit 102 calculates the motion vectors MV1 and MV2 for the block in the encoding target frame Tf indicated by the image signal Img based on each of the reference frames Rf1 and Rf2 read from the multi-frame buffer 101. The motion estimation unit 302 of the first embodiment, the motion estimation unit 402 of the third embodiment, or the motion estimation unit 502 of the fifth embodiment detects the motion.
[0184]
The motion compensation unit 103 extracts from the multi-frame buffer 101 the block at the position indicated by the motion vector MV1 in the reference frame Rf1 and the block at the position indicated by the motion vector MV2 in the reference frame Rf2. Then, the motion compensation unit 103 performs a pixel interpolation process based on these blocks to generate a predicted image signal Pre, and outputs this.
[0185]
The subtractor 109 subtracts the predicted image signal Pre from the image signal Img and outputs a residual signal Res.
The image coding unit 104 obtains the residual signal Res, performs image coding processing such as DCT transform / quantization, and outputs a residual coded signal Er including quantized DCT coefficients and the like.
[0186]
The image decoding unit 105 acquires the residual coded signal Er, performs image decoding processing such as inverse quantization and inverse DCT transform, and outputs a residual decoded signal Dr.
The adder 108 adds the residual decoded signal Dr and the prediction image signal Pre to output a reconstructed image signal Rc.
[0187]
The multi-frame buffer 101 stores a signal that may be referred to in inter-frame prediction among the reconstructed image signals Rc.
FIG. 20 is a configuration diagram showing a schematic configuration of a memory for storing the above signals in the multi-frame buffer 101.
[0188]
As shown in FIG. 20, the multi-frame buffer 101 secures a short-term memory 101s and a long-term memory 101l, and a frame indicated by the reconstructed image signal Rc is appropriately stored in the short-term memory 101s and the long-term memory 101l. Stored separately.
[0189]
The short-time memory 101s is a first-in first-out (FIFO) memory. When a new signal is recorded in the short-time memory 101s, the recorded contents are discarded from the oldest recorded time, and the short-time memory 101s is stored in the short-time memory 101s. An image of the latest fixed number of frames is always stored. When a frame indicated by the reconstructed image signal Rc is recorded in the short-time memory 101s, it is recorded together with information on the display time of the frame.
[0190]
The long-term memory 1011 is a memory of a random access method, and has a configuration in which a frame can be stored in an arbitrary area and a frame stored in an arbitrary area can be read. The long-time memory 101l stores an image that is mainly referred to over a long period of time, such as a background image or an image before scene insertion, and stores frames longer than the short-time memory 101s. The storage of the frames in the long-term memory 101l is performed in such a manner that the data stored in the short-term memory 101s moves to the long-term memory 101l.
[0191]
Further, when the frame indicated by the reconstructed image signal Rc is recorded in the long-time memory 101l, the frame is recorded together with the information on the display time of the frame, or is recorded with the information on the time omitted.
[0192]
Further, the multi-frame buffer 101 according to the present embodiment includes a notifying unit 115, and the notifying unit 115 reads the reference frames Rf1 and Rf2 read by the motion estimating unit 102 via the switch 111 from the short-time memory 101s. A notification signal Inf is output to notify whether the data has been read or read from the memory 101l for a long time.
[0193]
FIG. 21 is a state diagram showing a state of a frame stored in the multi-frame buffer 101.
The frame fs1, the frame fs2, the frame fs3,... Are sequentially stored in the short-time memory 101s with the passage of time, and the long-term memory 101l is referred to later among the frames stored in the short-time memory 101s. Potential frames fl1 and fl2 are stored in order.
[0194]
Here, when the frame fs2 stored in the short-time memory 101s is read out from the multi-frame buffer 101 as the reference frame Rf1, as shown in (a) of FIG. 21, the notification unit 115 of the multi-frame buffer 101 It outputs a notification signal Inf of a content notifying that the frame has been read from the short-time memory 101s. When the frame fl2 stored in the long-term memory 101l is read from the multi-frame buffer 101 as the reference frame Rf2, the notification unit 115 of the multi-frame buffer 101 indicates that the frame has been read from the long-term memory 101l. Is output.
[0195]
Similarly, as shown in FIG. 21B, when the frames fl1 and fl2 stored in the long-time memory 101l are read from the multi-frame buffer 101 as the reference frames Rf1 and Rf2, respectively, the multi-frame buffer 101 The notification unit 115 outputs a notification signal Inf having a content indicating that a frame has been read from the long-time memory 101l every time the frames fl1 and fl2 are read.
[0196]
The determination unit 114 acquires the notification signal Inf from the notification unit 115, and determines whether at least one of the reference frames Rf1 and Rf2 referenced for each encoding target block has been read from the long-time memory 101l. Is determined. Then, the determination unit 114 outputs a switching signal si1 for instructing switching of the contact point of the switch 113 based on the determination result.
[0197]
The switch 113 switches an output destination of the motion vector MV1 of the motion estimating unit 102 to the motion vector scaling unit 107 and the subtractor 110 by switching a contact according to the above-described switching signal si1.
[0198]
That is, when the determination unit 114 determines that the reference frames Rf1 and Rf2 have been read from the short-time memory 101s, the switching signal instructing the output destination of the switch 113 to the motion vector scaling unit 107 When the output of the switch 113 is determined to be at least one of the reference frames Rf1 and Rf2 from the memory 101l for a long time, the switch 113 instructs the output destination of the switch 113 to be the subtractor 110. Output si1.
[0199]
The motion vector scaling unit 107 calculates the display time difference T1 between the encoding target frame Tf and the reference frame Rf1, and the display time difference T2 between the encoding target frame Tf and the reference frame Rf2, as in the operation described with reference to FIG. Based on this, the motion vector MV1 is scaled, and the resulting motion vector MVs is output.
[0200]
When the output destination of the switch 113 is set to the motion vector scaling unit 107, the subtractor 110 calculates the difference between the motion vector MV 2 obtained from the motion estimation unit 102 and the motion vector MVs obtained from the motion vector scaling unit 107. The difference is obtained, and a difference vector MVd indicating the result is output.
[0201]
When the subtractor 110 is set as the output destination of the switch 113, the subtractor 110 replaces the motion vector MVs from the motion vector scaling unit 107 with the motion vector obtained from the motion estimating unit 102 via the switch 113. Using MV1, a difference between the motion vector MV2 and the motion vector MV1 is obtained, and the difference result is output as a difference vector MVd.
[0202]
FIG. 22 is an explanatory diagram for explaining how the difference vector MVd is created.
As shown in FIG. 22, when the subtractor 110 acquires the motion vector MV1 instead of the motion vector MVs, the subtractor 110 calculates a difference between the motion vector MV2 and the motion vector MV1, and creates a difference vector MVd.
[0203]
The variable-length coding unit 106 performs variable-length coding on the difference vector MVd, the motion vector MV1, and the residual coded signal Er, and outputs the coded result as an image coded signal Bs.
[0204]
A series of motion vector coding operations of the moving picture coding apparatus 100 according to the present embodiment will be described with reference to FIG.
FIG. 23 is a flowchart showing a series of operations for encoding a motion vector.
[0205]
First, the determination unit 114 of the video encoding device 100 determines whether at least one of the reference frames Rf1 and Rf2 has been read from the long-time memory 1011 based on the notification signal Inf (step S101).
[0206]
When the determination unit 114 determines that the two frames of the reference frames Rf1 and Rf2 have been read from the short-time memory 101s (N in step S101), the output destination of the switch 113 is set to the motion vector scaling unit 107. To switch the contact of the switch 113. As a result, the motion vector scaling unit 107 creates the motion vector MVs by acquiring the motion vector MV1 and scaling it (step S102). Then, the subtractor 110 acquires the created motion vector MVs.
[0207]
On the other hand, when the determination unit 114 determines that at least one of the reference frames Rf1 and Rf2 has been read from the long-time memory 101l (Y in step S101), the output destination of the switch 113 is set to the subtractor 110. The contact of the switch 113 is switched. As a result, the subtractor 110 treats the motion vector MV1 obtained from the motion estimating unit 102 via the switch 113 as the motion vector MVs output from the motion vector scaling unit 107 (step S103).
[0208]
Next, the subtractor 110 calculates a difference between the motion vector MV2 and the above-described motion vector MVs, and outputs a difference vector MVd indicating the difference result to the variable-length encoding unit 106 (Step S104).
[0209]
Then, the variable length coding unit 106 performs variable length coding on the motion vector MV1 obtained from the motion estimating unit 102 (step S105), and performs variable length coding on the difference vector MVd obtained from the subtractor 110 (step S106). ).
[0210]
As described above, in the present embodiment, when at least one of the two reference frames Rf1 and Rf2 is read from the long-time memory 101l, the motion vector scaling unit 107 does not perform scaling. Even when the information is recorded in the memory 101l for a long time, it is possible to omit the execution of insignificant scaling using the information and improve the coding efficiency of the motion vector. Further, when the information regarding the display time of the frame is not recorded in the memory 101l for a long time, the execution of the unreasonable scaling can be omitted, and the coding efficiency of the motion vector can be improved.
[0211]
In this embodiment, scaling of the motion vector scaling unit 107 is performed or not performed by switching the switch 113. However, the configuration shown in FIG. Alternatively, when at least one of the two reference frames Rf1 and Rf2 is read from the long-time memory 101l, the motion vector scaling unit 107 may not always perform scaling.
[0212]
In the present embodiment, when at least one of the two reference frames Rf1 and Rf2 is read from the long-term memory 101l, the motion vector MV1 and the difference vector MVd are encoded. Instead, the motion vectors MV1 and MV2 may be encoded. This means that when at least one of the two reference frames Rf1 and Rf2 is read from the long-term memory 101l, the motion vector MV2 is encoded instead of encoding the difference vector MVd. In this case, the prediction values of the motion vectors MV1 and MV2 are further calculated from peripheral blocks around the current block, and the difference between the prediction values of the motion vectors MV1 and MV2 is calculated. May be.
[0213]
Further, in the present embodiment, the notification unit 115 is provided in the multi-frame buffer 101;
[0214]
(Embodiment 8)
Hereinafter, a video decoding device according to the eighth embodiment of the present invention will be described with reference to the drawings.
[0215]
FIG. 24 is a block diagram illustrating a configuration of a video decoding device 200 according to the present embodiment.
The moving picture decoding apparatus 200 according to the present embodiment decodes a moving picture encoded by the moving picture coding apparatus 100 according to the seventh embodiment, and includes a variable length decoding unit 206, a motion vector It includes a scaling unit 207, a motion compensation unit 203, an image decoding unit 204, a multi-frame buffer 201, a determination unit 214, adders 209 and 210, and a switch 213.
[0216]
The variable length decoding unit 206 obtains the coded image signal Bs, performs variable length decoding, and outputs the coded residual signal Er, the motion vector MV1, and the difference vector MVd.
[0219]
The image decoding unit 204 acquires the residual coded signal Er, performs image decoding processing such as inverse quantization and inverse DCT, and outputs a residual decoded signal Dr.
Similar to the motion compensation unit 103 of the first embodiment, the motion compensation unit 203 determines the block at the position indicated by the motion vector MV1 in the reference frame Rf1 and the block at the position indicated by the motion vector MV2 in the reference frame Rf2. , From the multi-frame buffer 201. Then, the motion compensation unit 203 creates a predicted image signal Pre by performing pixel interpolation processing based on these blocks, and outputs this.
[0218]
The adder 209 adds the predicted image signal Pre from the motion compensation unit 203 and the residual decoded signal Dr from the image decoding unit 204, and outputs the result as a decoded image signal Di.
[0219]
When acquiring the motion vector MV1 output from the variable length decoding unit 206, the motion vector scaling unit 207 obtains the display time difference between the encoding target frame Tf and the reference frame Rf1 similarly to the motion vector scaling unit 107 of the seventh embodiment. Based on T1 and the display time difference T2 between the encoding target frame Tf and the reference frame Rf2, the motion vector MV1 is scaled, and the resulting motion vector MVs is output.
[0220]
The multi-frame buffer 201 stores a signal of the decoded image signal Di that may be referred to in inter-frame prediction. Further, in the multi-frame buffer 201, a short-term memory 201s and a long-term memory 201l having the same function and configuration as the short-term memory 101s and the long-term memory 101l of the multi-frame buffer 101 of the seventh embodiment are secured. Have been. That is, the frame indicated by the decoded image signal Di is appropriately separated and stored in the short-time memory 201s and the long-time memory 201l.
[0221]
Further, the multi-frame buffer 201 includes a notifying unit 215 having the same function and configuration as the notifying unit 115 of the multi-buffer frame 101 according to the seventh embodiment. That is, the notification unit 215 notifies the content that notifies whether the reference frames Rf1 and Rf2 read by the motion compensation unit 203 are read from the short-time memory 201s or read from the long-time memory 201l. The signal Inf is output.
[0222]
The determination unit 214 has the same function and configuration as the determination unit 114 of the seventh embodiment, acquires the notification signal Inf from the notification unit 215, and refers to the reference frames Rf1 and Rf2 referenced for each encoding target block. It is determined whether at least one of them has been read from the memory 201l for a long time. Then, the determination unit 214 outputs a switching signal si1 for instructing switching of the contact point of the switch 213 based on the determination result.
[0223]
The switch 213 switches the output destination of the motion vector MV1 acquired from the variable length decoding unit 206 to the motion vector scaling unit 207 and the adder 210 by switching the contact according to the above-described switching signal si1.
[0224]
That is, when the determination unit 214 determines that the reference frames Rf1 and Rf2 have been read from the short-time memory 201s, the switching signal that instructs the output destination of the switch 213 to the motion vector scaling unit 207. When the switch 213 outputs si1 and determines that at least one of the reference frames Rf1 and Rf2 has been read from the memory 201l for a long time, the switch 213 instructs the adder 210 to output to the switch 213. Output si1.
[0225]
When the output destination of the switch 213 is set to the motion vector scaling unit 207, the adder 210 compares the motion vector MVd obtained from the variable length decoding unit 206 with the motion vector MVs obtained from the motion vector scaling unit 207. And outputs a motion vector MV2 indicating the result to the motion compensation unit 203.
[0226]
When the adder 210 itself is set as the output destination of the switch 213, the adder 210 is obtained from the variable length decoding unit 206 via the switch 213 instead of the motion vector MVs from the motion vector scaling unit 207. Using the motion vector MV1, the motion vector MVd and the motion vector MV1 are added, and the result is output to the motion compensation unit 203 as a motion vector MV2.
[0227]
A series of operations for decoding a motion vector of the moving picture decoding apparatus 200 according to the present embodiment will be described with reference to FIG.
FIG. 25 is a flowchart showing a series of operations for decoding a motion vector.
[0228]
First, the variable-length decoding unit 206 of the video decoding device 200 obtains the coded image signal Bs and performs variable-length decoding, thereby decoding the motion vector MV1 (Step S201) and converting the difference vector MVd. The decryption is performed (step S202).
[0229]
Next, the determination unit 214 determines whether at least one of the reference frames Rf1 and Rf2 has been read from the long-term memory 201l based on the notification signal Inf (step S203).
[0230]
When the determination unit 214 determines that the two frames of the reference frames Rf1 and Rf2 have been read from the short-time memory 201s (N in step S203), the output destination of the switch 213 is set to the motion vector scaling unit 207. Switch the contact of the switch 213. As a result, the motion vector scaling unit 207 generates the motion vector MVs by acquiring the motion vector MV1 and performing scaling on the motion vector MV1 (step S204). Then, the adder 210 acquires the created motion vector MVs.
[0231]
On the other hand, when the determining unit 214 determines that at least one of the reference frames Rf1 and Rf2 has been read from the long-term memory 201l (Y in step S203), the output destination of the switch 213 is set to the adder 210. The contact of the switch 213 is switched. As a result, the adder 210 treats the motion vector MV1 obtained from the variable length decoding unit 206 via the switch 213 as the motion vector MVs output from the motion vector scaling unit 107 (Step S205).
[0232]
Then, the adder 210 adds the motion vector MVs to the difference vector MVd, and outputs a motion vector MV2 indicating the result of the addition to the motion compensation unit 203 (Step S206).
[0233]
Thus, in the present embodiment, as in Embodiment 7, when at least one of the two reference frames Rf1 and Rf2 is read from the long-term memory 201l, the motion vector scaling unit 207 does not perform scaling. Even when information on the display time of a frame is recorded in the memory 201l for a long time, it is possible to omit execution of insignificant scaling using the information and to improve the efficiency of decoding a motion vector. it can. Further, when the information about the display time of the frame is not recorded in the memory 201l for a long time, it is possible to omit execution of unreasonable scaling and to improve the efficiency of decoding the motion vector.
[0234]
In the present embodiment, scaling of the motion vector scaling unit 207 is performed by switching the switch 213 or scaling is not performed. However, without providing the switch 213, the two reference frames Rf1, When at least one of Rf2 is read from the memory 201l for a long time, the motion vector scaling unit 207 may not always perform scaling.
[0235]
In the present embodiment, when at least one of the two reference frames Rf1 and Rf2 is read from the long-term memory 201l, the motion vector MV2 is derived by adding the difference vector MVd to the motion vector MV1. , The motion vector MV2 may be directly decoded without adding. This means that when at least one of the two reference frames Rf1 and Rf2 is read from the long-term memory 201l, the motion vector MV2 is decoded instead of decoding the difference vector MVd. . In this case, when each of the motion vectors MV1 and MV2 is coded by subtracting the predicted value of the motion vector MV1 or MV2 obtained from a peripheral block around the decoding target block, The motion vectors MV1 and MV2 may be decoded by adding the calculated motion vectors MV1 and MV2 and the above-described predicted values.
[0236]
Further, in the present embodiment, the notification unit 215 is provided in the multi-frame buffer 201, but may be provided in a component other than the multi-frame buffer 201, or the notification unit 215 may be provided alone.
[0237]
The frames described in the first to eighth embodiments may be fields. The frame and the field are collectively called a picture.
As described above, the first to eighth embodiments are used for the motion vector detection method according to the present invention, the motion vector encoding method using the method, the motion vector decoding method, and the apparatus using these methods. Although the present invention has been described, the present invention is not limited to Embodiments 1 to 8, and it goes without saying that the present invention can be realized in other forms.
[0238]
(Embodiment 9)
Further, by recording a program for realizing the motion vector detecting method, the motion vector encoding method, and the motion vector decoding method described in each of the above embodiments on a storage medium such as a flexible disk, The processing described in each embodiment can be easily performed by an independent computer system.
[0239]
FIG. 26 is an explanatory diagram of a storage medium that stores a program for realizing a motion vector detection method, a motion vector encoding method, and a motion vector decoding method according to Embodiments 1 to 8 by a computer system.
[0240]
26B shows the appearance, cross-sectional structure, and disk main body FD1 of the flexible disk FD viewed from the front, and FIG. 26A shows the physical format of the disk main body FD1, which is the main body of the recording medium. An example is shown.
[0241]
The disk main body FD1 is built in the case F, and a plurality of tracks Tr are formed concentrically on the surface of the disk main body FD1 from the outer periphery toward the inner periphery, and each track is divided into 16 sectors Se in an angular direction. Have been. Therefore, in the flexible disk FD storing the program, the motion vector encoding method and the motion vector decoding method as the program are recorded in the area allocated on the disk body FD1.
[0242]
FIG. 26C shows a configuration for recording and reproducing the program on the flexible disk FD.
When recording the program on the flexible disk FD, the computer system Cs writes the motion vector encoding method or the motion vector decoding method as the program via the flexible disk drive FDD. When the motion vector encoding method or the motion vector decoding method is constructed in the computer system Cs by a program in the flexible disk FD, the program is read from the flexible disk FD by the flexible disk drive FDD, and the computer system Cs Will be forwarded to
[0243]
In the above description, the description has been made using the flexible disk FD as the recording medium, but the same can be done using an optical disk. Further, the recording medium is not limited to this, and the present invention can be similarly implemented as long as the program can be recorded, such as an IC card or a ROM cassette.
[0244]
(Embodiment 10)
Further, here, application examples of the motion vector detection method, the motion vector encoding method, and the motion vector decoding method described in the above embodiment and a system using the same will be described.
[0245]
FIG. 27 is a block diagram illustrating an overall configuration of a content supply system ex100 that realizes a content distribution service. A communication service providing area is divided into desired sizes, and base stations ex107 to ex110, which are fixed wireless stations, are installed in each cell.
[0246]
The content supply system ex100 includes, for example, a computer ex111, a PDA (personal digital assistant) ex112, a camera ex113, a mobile phone ex114, and a camera via the Internet ex101 via the Internet service provider ex102 and the telephone network ex104, and the base stations ex107 to ex110. Each device such as a mobile phone ex115 with a tag is connected.
[0247]
However, the content supply system ex100 is not limited to the combination as shown in FIG. 27, and may be connected in any combination. Further, each device may be directly connected to the telephone network ex104 without going through the base stations ex107 to ex110 which are fixed wireless stations.
[0248]
The camera ex113 is a device such as a digital video camera capable of shooting moving images. In addition, a mobile phone is a PDC (Personal Digital Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access mobile phone system, or a GSM communication system). Or PHS (Personal Handyphone System) or the like.
[0249]
The streaming server ex103 is connected from the camera ex113 to the base station ex109 and the telephone network ex104, and enables live distribution and the like based on encoded data transmitted by the user using the camera ex113. The encoding process of the photographed data may be performed by the camera ex113, or may be performed by a server or the like that performs the data transmission process. Also, moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111. The camera ex116 is a device such as a digital camera that can shoot still images and moving images. In this case, encoding of the moving image data may be performed by the camera ex116 or the computer ex111. The encoding process is performed by the LSI ex117 of the computer ex111 and the camera ex116. It should be noted that the image encoding / decoding software may be incorporated in any storage medium (a CD-ROM, a flexible disk, a hard disk, or the like) that is a recording medium readable by the computer ex111 or the like. Further, the moving image data may be transmitted by the mobile phone with camera ex115. The moving image data at this time is data encoded by the LSI included in the mobile phone ex115.
[0250]
In the content supply system ex100, the content (for example, a video image of a live music) captured by the user with the camera ex113, the camera ex116, and the like is encoded and transmitted to the streaming server ex103 as in the above-described embodiment. On the other hand, the streaming server ex103 stream-distributes the content data to the requesting client. Examples of the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, and the like, which can decode the encoded data. In this way, the content supply system ex100 can receive and reproduce the encoded data at the client, and further, realizes personal broadcast by receiving, decoding, and reproducing the data in real time at the client. It is a system that becomes possible.
[0251]
The encoding and decoding of each device constituting this system may be performed using the video encoding device or the video decoding device described in each of the above embodiments.
A mobile phone will be described as an example.
[0252]
FIG. 28 is a diagram illustrating the mobile phone ex115 using the motion vector detection method, the motion vector encoding method, and the motion vector decoding method described in the above embodiment. The mobile phone ex115 includes an antenna ex201 for transmitting and receiving radio waves to and from the base station ex110, a camera unit ex203 capable of taking a picture such as a CCD camera, a still image, a picture taken by the camera unit ex203, and an antenna ex201. A display unit ex202 such as a liquid crystal display for displaying data obtained by decoding a received video or the like, a main unit including operation keys ex204, an audio output unit ex208 such as a speaker for outputting audio, and audio input. Input unit ex205 such as a microphone for storing encoded or decoded data, such as data of captured moving images or still images, received mail data, moving image data or still image data, etc. Of recording media ex207 to mobile phone ex115 And a slot portion ex206 to ability. The recording medium ex207 stores a flash memory device, which is a kind of electrically erasable and programmable read only memory (EEPROM), which is a nonvolatile memory that can be electrically rewritten and erased, in a plastic case such as an SD card.
[0253]
Further, the mobile phone ex115 will be described with reference to FIG. The mobile phone ex115 is provided with a power supply circuit unit ex310, an operation input control unit ex304, an image encoding unit, and a main control unit ex311 which controls the respective units of a main body unit including a display unit ex202 and operation keys ex204. Unit ex312, camera interface unit ex303, LCD (Liquid Crystal Display) control unit ex302, image decoding unit ex309, demultiplexing unit ex308, recording / reproducing unit ex307, modulation / demodulation circuit unit ex306, and audio processing unit ex305 via the synchronous bus ex313. Connected to each other.
[0254]
When the end of the call and the power key are turned on by a user operation, the power supply circuit unit ex310 supplies power to each unit from the battery pack to activate the digital cellular phone with camera ex115 in an operable state. .
[0255]
The mobile phone ex115 converts a sound signal collected by the sound input unit ex205 into digital sound data by the sound processing unit ex305 in the voice call mode based on the control of the main control unit ex311 including a CPU, a ROM, a RAM, and the like. This is spread-spectrum-processed by a modulation / demodulation circuit unit ex306, subjected to digital-analog conversion processing and frequency conversion processing by a transmission / reception circuit unit ex301, and then transmitted via an antenna ex201. The mobile phone ex115 amplifies received data received by the antenna ex201 in the voice communication mode, performs frequency conversion processing and analog-to-digital conversion processing, performs spectrum despreading processing in the modulation / demodulation circuit unit ex306, and performs analog voice decoding in the voice processing unit ex305. After being converted into data, this is output via the audio output unit ex208.
[0256]
Further, when an e-mail is transmitted in the data communication mode, text data of the e-mail input by operating the operation key ex204 of the main body is sent to the main control unit ex311 via the operation input control unit ex304. The main control unit ex311 performs spread spectrum processing on the text data in the modulation / demodulation circuit unit ex306, performs digital / analog conversion processing and frequency conversion processing in the transmission / reception circuit unit ex301, and transmits the data to the base station ex110 via the antenna ex201.
[0257]
When transmitting image data in the data communication mode, the image data captured by the camera unit ex203 is supplied to the image encoding unit ex312 via the camera interface unit ex303. When image data is not transmitted, image data captured by the camera unit ex203 can be directly displayed on the display unit ex202 via the camera interface unit ex303 and the LCD control unit ex302.
[0258]
The image encoding unit ex312 includes the image encoding device described in the present invention, and uses the image data supplied from the camera unit ex203 in the image encoding device described in the above embodiment. The image data is converted into encoded image data by compression encoding, and is transmitted to the demultiplexing unit ex308. At this time, the mobile phone ex115 simultaneously transmits the audio collected by the audio input unit ex205 during imaging by the camera unit ex203 to the demultiplexing unit ex308 as digital audio data via the audio processing unit ex305.
[0259]
The demultiplexing unit ex308 multiplexes the encoded image data supplied from the image encoding unit ex312 and the audio data supplied from the audio processing unit ex305 by a predetermined method, and multiplexes the resulting multiplexed data into a modulation / demodulation circuit unit. The signal is subjected to spread spectrum processing in ex306 and subjected to digital-analog conversion processing and frequency conversion processing in the transmission / reception circuit unit ex301, and then transmitted via the antenna ex201.
[0260]
When data of a moving image file linked to a homepage or the like is received in the data communication mode, the data received from the base station ex110 via the antenna ex201 is subjected to spectrum despreading processing by the modulation / demodulation circuit unit ex306, and the resulting multiplexed data The demultiplexed data is sent to the demultiplexing unit ex308.
[0261]
To decode the multiplexed data received via the antenna ex201, the demultiplexing unit ex308 separates the multiplexed data into a bit stream of image data and a bit stream of audio data, and performs synchronization. The coded image data is supplied to the image decoding unit ex309 via the bus ex313 and the audio data is supplied to the audio processing unit ex305.
[0262]
Next, the image decoding unit ex309 is configured to include the image decoding device described in the present invention, and decodes a bit stream of image data by a decoding method corresponding to the encoding method described in the above embodiment. By doing so, reproduced moving image data is generated and supplied to the display unit ex202 via the LCD control unit ex302, whereby, for example, moving image data included in a moving image file linked to a homepage is displayed. At this time, the audio processing unit ex305 simultaneously converts the audio data into analog audio data and supplies the analog audio data to the audio output unit ex208, whereby the audio data included in the moving image file linked to the homepage is reproduced, for example. You.
[0263]
It should be noted that the present invention is not limited to the example of the system described above, and digital broadcasting using satellites and terrestrial waves has recently become a hot topic. As shown in FIG. Any of the decoding devices can be incorporated. Specifically, at the broadcasting station ex409, the bit stream of the video information is transmitted to the communication or the broadcasting satellite ex410 via radio waves. The broadcasting satellite ex410 receiving this transmits a radio wave for broadcasting, receives this radio wave with a home antenna ex406 having a satellite broadcasting receiving facility, and transmits the radio wave to a television (receiver) ex401 or a set-top box (STB) ex407 or the like. The device decodes the bit stream and reproduces it. Further, the image decoding device described in the above embodiment can also be mounted on a reproducing device ex403 that reads and decodes a bit stream recorded on a storage medium ex402 such as a CD or DVD, which is a recording medium. In this case, the reproduced video signal is displayed on the monitor ex404. Further, a configuration is also conceivable in which an image decoding device is mounted in a set-top box ex407 connected to a cable ex405 for cable television or an antenna ex406 for satellite / terrestrial broadcasting, and this is reproduced on a monitor ex408 of the television. At this time, the image decoding device may be incorporated in the television instead of the set-top box. In addition, a car ex412 having an antenna ex411 can receive a signal from the satellite ex410 or a base station ex107 or the like, and can reproduce a moving image on a display device such as a car navigation ex413 included in the car ex412.
[0264]
Further, an image signal can be encoded by the image encoding device described in the above embodiment and recorded on a recording medium. Specific examples include a recorder ex420 such as a DVD recorder that records an image signal on a DVD disc ex421 and a disc recorder that records on a hard disk. Furthermore, it can be recorded on the SD card ex422. If the recorder ex420 includes the image decoding device described in the above embodiment, the image signal recorded on the DVD disc ex421 or the SD card ex422 can be reproduced and displayed on the monitor ex408.
[0265]
The configuration of the car navigation system ex413 may be, for example, the configuration shown in FIG. 29 except for the camera unit ex203, the camera interface unit ex303, and the image encoding unit ex312. ) Ex401 and the like can also be considered.
[0266]
In addition, terminals such as the mobile phone ex114 and the like have three mounting formats, in addition to a transmitting / receiving terminal having both an encoder and a decoder, a transmitting terminal having only an encoder and a receiving terminal having only a decoder. Can be considered.
[0267]
As described above, the motion vector detecting method, the encoding method, and the decoding method described in the above embodiment can be used in any of the devices and systems described above, and by doing so, the description in the above embodiment can be made. The effect obtained can be obtained.
[0268]
Further, the present invention is not limited to the above embodiment, and various changes or modifications can be made without departing from the scope of the present invention.
[0269]
【The invention's effect】
As is apparent from the above description, according to the motion vector detection method according to the present invention, a motion vector detection method for detecting a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image A first candidate generating step of generating a first motion vector candidate based on a first reference picture of the detection target block, and a second motion vector based on a second reference picture of the detection target block A second candidate generating step of generating a candidate, a first prediction block indicated by a first motion vector candidate in the first reference picture, and a second motion vector candidate in the second reference picture. An interpolation step for creating an interpolation prediction block by interpolating pixel values of pixels corresponding to each other based on the second prediction block. A calculating step of calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the interpolation prediction block and the detection target block; and a calculating step of generating the first candidate based on the evaluation value. Selecting one from among the plurality of first motion vector candidates and selecting one from among the plurality of second motion vector candidates generated in the second candidate generating step; The selected first motion vector candidate is detected as a first motion vector based on the first reference picture in the detection target block, and the selected second motion vector candidate is detected by the detection target block. And detecting as a second motion vector based on the second reference picture in the block. For example, in the selecting step, one first and second motion vector candidate each having the smallest evaluation value is selected.
[0270]
As a result, since the evaluation value is calculated based on the result of performing the interpolation processing of the pixel value, even if a fade occurs, it is possible to prevent an increase in the error of the evaluation value due to the effect and to determine an optimal motion vector. Can be detected.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a video encoding device according to a first embodiment of the present invention.
FIG. 2 is a frame layout diagram showing a temporal positional relationship between a reference frame and an encoding target frame according to the first embodiment.
FIG. 3 is a block diagram illustrating a configuration of a motion estimating unit according to the first embodiment.
FIG. 4 is an explanatory diagram for describing a method of generating a first motion vector candidate and a second motion vector candidate according to the embodiment.
FIG. 5 is a conceptual diagram showing a concept of a format of an image coded signal according to the embodiment.
FIG. 6 is a flowchart showing an operation until the moving image encoding apparatus detects and encodes a motion vector.
FIG. 7 is a block diagram illustrating a configuration of a video decoding device according to a second embodiment of the present invention.
FIG. 8 is a block diagram illustrating a configuration of a video encoding device according to a third embodiment of the present invention.
FIG. 9 is a block diagram illustrating a configuration of a motion estimation unit according to the embodiment.
FIG. 10 is an explanatory diagram for describing a method of generating a first motion vector candidate and a second motion vector candidate according to the first embodiment.
FIG. 11 is a conceptual diagram showing the concept of the format of an image coded signal according to the embodiment.
FIG. 12 is a block diagram illustrating a configuration of a video decoding device according to a fourth embodiment of the present invention.
FIG. 13 is a block diagram illustrating a configuration of a video encoding device according to a fifth embodiment of the present invention.
FIG. 14 is a block diagram illustrating a configuration of a motion estimation unit according to the third embodiment.
FIG. 15 is an explanatory diagram for describing a method of generating a first motion vector candidate, a motion vector, and a second motion vector candidate.
FIG. 16 is a block diagram showing a configuration of a moving picture coding device according to a modification of the above.
FIG. 17 is a conceptual diagram showing a concept of a format of an image coded signal of a moving image coding apparatus according to a modification of the above.
FIG. 18 is a block diagram illustrating a configuration of a video decoding device according to a sixth embodiment of the present invention.
FIG. 19 is a block diagram illustrating a configuration of a video encoding device according to a seventh embodiment of the present invention.
FIG. 20 is a configuration diagram showing a schematic configuration of a memory inside the multi-frame buffer according to the first embodiment;
FIG. 21 is a state diagram showing a state of a frame stored in the multi-frame buffer according to the embodiment.
FIG. 22 is an explanatory diagram for explaining how a difference vector is created.
FIG. 23 is a flowchart showing a series of operations for encoding a motion vector according to the embodiment.
FIG. 24 is a block diagram illustrating a configuration of a video decoding device according to an eighth embodiment of the present invention.
FIG. 25 is a flowchart showing a series of operations for decoding the motion vector according to the above.
FIG. 26 is an explanatory diagram of a recording medium according to a ninth embodiment of the present invention.
FIG. 27 is a block diagram illustrating an overall configuration of a content supply system according to a tenth embodiment of the present invention.
FIG. 28 is a front view of the above mobile phone.
FIG. 29 is a block diagram of the mobile phone of the above.
FIG. 30 is a block diagram showing the overall configuration of the digital broadcasting system of the above.
FIG. 31 is an explanatory diagram for explaining a motion vector.
FIG. 32 is an explanatory diagram for explaining how to generate a predicted image using two frames.
FIG. 33 is a block diagram illustrating a configuration of a moving image encoding device showing a conventional example.
FIG. 34 is a block diagram illustrating a configuration of a motion estimation unit according to the embodiment.
FIG. 35 is an explanatory diagram for describing how to detect a motion vector according to the embodiment.
FIG. 36 is an explanatory diagram for explaining a change in a pixel value due to a fade;
FIG. 37 is a conceptual diagram showing the concept of the format of an image coded signal output by a moving image coding apparatus showing a conventional example.
FIG. 38 is a block diagram illustrating a configuration of a moving image decoding device illustrating a conventional example.
[Explanation of symbols]
301 Multi-frame buffer
302 Motion estimation unit
303 motion compensation unit
304 image coding unit
305 Image decoding unit
306 Variable length coding unit
308 Adder
309 Subtractor
Bs1 image encoded signal
Dr residual decoded signal
Er residual coded signal
Img image signal
MV1, MV2 motion vector
Pre prediction image signal
Rc reconstructed image signal
Rf1, Rf2 reference frame

Claims (17)

動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを検出する動きベクトル検出方法であって、
前記検出対象ブロックの第1の参照ピクチャに基づく第1の動きベクトル候補を生成する第1の候補生成ステップと、
前記検出対象ブロックの第2の参照ピクチャに基づく第2の動きベクトル候補を生成する第2の候補生成ステップと、
前記第1の参照ピクチャにおける第1の動きベクトル候補が示す第1の予測用ブロックと、前記第2の参照ピクチャにおける第2の動きベクトル候補が示す第2の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで補間予測ブロックを作成する補間ステップと、
前記補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する算出ステップと、
前記評価値に基づいて、前記第1の候補生成ステップで生成された複数の第1の動きベクトル候補の中から1つを選択するとともに、前記第2の候補生成ステップで生成された複数の第2の動きベクトル候補の中から1つを選択する選択ステップと、
選択された前記第1の動きベクトル候補を、前記検出対象ブロックにおける前記第1の参照ピクチャに基づく第1の動きベクトルとして検出するとともに、選択された前記第2の動きベクトル候補を、前記検出対象ブロックにおける前記第2の参照ピクチャに基づく第2の動きベクトルとして検出する検出ステップと
を含むことを特徴とする動きベクトル検出方法。
A motion vector detection method for detecting a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
A first candidate generating step of generating a first motion vector candidate based on a first reference picture of the detection target block;
A second candidate generating step of generating a second motion vector candidate based on a second reference picture of the detection target block;
Based on a first prediction block indicated by a first motion vector candidate in the first reference picture and a second prediction block indicated by a second motion vector candidate in the second reference picture, An interpolation step of creating an interpolation prediction block by interpolating the pixel value of the corresponding pixel;
A calculation step of calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the interpolation prediction block and the detection target block,
Based on the evaluation value, one of the plurality of first motion vector candidates generated in the first candidate generation step is selected, and the plurality of first motion vector candidates generated in the second candidate generation step are selected. A selection step of selecting one from two motion vector candidates;
The selected first motion vector candidate is detected as a first motion vector based on the first reference picture in the detection target block, and the selected second motion vector candidate is detected by the detection target block. A detecting step of detecting as a second motion vector based on the second reference picture in the block.
前記選択ステップでは、
前記評価値が最小となる第1及び第2の動きベクトル候補をそれぞれ1つ選択する
ことを特徴とする請求項1記載の動きベクトル検出方法。
In the selecting step,
2. The motion vector detecting method according to claim 1, wherein one of the first and second motion vector candidates having the smallest evaluation value is selected.
前記第2の候補生成ステップでは、
前記検出対象ブロックを含むピクチャを基準とした前記第1及び第2の参照ピクチャの表示時間差に応じた割合で、前記第1の動きベクトル候補に対してスケーリングを行うことで第2の動きベクトル候補を生成する
ことを特徴とする請求項1又は2記載の動きベクトル検出方法。
In the second candidate generation step,
A second motion vector candidate is obtained by scaling the first motion vector candidate at a rate corresponding to a display time difference between the first and second reference pictures based on the picture including the detection target block. 3. The method according to claim 1, wherein
前記第2の候補生成ステップでは、
前記検出対象ブロックを含むピクチャを基準とした表示時間差が、
前記第1の参照ピクチャよりも長くなるピクチャを、前記第2の参照ピクチャとして選択する
ことを特徴とする請求項3記載の動きベクトル検出方法。
In the second candidate generation step,
The display time difference based on the picture including the detection target block is
The motion vector detecting method according to claim 3, wherein a picture longer than the first reference picture is selected as the second reference picture.
前記第1の候補生成ステップでは、
前記検出対象ブロックを含むピクチャの表示時刻よりも前にあるピクチャを前記第1の参照ピクチャとして選択する
ことを特徴とする請求項3記載の動きベクトル検出方法。
In the first candidate generation step,
4. The motion vector detecting method according to claim 3, wherein a picture before a display time of a picture including the detection target block is selected as the first reference picture.
前記第1の候補生成ステップでは、
前記検出対象ブロックを含むピクチャの表示時刻よりも前にあるピクチャを前記第1の参照ピクチャとして選択し、
前記第2の候補生成ステップでは、
前記検出対象ブロックを含むピクチャの表示時刻よりも前にあるピクチャを前記第2の参照ピクチャとして選択する
ことを特徴とする請求項1又は2記載の動きベクトル検出方法。
In the first candidate generation step,
Selecting a picture before the display time of the picture including the detection target block as the first reference picture,
In the second candidate generation step,
3. The motion vector detecting method according to claim 1, wherein a picture before a display time of a picture including the detection target block is selected as the second reference picture.
前記第1の候補生成ステップでは、
前記検出対象ブロックを含むピクチャの表示時刻よりも後にあるピクチャを前記第1の参照ピクチャとして選択し、
前記第2の候補生成ステップでは、
前記検出対象ブロックを含むピクチャの表示時刻よりも後にあるピクチャを前記第2の参照ピクチャとして選択する
ことを特徴とする請求項1又は2記載の動きベクトル検出方法。
In the first candidate generation step,
Selecting a picture after the display time of the picture including the detection target block as the first reference picture,
In the second candidate generation step,
3. The motion vector detecting method according to claim 1, wherein a picture located after a display time of a picture including the detection target block is selected as the second reference picture.
前記第2の候補生成ステップでは、
前記検出対象ブロックを含むピクチャの表示時刻を基準に、表示時刻の前後が前記第1の参照ピクチャと異なるピクチャを第2の参照ピクチャとして選択する
ことを特徴とする請求項1項又は2記載の動きベクトル検出方法。
In the second candidate generation step,
3. The picture according to claim 1, wherein a picture whose display time is different from the first reference picture before and after the display time is selected as a second reference picture based on a display time of a picture including the detection target block. Motion vector detection method.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを検出する動きベクトル検出方法であって、
前記検出対象ブロックの第1の参照ピクチャに基づく第1の動きベクトル候補を生成する第1の候補生成ステップと、
前記検出対象ブロックを含むピクチャを基準とした第1及び第2の参照ピクチャの表示時間差に応じた割合で、前記第1の動きベクトル候補に対してスケーリングを行うことで、前記検出対象ブロックの第2の参照ピクチャに基づくスケーリングベクトルを生成するスケーリングベクトル生成ステップと、
前記第1の参照ピクチャにおける第1の動きベクトル候補が示す第1の予測用ブロックと、前記第2の参照ピクチャにおけるスケーリングベクトルが示す第2の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで第1の補間予測ブロックを作成する第1の補間ステップと、
前記第1の補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する第1の算出ステップと、
前記第1の候補生成ステップで生成された複数の第1の動きベクトル候補の中から、前記第1の算出ステップで算出される評価値が最小となる第1の動きベクトル候補を、前記検出対象ブロックにおける前記第1の参照ピクチャに基づく第1の動きベクトルとして検出する第1の検出ステップと、
前記検出対象ブロックの第2の参照ピクチャに基づく第2の動きベクトル候補を生成する第2の候補生成ステップと、
前記第1の参照ピクチャにおける前記第1の動きベクトルが示す第3の予測用ブロックと、前記第2の参照ピクチャにおける第2の動きベクトル候補が示す第4の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで第2の補間予測ブロックを作成する第2の補間ステップと、
前記第2の補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する第2の算出ステップと、
前記第2の候補生成ステップで生成された複数の第2の動きベクトル候補の中から、前記第2の算出ステップで算出される評価値が最小となる第2の動きベクトル候補を、前記検出対象ブロックにおける前記第2の参照ピクチャに基づく第2の動きベクトルとして検出する第2の検出ステップと
を含むことを特徴とする動きベクトル検出方法。
A motion vector detection method for detecting a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
A first candidate generating step of generating a first motion vector candidate based on a first reference picture of the detection target block;
By scaling the first motion vector candidate at a rate corresponding to the display time difference between the first and second reference pictures based on the picture including the detection target block, Generating a scaling vector based on the two reference pictures;
Based on a first prediction block indicated by a first motion vector candidate in the first reference picture and a second prediction block indicated by a scaling vector in the second reference picture, pixels corresponding to each other are A first interpolation step of creating a first interpolation prediction block by interpolating pixel values;
A first calculation step of calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the first interpolation prediction block and the detection target block;
From the plurality of first motion vector candidates generated in the first candidate generation step, the first motion vector candidate having the smallest evaluation value calculated in the first calculation step is determined by the detection target A first detection step of detecting as a first motion vector based on the first reference picture in a block;
A second candidate generating step of generating a second motion vector candidate based on a second reference picture of the detection target block;
Based on a third prediction block indicated by the first motion vector in the first reference picture and a fourth prediction block indicated by a second motion vector candidate in the second reference picture, A second interpolation step of creating a second interpolation prediction block by interpolating pixel values of corresponding pixels;
A second calculation step of calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the second interpolation prediction block and the detection target block;
From the plurality of second motion vector candidates generated in the second candidate generation step, the second motion vector candidate having the smallest evaluation value calculated in the second calculation step is determined by the detection target. And a second detection step of detecting as a second motion vector based on the second reference picture in the block.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを符号化する動きベクトル符号化方法であって、
請求項1又は2の動きベクトル検出方法で第1及び第2の動きベクトルを検出する動きベクトル検出ステップと、
前記第1及び第2の動きベクトルをそれぞれ符号化する符号化ステップと
を含むことを特徴とする動きベクトル符号化方法。
A motion vector encoding method for encoding a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
A motion vector detecting step of detecting the first and second motion vectors by the motion vector detecting method according to claim 1 or 2;
A coding step of coding the first and second motion vectors, respectively.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを符号化する動きベクトル符号化方法であって、
ピクチャがその表示時刻に関する情報と共に記録される第1の領域と他のピクチャが記録される第2の領域とを有する記憶手段から第1及び第2の参照ピクチャを読み出す読出ステップと、
請求項1又は2の動きベクトル検出方法で、前記第1及び第2の参照ピクチャを用いて第1及び第2の動きベクトルを検出する動きベクトル検出ステップと、
前記第1及び第2の参照ピクチャのうちの少なくとも1つが前記第2の領域から読み出されたか否かを判定する判定ステップと、
前記判別ステップで、前記第1及び第2の参照ピクチャのうちの少なくとも1つが前記第2の領域から読み出されたと判定されたときには、前記第1及び第2の動きベクトルをそれぞれ符号化する符号化ステップと
を含むことを特徴とする動きベクトル符号化方法。
A motion vector encoding method for encoding a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
A reading step of reading the first and second reference pictures from a storage unit having a first area in which a picture is recorded together with information on its display time and a second area in which another picture is recorded;
A motion vector detecting step of detecting the first and second motion vectors by using the first and second reference pictures;
A determining step of determining whether at least one of the first and second reference pictures has been read from the second area;
When it is determined in the determining step that at least one of the first and second reference pictures has been read from the second area, a code for encoding the first and second motion vectors, respectively. A motion vector encoding method.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを検出する動きベクトル検出装置であって、
前記検出対象ブロックの第1の参照ピクチャに基づく第1の動きベクトル候補を生成する第1の候補生成手段と、
前記検出対象ブロックの第2の参照ピクチャに基づく第2の動きベクトル候補を生成する第2の候補生成手段と、
前記第1の参照ピクチャにおける第1の動きベクトル候補が示す第1の予測用ブロックと、前記第2の参照ピクチャにおける第2の動きベクトル候補が示す第2の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで補間予測ブロックを作成する補間手段と、
前記補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する算出手段と、
前記第1の候補生成手段で生成された複数の第1の動きベクトル候補と、前記第2の候補生成手段で生成された複数の第2の動きベクトル候補との中から、前記評価値が最小となる第1及び第2の動きベクトル候補をそれぞれ1つ選択する選択手段と、
選択された前記第1の動きベクトル候補を、前記検出対象ブロックにおける前記第1の参照ピクチャに基づく第1の動きベクトルとして検出するとともに、選択された前記第2の動きベクトル候補を、前記検出対象ブロックにおける前記第2の参照ピクチャに基づく第2の動きベクトルとして検出する検出手段と
を備えることを特徴とする動きベクトル検出装置。
A motion vector detection device for detecting a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
First candidate generating means for generating a first motion vector candidate based on a first reference picture of the detection target block;
Second candidate generating means for generating a second motion vector candidate based on a second reference picture of the detection target block;
Based on a first prediction block indicated by a first motion vector candidate in the first reference picture and a second prediction block indicated by a second motion vector candidate in the second reference picture, Interpolation means for creating an interpolation prediction block by interpolating the pixel value of the corresponding pixel,
Calculation means for calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the interpolation prediction block and the detection target block,
Among the plurality of first motion vector candidates generated by the first candidate generation unit and the plurality of second motion vector candidates generated by the second candidate generation unit, the evaluation value is the smallest. Selecting means for selecting one first and second motion vector candidate, respectively,
The selected first motion vector candidate is detected as a first motion vector based on the first reference picture in the detection target block, and the selected second motion vector candidate is detected by the detection target block. Detecting means for detecting as a second motion vector based on the second reference picture in the block.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを符号化する動きベクトル符号化装置であって、
請求項12記載の動きベクトル検出装置と、
前記動きベクトル検出装置で検出された第1及び第2の動きベクトルをそれぞれ符号化する符号化手段と
を備えることを特徴とする動きベクトル符号化装置。
A motion vector encoding device that encodes a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
A motion vector detecting device according to claim 12,
Encoding means for encoding each of the first and second motion vectors detected by the motion vector detecting device.
動画像を構成するピクチャを符号化する動画像符号化装置であって、
請求項13記載の動きベクトル符号化装置と、
前記動きベクトル符号化装置により符号化された第1及第2の動きベクトルに対応するブロックを符号化する画像符号化手段と
を備えることを特徴とする動画像符号化装置。
A moving image encoding device that encodes a picture constituting a moving image,
A motion vector encoding device according to claim 13,
A moving image encoding apparatus comprising: an image encoding unit that encodes blocks corresponding to the first and second motion vectors encoded by the motion vector encoding apparatus.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを検出する動きベクトル検出方法を、コンピュータに実行させるプログラムであって、
前記検出対象ブロックの第1の参照ピクチャに基づく第1の動きベクトル候補を生成する第1の候補生成ステップと、
前記検出対象ブロックの第2の参照ピクチャに基づく第2の動きベクトル候補を生成する第2の候補生成ステップと、
前記第1の参照ピクチャにおける第1の動きベクトル候補が示す第1の予測用ブロックと、前記第2の参照ピクチャにおける第2の動きベクトル候補が示す第2の予測用ブロックとに基づいて、互いに対応する画素の画素値の補間を行うことで補間予測ブロックを作成する補間ステップと、
前記補間予測ブロックと前記検出対象ブロックとの互いに対応する画素の画素値の差に基づく評価値を算出する算出ステップと、
前記第1の候補生成ステップで生成された複数の第1の動きベクトル候補と、前記第2の候補生成ステップで生成された複数の第2の動きベクトル候補との中から、前記評価値が最小となる第1及び第2の動きベクトル候補をそれぞれ1つ選択する選択ステップと、
選択された前記第1の動きベクトル候補を、前記検出対象ブロックにおける前記第1の参照ピクチャに基づく第1の動きベクトルとして検出するとともに、選択された前記第2の動きベクトル候補を、前記検出対象ブロックにおける前記第2の参照ピクチャに基づく第2の動きベクトルとして検出する検出ステップと
を含むことを特徴とするプログラム。
A program for causing a computer to execute a motion vector detection method of detecting a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
A first candidate generating step of generating a first motion vector candidate based on a first reference picture of the detection target block;
A second candidate generating step of generating a second motion vector candidate based on a second reference picture of the detection target block;
Based on a first prediction block indicated by a first motion vector candidate in the first reference picture and a second prediction block indicated by a second motion vector candidate in the second reference picture, An interpolation step of creating an interpolation prediction block by interpolating the pixel value of the corresponding pixel;
A calculation step of calculating an evaluation value based on a difference between pixel values of pixels corresponding to each other between the interpolation prediction block and the detection target block,
Among the plurality of first motion vector candidates generated in the first candidate generation step and the plurality of second motion vector candidates generated in the second candidate generation step, the evaluation value is the smallest. A selection step of selecting one first and second motion vector candidate, respectively,
The selected first motion vector candidate is detected as a first motion vector based on the first reference picture in the detection target block, and the selected second motion vector candidate is detected by the detection target block. A detecting step of detecting as a second motion vector based on the second reference picture in a block.
動画像を構成するピクチャの中のブロックにおける、他のピクチャからの変位を示す動きベクトルを符号化する動きベクトル符号化方法を、コンピュータに実行させるプログラムであって、
請求項15記載のプログラムに含まれるステップと、
前記第1及び第2の動きベクトルをそれぞれ符号化する符号化ステップと
を含むことを特徴とするプログラム。
A program for causing a computer to execute a motion vector encoding method for encoding a motion vector indicating a displacement from another picture in a block in a picture constituting a moving image,
Steps included in the program according to claim 15;
A coding step of coding the first and second motion vectors, respectively.
請求項16記載のプログラムを格納する記憶媒体。A storage medium for storing the program according to claim 16.
JP2003068058A 2002-03-14 2003-03-13 Motion vector detecting method Withdrawn JP2004215215A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003068058A JP2004215215A (en) 2002-03-14 2003-03-13 Motion vector detecting method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2002070046 2002-03-14
US37795502P 2002-05-07 2002-05-07
JP2002332846 2002-11-15
JP2003068058A JP2004215215A (en) 2002-03-14 2003-03-13 Motion vector detecting method

Publications (1)

Publication Number Publication Date
JP2004215215A true JP2004215215A (en) 2004-07-29

Family

ID=32830998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003068058A Withdrawn JP2004215215A (en) 2002-03-14 2003-03-13 Motion vector detecting method

Country Status (1)

Country Link
JP (1) JP2004215215A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232973A (en) * 2011-10-27 2013-11-14 Panasonic Corp Encoding/decoding device
JP2014042291A (en) * 2011-10-28 2014-03-06 Panasonic Corp Encoding method and encoder
JP2015039227A (en) * 2012-05-09 2015-02-26 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Encoding and decoding device
CN105445332A (en) * 2015-12-24 2016-03-30 安徽泓森物联网有限公司 Electronic leaf
US10321152B2 (en) 2011-10-28 2019-06-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232973A (en) * 2011-10-27 2013-11-14 Panasonic Corp Encoding/decoding device
US10893293B2 (en) 2011-10-28 2021-01-12 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
JP2017099001A (en) * 2011-10-28 2017-06-01 サン パテント トラスト Coding decoding system
US10321152B2 (en) 2011-10-28 2019-06-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11902568B2 (en) 2011-10-28 2024-02-13 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10567792B2 (en) 2011-10-28 2020-02-18 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US9699474B2 (en) 2011-10-28 2017-07-04 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US9912962B2 (en) 2011-10-28 2018-03-06 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10631004B2 (en) 2011-10-28 2020-04-21 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11831907B2 (en) 2011-10-28 2023-11-28 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
JP2014042292A (en) * 2011-10-28 2014-03-06 Panasonic Corp Prediction motion vector derivation method and prediction motion vector derivation device
US10045047B2 (en) 2011-10-28 2018-08-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
JP2014042291A (en) * 2011-10-28 2014-03-06 Panasonic Corp Encoding method and encoder
US11115677B2 (en) 2011-10-28 2021-09-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11356696B2 (en) 2011-10-28 2022-06-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11622128B2 (en) 2011-10-28 2023-04-04 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
JP2015039227A (en) * 2012-05-09 2015-02-26 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Encoding and decoding device
CN105445332A (en) * 2015-12-24 2016-03-30 安徽泓森物联网有限公司 Electronic leaf

Similar Documents

Publication Publication Date Title
KR100985236B1 (en) Motion compensating method, picture encoding method and picture decoding method
JP4718578B2 (en) Image decoding method and image decoding apparatus
JP4949028B2 (en) Decoding device, encoding device, decoding method, encoding method
KR100967237B1 (en) Motion picture encoding method and motion picture decoding method
KR100557911B1 (en) Image encoding method and image decoding method
JP2004096705A (en) Motion vector coding method and motion vector decoding method
EP1489848A1 (en) Motion vector detection method
JP2003169337A (en) Image encoding method and image decoding method
JP2004088737A (en) Image encoding and decoding method
JP2004215215A (en) Motion vector detecting method
JP2005142986A (en) Moving image encoding method, moving image encoding apparatus and moving image encoding program
JP2004040512A (en) Image encoding method and image decoding method
JP4406239B2 (en) Motion compensation method and motion compensation device
JP4503959B2 (en) Image coding method
KR20050018729A (en) Video encoding method and video decoding method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060113

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070501