JP2007067731A - 符号化方法 - Google Patents
符号化方法 Download PDFInfo
- Publication number
- JP2007067731A JP2007067731A JP2005250290A JP2005250290A JP2007067731A JP 2007067731 A JP2007067731 A JP 2007067731A JP 2005250290 A JP2005250290 A JP 2005250290A JP 2005250290 A JP2005250290 A JP 2005250290A JP 2007067731 A JP2007067731 A JP 2007067731A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- motion vector
- vector
- unit
- motion
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 動き補償のダイレクトモードでは、符号化の基準となる動きベクトルと実際の動きベクトルの誤差が大きい場合、符号化効率が悪化する。
【解決手段】 動きベクトル探索部62は、後方参照先フレームの各動きベクトルが通過する双方向予測フレームの単位領域を求め、通過する単位領域に関する情報を通過領域番号保持部66に保存する。基準ベクトル予測部68は、通過領域番号保持部66を参照して、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルを動きベクトル保持部64から取得し、当該対象単位領域に適用すべき基準ベクトルを決定する。動きベクトル探索部62は、その基準ベクトルを双方向予測フレームの対象単位領域に適用し、線形予測により当該対象単位領域の順方向動きベクトルと逆方向動きベクトルを求め、対象単位領域を双方向で動き補償予測し、予測画像を生成する。
【選択図】 図4
【解決手段】 動きベクトル探索部62は、後方参照先フレームの各動きベクトルが通過する双方向予測フレームの単位領域を求め、通過する単位領域に関する情報を通過領域番号保持部66に保存する。基準ベクトル予測部68は、通過領域番号保持部66を参照して、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルを動きベクトル保持部64から取得し、当該対象単位領域に適用すべき基準ベクトルを決定する。動きベクトル探索部62は、その基準ベクトルを双方向予測フレームの対象単位領域に適用し、線形予測により当該対象単位領域の順方向動きベクトルと逆方向動きベクトルを求め、対象単位領域を双方向で動き補償予測し、予測画像を生成する。
【選択図】 図4
Description
本発明は、動画像を符号化する符号化方法に関する。
ブロードバンドネットワークが急速に発展しており、高品質な動画像を利用したサービスに期待が集まっている。また、DVDなど大容量の記録媒体が利用されており、高画質の画像を楽しむユーザ層が広がっている。動画像を通信回線で伝送したり、記録媒体に蓄積するために不可欠な技術として圧縮符号化がある。動画像圧縮符号化技術の国際標準として、MPEG4の規格やH.264/AVC規格がある。また、1つのストリームにおいて高画質のストリームと低画質のストリームを併せもつSVCのような次世代画像圧縮技術がある。
高解像度の動画像をストリーム配信したり、記録媒体に蓄積する場合、通信帯域を圧迫しないように、あるいは、記憶容量が大きくならないように、動画ストリームの圧縮率を高める必要がある。動画像の圧縮効果を高めるために、動き補償フレーム間予測符号化が行われる。動き補償フレーム間予測符号化では、符号化対象フレームをブロックに分割し、既に符号化された参照フレームからの動きをブロック毎に予測して動きベクトルを検出し、差分画像とともに動きベクトル情報を符号化する。
特許文献1には、双方向動き補償を利用して動画像を符号するビデオ画像符号化装置が開示されている。
特開平9−182083号公報
H.264/AVC規格では、動き補償において、よりきめ細かな予測を行うために、動き補償のブロックサイズを可変にしたり、動き補償の画素精度を1/4画素精度まで細かくすることができるようになっており、動きベクトルに関する符号量が多くなる。また、次世代画像圧縮技術であるSVC(Scalable Video Coding)では、時間的スケーラビリティを高めるために、MCTF(Motion Compensated Temporal Filtering、動き補償時間方向フィルタ)技術が検討されている。これは、時間軸方向のサブバンド分割に動き補償を組み合わせたものであり、階層的な動き補償を行うため、動きベクトルの情報が非常に多くなる。このように最近の動画圧縮符号化技術では、動きベクトルに関する情報量が増えることにより動画ストリーム全体のデータ量が増大する傾向にあり、動きベクトル情報に起因する符号量を削減する技術が一層求められている。
本発明はこうした状況に鑑みてなされたもので、その目的は、符号化効率が高く、また、精度の高い動き予測を行うことのできる動画像の符号化技術を提供することにある。
上記課題を解決するために、本発明のある態様の符号化方法は、動画像を構成するピクチャであって、双方向ピクチャ間予測符号化されるピクチャの符号化対象領域の符号化の際に参照される後方参照ピクチャの動きベクトルであって、その動きベクトルの示す動きが前記符号化対象領域内を通過するものを、前記符号化対象領域の順方向動きベクトルと逆方向動きベクトルを線形予測する際の線形予測の基準となるベクトルとして選択する。
「ピクチャ」は、フレーム、フィールド、VOP(Video Object Plane)などを含む符号化の単位である。
この態様によると、動き補償の精度を高め、また、動きベクトル情報の符号量を減らすことができる。
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルの中から、所定の優先順位のもと、少なくとも1つの動きベクトルを前記線形予測の基準となるベクトルとして選択してもよい。これによれば、複数の候補ベクトルから実際の動きベクトルに近い最適な基準ベクトルを選ぶことにより、画素の差分情報を減らし、符号量を削減できる。
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルを組み合わせて得られるベクトルを前記線形予測の基準となるベクトルとして選択してもよい。これによれば、複数の候補ベクトルを組み合わせて、実際の動きベクトルに近い、最適な基準ベクトルを求めることにより、画素の差分情報を減らし、符号量を削減できる。
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、選択の候補となる前記動きベクトルの個数を所定の上限値に制限し、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択してもよい。所定の優先順位で選択の候補となる前記動きベクトルを取捨選択してもよい。選択の候補となる動きベクトルの個数が所定の上限値に達した時点で、符号化対象領域内を通過する後方参照ピクチャの動きベクトルの探索を打ち切ってもよい。選択の候補となるベクトルの個数を制限することで、線形予測の基準となるベクトルを求めるための演算を削減することができる。
前記符号化対象領域内を通過する前記後方参照クチャの動きベクトルが属する当該後方参照ピクチャ内の領域が所定の制限領域内にある場合に、その制限領域内にある前記動きベクトルを選択の候補とし、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択してもよい。前記制約領域は、前記符号化対象領域と同位置にある前記後方参照ピクチャ上の領域を含む所定の画素数の領域であってもよい。選択の候補となるベクトルの属する領域を実際の動きベクトルが存在する可能性の高い領域に制限することで、実際の動きベクトルからかけ離れているものをあらかじめ取り除くことができ、演算量を削減することができる。
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが存在しない場合、前記符号化対象領域の近傍を通過する前記後方参照のピクチャの動きベクトルを前記線形予測の基準となるベクトルとして選択してもよい。動きベクトルの選択の候補として符号化対象領域の近傍を通過する後方参照ピクチャのベクトルを用いることで、符号化対象領域内を通過するベクトルが存在しない場合でも、符号化対象領域内を通過する動きベクトルが存在する場合と同等の効果をあげることができる。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、動画像の符号化効率を向上し、また、高い精度の動き予測を行うことできる。
実施の形態1
図1は、実施の形態1に係る符号化装置100の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
図1は、実施の形態1に係る符号化装置100の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
本実施の形態の符号化装置100は、国際標準化機関であるISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)によって標準化されたMPEG(Moving Picture Experts Group)シリーズの規格(MPEG−1、MPEG−2およびMPEG−4)、電気通信に関する国際標準機関であるITU−T(International Telecommunication Union-Telecommunication Standardization Sector)によって標準化されたH.26xシリーズの規格(H.261、H.262およびH.263)、もしくは両方の標準化機関によって合同で標準化された最新の動画像圧縮符号化標準規格であるH.264/AVC(両機関における正式勧告名はそれぞれMPEG-4 Part 10: Advanced Video CodingとH.264)に準拠して動画像の符号化を行う。
MPEGシリーズの規格では、フレーム内符号化を行う画像フレームをI(Intra)フレーム、過去のフレームを参照画像として順方向のフレーム間予測符号化を行う画像フレームをP(Predictive)フレーム、過去と未来のフレームを参照画像として双方向のフレーム間予測符号化を行う画像フレームをBフレームという。
一方、H.264/AVCでは、参照画像として利用できるフレームは、時間の先後を問わず、過去の2枚のフレームを参照画像としてもよく、未来の2枚のフレームを参照画像としてもよい。また、参照画像として利用できるフレームの枚数も問わず、3枚以上のフレームを参照画像として用いることもできる。したがって、MPEG−1/2/4では、Bフレームは双方向予測(Bi-directional prediction)フレームのことを指していたが、H.264/AVCでは、Bフレームは、参照画像の時間の先後は問わないため、双予測(Bi-predictive prediction)フレームのことを指すことに留意する。
なお、実施の形態では、符号化の単位としてフレームを例に挙げて説明するが、符号化の単位はフィールドであってもよい。また、符号化の単位はMPEG−4におけるVOPであってもよい。
符号化装置100は、フレーム単位で動画像の入力を受け取り、動画像を符号化し、符号化ストリームを出力する。
ブロック生成部10は、入力された画像フレームをマクロブロックに分割する。画像フレームの左上から右下方向の順にマクロブロックが形成される。ブロック生成部10は生成したマクロブロックを差分器12と動き補償部60に供給する。
差分器12は、ブロック生成部10から供給される画像フレームがIフレームであれば、そのままDCT部20に出力するが、PフレームまたはBフレームであれば、動き補償部60から供給される予測画像との差分を計算してDCT部20に供給する。
動き補償部60は、フレームバッファ80に格納されている過去または未来の画像フレームを参照画像として利用し、ブロック生成部10から入力されたPフレームまたはBフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部60は、生成した動きベクトルを可変長符号化部90に供給し、予測画像を差分器12と加算器14に供給する。
差分器12は、ブロック生成部10から出力される現在の画像と、動き補償部60から出力される予測画像との差分を求め、DCT部20に出力する。DCT部20は、差分器12から与えられた差分画像を離散コサイン変換(DCT)し、DCT係数を量子化部30に与える。
量子化部30は、DCT係数を量子化し、可変長符号化部90に与える。可変長符号化部90は、動き補償部60から与えられた動きベクトルとともに差分画像の量子化されたDCT係数を可変長符号化し、符号化ストリームを生成する。可変長符号化部90は、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
量子化部30は、画像フレームの量子化されたDCT係数を逆量子化部40に供給する。逆量子化部40は、与えられた量子化データを逆量子化し、逆DCT部50に与え、逆DCT部50は、与えられた逆量子化データを逆離散コサイン変換する。これにより、符号化された画像フレームが復元される。復元された画像フレームは加算器14に入力される。
加算器14は、逆DCT部50から供給される画像フレームがIフレームであれば、そのままフレームバッファ80に格納する。加算器14は、逆DCT部50から供給される画像フレームがPフレームまたはBフレームであれば、それは差分画像であるため、逆DCT部50から供給された差分画像と動き補償部60から供給される予測画像とを加算することにより、元の画像フレームを再構成し、フレームバッファ80に格納する。
PフレームもしくはBフレームの符号化処理の場合は、上述のように動き補償部60が動作するが、Iフレームの符号化処理の場合は、動き補償部60は動作せず、ここでは図示しないが、フレーム内予測が行われる。
動き補償部60は、Bフレームの動き補償をする際、改良ダイレクトモードで動作する。MPEG−4やH.264/AVCの規格には、Bフレームの動き補償にダイレクトモードがあるが、改良ダイレクトモードはこのダイレクトモードを改良したものである。
まず、比較のために通常のダイレクトモードを説明し、その後、本実施の形態の改良ダイレクトモードを説明する。
図2(a)〜(c)は、通常のダイレクトモードによる動き補償の手順を説明する図である。ダイレクトモードでは、線形動きモデルにしたがって、一つの動きベクトルを順方向、逆方向に線形補間することで双方向予測の効果をもたせる。
同図は左から右を時間の流れとして、4枚のフレームを表示時間順に図示しており、Pフレーム1、Bフレーム2、Bフレーム3、Pフレーム4の順に表示がなされる。符号化の順序はこの表示順序とは異なり、まず同図の1番目のPフレーム1が符号化され、次に、4番目のPフレーム4が、1番目のPフレーム1を参照画像として動き補償が行われて符号化される。その後、Bフレーム2、Bフレーム3がそれぞれ、前後の2枚のPフレーム1、4を参照画像として動き補償が行われて符号化される。なお、同図の1番目のPフレームはIフレームであってもよい。また、同図の4番目のPフレームはIフレームであってもよい。その際、Iフレーム内の対応するブロックにおける動きベクトルは(0,0)として扱われる。
今、2枚のPフレーム1、4の符号化が完了し、Bフレーム2を符号化する段階であるとする。このBフレーム2を対象Bフレームと呼び、対象Bフレームより後に表示されるPフレーム4を後方参照Pフレーム、対象Bフレームより前に表示されるPフレーム1を前方参照Pフレームと呼ぶ。
双方向予測モードでは、対象Bフレーム2を前方参照Pフレーム1、後方参照Pフレーム4の2枚のフレームによって双方向に予測して、前方参照Pフレーム1に対する動きを示す順方向動きベクトルと、後方参照Pフレーム4に対する動きを示す逆方向動きベクトルをそれぞれ独立に求め、2つの動きベクトルを生成する。それに対して、ダイレクトモードでは、対象Bフレーム2を前方参照Pフレーム1、後方参照Pフレーム4の2枚のフレームによって双方向に予測する点は同じであるが、1つの基準となる動きベクトルから順方向、逆方向の動きベクトルを線形予測する点が異なる。
図2(a)は、後方参照Pフレーム4の符号化の際に得られたマクロブロック210の動きベクトルmvCol(符号230)を示す。
対象Bフレーム2を符号化する際、ダイレクトモードでは、図2(b)に示すように、対象Bフレーム2の対象マクロブロック220と空間的な位置が一致する後方参照Pフレーム4の参照マクロブロック210について既に求められた動きベクトルmvCol(符号230)が、対象Bフレーム2の対象マクロブロック220の動きベクトルmvCol’(符号232)であると想定する。想定された対象マクロブロック220の動きベクトルmvCol’を基準ベクトルと呼ぶ。
次に、図2(c)に示すように、対象Bフレーム2の対象マクロブロック220の実際の動きに合わせるために、基準ベクトルmvCol’(符号232)を水平方向、垂直方向にそれぞれΔVx、ΔVyだけ平行移動させ、最適な動きベクトル(符号234)を求める。差分ベクトルΔV=(ΔVx、ΔVy)は、基準ベクトルmvCol’(符号232)にもとづいて線形予測された対象マクロブロック220の移動位置と実際の移動位置のずれを示すものである。
基準ベクトルmvCol’は、後方参照Pフレーム4を符号化する際に既に動きベクトルmvColとして符号化されているため、ダイレクトモードで符号化するベクトル情報は、差分ベクトルΔV=(ΔVx、ΔVy)の情報だけでよい。
対象Bフレーム2の対象マクロブロック220の順方向動きベクトルmvL0と、逆方向動きベクトルmvL1は、それぞれ、次式のように、基準ベクトルmvCol’をフレーム間の時間間隔の比で内分し、差分ベクトルΔVにより補正することにより求められる。
mvL0=mvCol×tb/td+ΔV
mvL1=mvL0−mvCol=mvCol×(tb−td)/td+ΔV
mvL1=mvL0−mvCol=mvCol×(tb−td)/td+ΔV
ここで、tbは、前方参照Pフレーム1から対象Bフレーム2までの時間間隔であり、tdは、前方参照Pフレーム1から後方参照Pフレーム4までの時間間隔である。
同図では、2次元画像を1次元的に図示しているが、動きベクトルが画像の水平方向と垂直方向の2次元成分をもつのに対応して、差分ベクトルΔVも水平方向と垂直方向の2次元成分をもつことに留意する。
ダイレクトモードでは、逆方向動きベクトルmvL1による後方参照Pフレーム4の参照位置から順方向動きベクトルmvL0による前方参照Pフレーム1の参照位置への動きを示す動きベクトル(符号234)は、後方参照Pフレーム4の参照マクロブロック210の動きベクトルmvCol(符号230)すなわち対象Bフレーム2の対象マクロブロック220の基準動きベクトルmvCol’(符号232)と平行であり、動きベクトルの傾きに変化がないことに留意する。
ダイレクトモードでは、順方向動きベクトルmvL0と逆方向動きベクトルmvL1を用いて対象マクロブロック220を動き補償し、予測画像を生成する。
動きベクトルの符号量を考えた場合、双方向予測では、順方向と逆方向で独立した動きベクトルを検出するため、参照画像との差分誤差は小さくなるが、2つの独立した動きベクトルの情報を符号化するため、動きベクトル情報の符号量が多くなる。最近の高画質の圧縮符号化では、1/4画素精度での動きベクトルの探索が行われることが多く、動きベクトル情報の符号量が一層増大することになる。
一方、ダイレクトモードでは、後方参照Pフレーム4の動きベクトルを利用して順方向と逆方向の動きベクトルを線形予測するため、動きベクトルの符号化は不要であり、差分ベクトルΔVの情報だけを符号化すればよい。しかも、差分ベクトルΔVは、実際の動きが線形動きに近いほど小さい値になる。線形動きモデルで近似できる場合は、差分ベクトルΔVの符号量は十分に小さい。
しかしながら、ダイレクトモードでは、図2(b)で説明したように、対象Bフレーム2の対象マクロブロック220の基準ベクトルmvCol’(符号232)の傾きは、当該対象マクロブロック220と同位置にある後方参照Pフレーム4の参照マクロブロック210の動きベクトルmvCol(符号230)の傾きと同じであるという制約がある。このため、基準ベクトルmvCol’の傾きが対象マクロブロック220の実際の動きベクトルの傾きから大きくずれていた場合、基準ベクトルmvCol’を用いて、前方参照Pフレーム1、後方参照Pフレーム4との間で動き予測を行うと、予測誤差が大きくなり、符号量が増えてしまう。
ダイレクトモードは、対象Bフレーム2と後方参照Pフレーム4の間に相関があり、後方参照Pフレーム4の参照マクロブロック210の動きベクトルmvColを平行移動させて得られる対象Bフレーム2の対象マクロブロック220の基準ベクトルmvCol’が、当該対象マクロブロック220の実際の動きベクトルに近い場合は、符号化効率が高いが、そうでない場合は、予測誤差が大きくなり、符号化効率が悪くなる傾向がある。
図3(a)〜(c)は、上述の通常のダイレクトモードによる動き補償の課題を具体的な例で説明する図である。
図3(a)〜(c)は、それぞれ前方参照Pフレーム1、対象Bフレーム2、後方参照Pフレーム4を示す。図3(b)に示された領域400bは、対象Bフレーム2の対象マクロブロックであり、この対象マクロブロックと同位置にある前方参照Pフレーム1内の領域400aと後方参照Pフレーム4内の領域400cが、それぞれ図3(a)と図3(c)に図示されている。
前方参照Pフレーム1、対象Bフレーム2および後方参照Pフレーム4上で、斜線で示した円形のオブジェクトが符号412a〜412cで示すように左上から右下に斜め方向に移動しており、また、斜線で示した正方形のオブジェクトが符号410a〜410cに示すように左から右に水平方向に移動している。
図3(b)の対象Bフレーム2の領域400bの実際の動きは、図示された水平方向の順方向動きベクトルmvL0および逆方向動きベクトルmvL1で表されるとする。これは、対象Bフレーム2の領域400b内にある正方形のオブジェクト410bの順方向および逆方向の動きに対応するものである。
ところが、図3(c)に示すように、対象Bフレーム2の領域400bに対応する後方参照Pフレーム4の領域400cの動きベクトルmvCol(符号420)は、左上に向かう斜め方向の動きを示している。これは、後方参照Pフレーム4の領域400c内にある円形のオブジェクト412cの動きに対応するものである。
ダイレクトモードでは、図3(c)に示された後方参照Pフレーム4の領域400cの動きベクトルmvColを平行移動させて対象Bフレーム2の領域400bの基準ベクトルとして利用する。この例では、基準ベクトルは斜め方向であり、実際の動きベクトルは水平方向であるから、両者の傾きは大きくずれており、この基準ベクトルを利用して動き予測を行うと、画質が劣化するか、符号量が増加する。
このように、ダイレクトモードは、双方向予測モードに比べて符号化効率の面では優れているものの、基準動きベクトルと実際の動きベクトルのずれが大きい場合には、符号化効率が低下することがあり、改良の余地があることを本出願人は認識するに至った。以下、ダイレクトモードを改良した「改良ダイレクトモード」を説明する。
図4は、動き補償部60の構成を説明する図である。
動きベクトル探索部62は、フレーム間予測符号化の対象となるフレームについて動き探索を行って、各単位領域の動きベクトルを求め、各単位領域を動き補償し、予測画像を生成する。動きベクトル探索部62は、予測画像を差分器12および加算器14に与え、動きベクトル情報を可変長符号化部90に与える。
ここで、単位領域は、縦横の画素数がそれぞれ任意のブロックであり、一例として、マクロブロックもしくはサブマクロブロックである。
動きベクトル探索部62は、双方向予測フレームの後方参照先となるフレームの動き探索を行った場合、各単位領域における動きベクトルmvColを可変長符号化部90に与えるとともに、動きベクトル保持部64に保存する。
図5は、動きベクトル保持部64に記憶される後方参照フレームの各単位領域の動きベクトルmvColを説明する図である。動きベクトル保持部64の保存領域は、後方参照フレームの単位領域番号に対応づけて分けられており、各保存領域には、対応する単位領域の動きベクトルmvColの値が保持される。同図の例では、後方参照フレームの単位領域0番、1番、…、4番に対応する保存領域0番、1番、…、4番(符号64a〜64e)に、後方参照フレームの単位領域0番、1番、…、4番に属する動きベクトルmvCol0〜mvCol4の値が格納されている。
また、動きベクトル探索部62は、後方参照フレームの各単位領域の動きベクトルが双方向予測フレームにおいてどの単位領域を通過するかを求め、通過する単位領域(以下、単に「通過領域」ということもある)に関する情報を通過領域番号保持部66に保存する。
図6は、通過領域番号保持部66に記憶される通過領域に関する情報を説明する図である。通過領域番号保持部66の保存領域は、双方向予測フレームの単位領域番号に対応づけて分けられており、各保存領域には、双方向予測フレームの対応する単位領域を通過する後方参照フレームの動きベクトル(以下、単に「通過動きベクトル」ということもある)がある場合に、その通過動きベクトルが定義された後方参照フレームの単位領域番号が格納される。
同図の例では、保存領域0番(符号66a)には、双方向予測フレームの単位領域0番を通過する通過動きベクトルが属する後方参照フレームの単位領域の番号0および1が格納されている。
同様に、保存領域1番(符号66b)には、双方向予測フレームの単位領域1番を通過する通過動きベクトルが属する後方参照フレームの単位領域の番号4が格納されており、保存領域2番(符号66c)には、双方向予測フレームの単位領域2番を通過する通過動きベクトルが属する後方参照フレームの単位領域の番号2、3および18が格納されている。
動きベクトル探索部62は、後方参照フレームの各単位領域について動きベクトルを求めたときに、その動きベクトルが通過する双方向予測フレームの単位領域を求め、その通過する単位領域に対応する通過領域番号保持部66の保存領域に後方参照フレームの単位領域番号を保存していく。
たとえば、動きベクトル探索部62は、後方参照フレームの単位領域0番について求めた動きベクトルが双方向予測フレームの単位領域0番を通過する場合、その通過する単位領域0番に対応する保存領域0番に後方参照フレームの単位領域の番号0を格納する。
同様にして、後方参照フレームの単位領域1番、2番、3番、4番、18番の動きベクトルが、双方向予測フレームの単位領域0番、2番、2番、1番、2番をそれぞれ通過するとき、動きベクトル探索部62は、双方向予測フレームの単位領域0番に対応する保存領域0番に、後方参照フレームの単位領域の番号1をさらに格納し、双方向予測フレームの単位領域1番に対応する保存領域1番に、後方参照フレームの単位領域の番号4を格納し、双方向予測フレームの単位領域2番に対応する保存領域2番に、後方参照フレームの単位領域の番号2、3、18を格納する。
このようにして、図6に示した、双方向予測フレームの各単位領域番号に対して、その単位領域を通過する動きベクトルの属する後方参照フレームの単位領域番号のリストを対応づけたテーブルが得られる。後方参照フレームを参照する双方向予測フレームが複数ある場合は、このテーブルは双方向予測フレーム毎に作られる。
再び、図4を参照し、動きベクトル探索部62が、双方向予測フレームの動き探索を行う場合の動作を説明する。
基準ベクトル予測部68は、双方向予測フレームの動きベクトルを求めるべき対象単位領域について、その対象単位領域を通過する後方参照フレームの動きベクトルが属する後方参照フレームの単位領域番号を通過領域番号保持部66から読み出す。次に、基準ベクトル予測部68は、読み出された後方参照フレームの単位領域番号にもとづいて、動きベクトル保持部64から、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルの値を読み出す。
図5および図6の例で言えば、基準ベクトル予測部68は、双方向予測フレームの対象単位領域0番を通過する通過動きベクトルが属する後方参照フレームの単位領域番号として0番と1番を通過領域番号保持部66から読み出す。次に、基準ベクトル予測部68は、読み出された後方参照フレームの単位領域0番および1番の動きベクトルmvCol0およびmvCol1の値を通過動きベクトルとして動きベクトル保持部64から読み出す。
基準ベクトル予測部68は、動きベクトル保持部64から読み出した通過動きベクトルを参照して、双方向予測フレームの対象単位領域に適用すべき基準ベクトルmvCol’を決定し、動きベクトル探索部62に与える。
双方向予測フレームの対象単位領域を通過する通過動きベクトルが複数ある場合、基準ベクトル予測部68は、いずれか1つの通過動きベクトルを基準ベクトルとして選択してもよく、あるいは、それらの中から一部もしくはすべてを選択し、組み合わせて用いてもよい。また、対象単位領域を通過する通過動きベクトルが複数ある場合、基準ベクトル予測部68は、いずれの動きベクトルを選択して基準ベクトルとしたか、あるいは、いかなる優先順位で複数の通過動きベクトルの中から基準ベクトルを選択したかなどを示す基準ベクトル選択情報を必要に応じて符号化するために可変長符号化部90に与える。
動きベクトル探索部62は、基準ベクトル予測部68から与えられた基準ベクトルを双方向予測フレームの対象単位領域に適用し、実際の動きに合わせるため差分ベクトルΔVにより最適化する。動きベクトル探索部62は、差分ベクトルΔVにより最適化された基準ベクトルにもとづいて線形予測することにより、対象単位領域の順方向動きベクトルmvL0と逆方向動きベクトルmvL1を求める。動きベクトル探索部62は、求めた順方向動きベクトルmvL0と逆方向動きベクトルmvL1により、対象単位領域を双方向で動き補償予測し、予測画像を生成する。動きベクトル探索部62は、予測画像を差分器12および加算器14に与え、差分ベクトルΔVを動きベクトル情報として可変長符号化部90に与える。
図7(a)〜(c)は、動き補償部60により改良ダイレクトモードによる動き補償を実行する手順を説明する図である。図7(a)〜(c)は、通常のダイレクトモードによる動き補償を説明した図2(a)〜(c)と同符号を用いて、改良ダイレクトモードによる動き補償を説明する図であり、図2(a)〜(c)と共通する説明は省略する。
後方参照Pフレーム4を符号化する際、動きベクトル探索部62は、図7(a)に示すように、後方参照Pフレーム4の各マクロブロックの動きベクトルを求めて、動きベクトル保持部64に保存する。ここでは、後方参照Pフレーム4の第1のマクロブロック210の動きベクトルmvCol(符号230)と、第2のマクロブロック240の動きベクトルmvCol(符号250)を図示している。
対象Bフレーム2を符号化する際、基準ベクトル予測部68は、図7(b)に示すように、動きベクトル保持部64に保持された後方参照Pフレーム4の各マクロブロックの動きベクトルのうち、対象Bフレーム2の対象マクロブロック220を通過する動きベクトルを当該対象マクロブロック220の基準動きベクトルmvCol’(符号252)として選択する。
図7(a)の第1のマクロブロック210の動きベクトルmvCol(符号230)は、対象Bフレーム2の対象マクロブロック220を通過しないので、基準動きベクトルとして選択されることはない。一方、図7(a)の第2のマクロブロック240の動きベクトルmvCol(符号250)は、対象Bフレーム2の対象マクロブロック220を通過するので、基準動きベクトルの候補となる。
一般に、対象Bフレーム2の対象マクロブロック220を通過する後方参照Pフレーム4の動きベクトルは複数存在することもあるが、ここでは1つしか存在しないとして、図7(a)の第2のマクロブロック240の動きベクトルmvCol(符号250)が、図7(b)に示すように、そのまま対象マクロブロック220の基準ベクトルmvCol’(符号252)として選ばれた場合を図示している。
次に、動きベクトル探索部62は、図7(c)に示すように、対象Bフレーム2の対象マクロブロック220の実際の動きに合わせるために、基準ベクトルmvCol’(符号252)を水平方向、垂直方向にそれぞれΔVx、ΔVyだけ平行移動させ、最適な動きベクトル(符号254)を求める。差分ベクトルΔV=(ΔVx、ΔVy)は、基準ベクトルmvCol’(符号252)にもとづいて線形予測された対象マクロブロック220の移動位置と実際の移動位置のずれを示すものである。
動きベクトル探索部62は、対象Bフレーム2の対象マクロブロック220の順方向動きベクトルmvL0と、逆方向動きベクトルmvL1を、それぞれ、次式のように、基準ベクトルmvCol’をフレーム間の時間間隔の比で内分し、差分ベクトルΔVにより補正することにより求める。
mvL0=mvCol×tb/td+ΔV
mvL1=mvL0−mvCol=mvCol×(tb−td)/td+ΔV
mvL1=mvL0−mvCol=mvCol×(tb−td)/td+ΔV
動きベクトル探索部62は、求めた順方向動きベクトルmvL0と逆方向動きベクトルmvL1を用いて対象マクロブロック220を動き補償し、予測画像を生成する。
図7(b)で説明したように、対象Bフレーム2の対象マクロブロック220の基準ベクトルmvCol’(符号252)として、対象Bフレーム2の対象マクロブロック220を通過する後方参照Pフレーム4の動きベクトルを選ぶため、基準ベクトルmvCol’は、対象マクロブロック220の実際の動きベクトルに近いものである可能性が高い。そのため、この基準ベクトルmvCol’を用いて、前方参照Pフレーム1、後方参照Pフレーム4との間で動き予測を行うと、予測誤差が小さくなり、符号化効率が良い。
図8(a)〜(c)は、上述の改良ダイレクトモードによる動き補償の効果を具体的な例で説明する図である。図8(a)〜(c)は、図3(a)〜(c)と同符号を用いて、改良ダイレクトモードによる動き補償を説明する図であり、図3(a)〜(c)と共通する説明は省略する。
図8(b)の対象Bフレーム2の領域400bの実際の動きは、この領域400b内にある正方形のオブジェクト410bの順方向および逆方向の動きに対応して、図示された水平方向の順方向動きベクトルmvL0および逆方向動きベクトルmvL1で表されるとする。
図8(c)は、対象Bフレーム2の領域400bと同位置にある後方参照Pフレーム4の領域400cとその隣接領域402のそれぞれの動きベクトルを示す。対象Bフレーム2の領域400bと同位置にある後方参照Pフレーム4の領域400cの動きベクトル(符号420)は、この領域400c内にある円形のオブジェクト412cの動きに対応して、左上に向かう斜め方向の動きを示している。一方、後方参照Pフレーム4の隣接領域402の動きベクトルmvCol(符号422)は、この隣接領域402内にある正方形のオブジェクト410cの動きに対応して、水平方向の動きを示しており、対象Bフレーム2の領域400bを通過する。
改良ダイレクトモードでは、対象Bフレーム2の領域400bを通過する動きベクトルを基準ベクトルとするから、図8(c)に示された後方参照Pフレーム4の隣接領域400cの動きベクトルmvColを平行移動させて対象Bフレーム2の領域400bの基準ベクトルとして利用する。この例では、基準ベクトルは水平方向であり、実際の動きベクトルも水平方向であるから、両者の傾きは一致し、この基準ベクトルを利用して動き予測を行うと、予測誤差が小さくなり、符号量を減らすことができる。
実施の形態2
実施の形態2は、実施の形態1の符号化装置100において、動き補償部60の一部の構成と動作が異なる。変形の形態2では、実施の形態1と同様、動き補償部60の動きベクトル探索部62は、後方参照フレームの各単位領域の動きベクトルが双方向予測フレームにおいて通過する単位領域(「通過領域」)を求め、通過領域に関する情報を通過領域番号保持部66に保存するが、通過領域番号保持部66における通過領域に関する情報の保存形式が異なる。それに伴い、動きベクトル探索部62と基準ベクトル予測部68の動作が異なる。実施の形態1と同じ構成と動作については説明を省き、異なる構成と動作についてのみ説明する。
実施の形態2は、実施の形態1の符号化装置100において、動き補償部60の一部の構成と動作が異なる。変形の形態2では、実施の形態1と同様、動き補償部60の動きベクトル探索部62は、後方参照フレームの各単位領域の動きベクトルが双方向予測フレームにおいて通過する単位領域(「通過領域」)を求め、通過領域に関する情報を通過領域番号保持部66に保存するが、通過領域番号保持部66における通過領域に関する情報の保存形式が異なる。それに伴い、動きベクトル探索部62と基準ベクトル予測部68の動作が異なる。実施の形態1と同じ構成と動作については説明を省き、異なる構成と動作についてのみ説明する。
図9は、実施の形態2に係る通過領域番号保持部66に記憶される通過領域に関する情報を説明する図である。
通過領域番号保持部66の保存領域は、後方参照フレームの単位領域番号に対応づけて分けられており、各保存領域には、対応する単位領域で求められた後方参照フレームの動きベクトルが通過する双方向予測フレームの単位領域(「通過領域」)の番号が格納される。
同図の例では、保存領域0番(符号66a)には、後方参照フレームの単位領域0番に属する動きベクトルが通過する双方向予測フレームの単位領域の番号0が格納されている。
同様に、保存領域1、2、3、4番(符号66b、66c、66d、66e)には、それぞれ後方参照フレームの単位領域1、2、3、4番に属する動きベクトルが通過する双方向予測フレームの単位領域の番号0、2、2、1が格納されている。
動きベクトル探索部62は、後方参照フレームの各単位領域について動きベクトルを求めたときに、その動きベクトルが通過する双方向予測フレームの単位領域を求め、その通過する単位領域の番号を、後方参照フレームの単位領域に対応する通過領域番号保持部66の保存領域に保存していく。
たとえば、動きベクトル探索部62は、後方参照フレームの単位領域0番について求めた動きベクトルが双方向予測フレームの単位領域0番を通過する場合、その通過する単位領域の番号0を、後方参照フレームの単位領域0番に対応する保存領域0番に格納する。
同様に、動きベクトル探索部62は、後方参照フレームの単位領域1、2、3、4番の動きベクトルが、双方向予測フレームの単位領域0、2、2、1番をそれぞれ通過するとき、その通過する単位領域の番号0、2、2、1を後方参照フレームの単位領域1、2、3、4番に対応する保存領域1、2、3、4番にそれぞれ格納する。
このようにして、図9に示した、後方参照フレームの各単位領域番号に対して、その単位領域に属する動きベクトルが通過する双方向予測フレームの単位領域番号を対応づけたテーブルが得られる。後方参照フレームを参照する双方向予測フレームが複数ある場合は、このテーブルは双方向予測フレーム毎に作られる。
基準ベクトル予測部68は、通過領域番号保持部66に保持された通過領域に関する情報を検索して、双方向予測フレームの動きベクトルを求めるべき対象単位領域について、その対象単位領域を通過する後方参照フレームの動きベクトルが属する後方参照フレームの単位領域番号を取得する。
図9の例で言えば、対象単位領域の番号が2番であるとき、基準ベクトル予測部68は、通過領域番号保持部66を検索して、値2が格納されている保存領域の番号2、3から、対象単位領域2番を通過する動きベクトルが属する後方参照フレームの単位領域の番号2、3を取得する。
次に、基準ベクトル予測部68は、取得された後方参照フレームの単位領域番号にもとづいて、動きベクトル保持部64から、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルの値を読み出す。
図5の例で言えば、取得された後方参照フレームの単位領域2番および3番の動きベクトルmvCol2およびmvCol3の値を通過動きベクトルとして動きベクトル保持部64から読み出す。
これ以降の動作は、実施の形態1の動作と同じである。
実施の形態3
実施の形態3は、実施の形態1の符号化装置100において、動き補償部60の一部の構成と動作が異なる。実施の形態3では、動き補償部60は通過領域番号保持部66の構成をもたない。それに伴い、動きベクトル探索部62と基準ベクトル予測部68の動作が異なる。実施の形態1と同じ構成と動作については説明を省き、異なる構成と動作についてのみ説明する。
実施の形態3は、実施の形態1の符号化装置100において、動き補償部60の一部の構成と動作が異なる。実施の形態3では、動き補償部60は通過領域番号保持部66の構成をもたない。それに伴い、動きベクトル探索部62と基準ベクトル予測部68の動作が異なる。実施の形態1と同じ構成と動作については説明を省き、異なる構成と動作についてのみ説明する。
図10は、実施の形態3に係る動き補償部60の構成を説明する図である。実施の形態1とは異なり、動き補償部60は通過領域番号保持部66の構成を含まない。動きベクトル探索部62は、後方参照フレームの各単位領域における動きベクトルを求め、動きベクトル保持部64に保存するが、実施の形態1とは異なり、動き補償部60は、求めた動きベクトルが通過する双方向予測フレームの単位領域を求めることはしない。動きベクトル保持部64の構成は、実施の形態1と同じである。
基準ベクトル予測部68は、動きベクトル保持部64から後方参照フレームの各単位領域の動きベクトルの値を読み出し、各動きベクトルが通過する双方向予測フレームの単位領域を求める。次に、その結果を利用して、基準ベクトル予測部68は、双方向予測フレームの動きベクトルを求めるべき対象単位領域について、その対象単位領域を通過する後方参照フレームの動きベクトルを特定する。これ以降の動作は、実施の形態1の動作と同じである。
この構成によれば、基準ベクトル予測部68が、双方向予測フレームの符号化の際に、後方参照フレームの動きベクトルが通過する双方向予測フレームの単位領域を求めるため、動きベクトル探索部62は、後方参照フレームの符号化の際に、後方参照フレームの動きベクトルが通過する双方向予測フレームの単位領域を求める必要はなく、また、その通過する双方向予測フレームの単位領域に関する情報を保存しておくメモリも必要としない。したがって、この構成は、動き補償部60が利用できるメモリ容量に制限がある場合に、特に効果的である。
以下、実施の形態1〜3の符号化装置100のいずれにも共通することとして、双方向予測フレームの符号化対象の単位領域を通過する後方参照フレームの動きベクトルが複数存在する場合に、基準ベクトルを選定する基準について詳しく説明する。
双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルが複数ある場合に、基準ベクトル予測部68は、各通過動きベクトルが属する単位領域が所定の制約領域内にあるかどうかを判定し、制約領域内にある通過動きベクトルを基準ベクトルの候補としてもよい。
図11は、通過動きベクトルの属する単位領域と制約領域の関係を説明する図である。Bフレーム2の対象マクロブロック220と同位置にある後方参照Pフレーム4のマクロブロック210を中心とする所定の画素幅の領域を制約領域として設定する。
後方参照Pフレーム4の第1のマクロブロック240の動きベクトル(符号260)および第2のマクロブロック242の動きベクトル(符号262)は、ともに対象マクロブロック220を通過する。しかし、第1のマクロブロック240は制約領域内にあるが、第2のマクロブロック242は制約領域外にある。この場合、制約領域内にある第1のマクロブロック240の動きベクトル(符号260)は、基準ベクトルの候補になるが、制約領域外にある第2のマクロブロック242の動きベクトル(符号262)は、基準ベクトルの候補から外される。
双方向予測フレームの対象単位領域を通過する通過動きベクトルが複数ある場合、基準ベクトル予測部68は、いずれか1つの通過動きベクトルを基準ベクトルとして選択してもよく、あるいは、それらの中から一部もしくはすべてを選択し、組み合わせて基準ベクトルを生成してもよい。複数の通過動きベクトルから選択したり、複数の通過動きベクトルを組み合わせることにより、基準ベクトルの精度が向上し、予測誤差がより少ない予測画像を得ることができるため、差分画像に関する符号量を一層減少させ、符号化効率を上げることができる。
基準ベクトル予測部68は、複数の通過動きベクトルから基準ベクトルを選択する際の優先順位として、以下の基準を用いることができる。以下の基準は単独で用いられてもよく、複数組み合わせて用いられてもよい。
双方向予測フレームの対象単位領域を通過する複数の通過動きベクトルに対して、その対象単位領域の中央と、通過動きベクトルが通過する位置との距離を基準として優先順位を設ける。距離が短い、すなわち、通過点が対象単位領域に近い通過動きベクトルほど、優先的に基準ベクトルとして選択される。
複数の通過動きベクトルの平均値を基準として、平均値に近い順に優先順位を設ける。平均的な動きに近い通過動きベクトルほど、優先的に基準ベクトルとして選択される。平均値の代わりに、メジアン(中央値)もしくはモード(最頻値)を基準としてもよい。あるいは、複数の通過動きベクトルのうち、最大のものと最小のものの平均値を基準として用いてもよい。
複数の通過動きベクトルの大きさを基準に優先順位を設けてもよい。たとえば、通過動きベクトルの大きさが小さいものから順に優先順位を高く設定する。動き量が小さい通過動きベクトルほど、優先的に基準ベクトルとして選択される。
双方向予測フレームの対象単位領域の周囲の隣接単位領域の符号化済みの動きベクトルの大きさを基準として優先順位を設ける。周囲の隣接単位領域とは、1単位領域分、上、下、左、右、右上、左上、右下、左下を指す。符号化済みの動きベクトルが複数ある場合は、それらのうちの1つを選択してもよく、それらのうちのいくつかを選択し、それらの平均値、メジアン、モード、最大値と最小値の平均のいずれかを基準として優先順位を設けてもよい。
双方向予測フレームの対象単位領域を通過する複数の通過動きベクトルに対して、対象単位領域と同位置にある後方参照フレームの動きベクトルを基準として、その同位置の動きベクトルの値に近いものから順に、優先順位を設ける。または、対象単位領域と同位置にある前方参照フレームの動きベクトルを基準として、その同位置の動きベクトルの値に近いものから順に、優先順位を設ける。
符号化対象のフレーム、後方参照フレーム、前方参照フレームのいずれかのグローバル動きベクトルを基準として、そのグローバル動きベクトルの値に近い順に、複数の通過動きベクトルの間に優先順位を設ける。
デジタルビデオカメラの信号処理部など符号化装置100の外部の構成から取得されるフレーム全体に関する動きベクトル情報をもとにして得られた、双方向予測フレームの対象単位領域のベクトルを基準として、その基準値に近い順に、複数の通過動きベクトルの間に優先順位を設ける。たとえば、画面全体がパン、チルト、ズームのような動きをする場合、そのような画面全体の動きをアフィン変換等のパラメータ値で表すことができる。このパラメータ値をもとにして、対象単位領域のベクトルを求め、基準値とすることができる。
上記の基準において、「距離」は、水平方向と垂直方向の距離の和でもよく、すなわち水平方向と垂直方向の各距離の自乗和などで得られる直線距離であってもよい。動きベクトルの大きさで順位を定める場合、動きベクトルの大きさの差を、水平方向の差と垂直方向の差の和で求めてもよく、水平方向の差の自乗と垂直方向の差の自乗の和で求めてもよい。
複数の通過動きベクトルを選択して、組み合わせて基準ベクトルを生成する場合の方法として、選択された通過動きベクトルの平均を基準ベクトルとしてもよく、選択された通過動きベクトルの加重平均を基準ベクトルとしてもよい。加重平均を求める場合の重みは、上述の複数の通過動きベクトルの優先度を決めるのに用いた指標のいずれかを用いて決めてもよく、もしくはそれらの指標を組み合わせて決めてもよい。
通過動きベクトルが複数ある場合、複数の通過動きベクトルからの選択を任意に行い、いずれの動きベクトルを選択したかを示す選択情報を符号化してもよい。選択情報は、基準ベクトルとして選択された動きベクトルが属する後方参照フレームの単位領域の位置番号であってもよく、選択の際に用いた優先順位の番号であってもよい。
また、複数の通過動きベクトルからの選択を上記の基準で説明した優先順位を用いて規則的に行ってもよい。基準ベクトルの選択を規則的に行う限り、復号側でその規則がわかっていれば、基準ベクトルとして選択された動きベクトルを特定することができるため、通過動きベクトルのいずれを選択したかを示す選択情報を符号化する必要がなく、符号量の削減を図ることができる。
双方向予測フレームの対象単位領域を通過する通過動きベクトルが複数ある場合に、選択の候補となる通過動きベクトルの数を制限してもよい。候補数を制限する際、双方向予測フレームの対象単位領域の位置と、通過動きベクトルが属する後方参照フレームの単位領域の位置とが近いものを優先したり、通過動きベクトルの大きさが小さいものを優先したり、通過動きベクトルの通過点が対象単位領域の中央に近いものを優先するなどにより、候補となる通過動きベクトルの優先順位を定めてもよい。候補数を制限することにより、実施の形態1の通過領域番号保持部66の容量を小さくすることができる。
双方向予測フレームの対象単位領域を通過する動きベクトルが1つもない場合、以下の方法で基準ベクトルを定めてもよい。
対象単位領域の最も近くを通過している動きベクトルを基準ベクトルとする。対象単位領域と同位置の前方参照フレームもしくは後方参照フレーム内の単位領域の動きベクトルを基準ベクトルとする。
対象単位領域の周辺の隣接単位領域の符号化済み動きベクトルを基準ベクトルとする。周囲の隣接単位領域の定義は上述の通りである。符号化済みの動きベクトルが複数ある場合は、それらのうちの1つを基準ベクトルとしてもよく、それらのうちのいくつかを選択し、それらの平均値、メジアン、モード、最大値と最小値の平均のいずれかを基準ベクトルとしてもよい。
符号化対象のフレーム、後方参照フレーム、前方参照フレームのいずれかのグローバル動きベクトルを基準ベクトルとする。デジタルビデオカメラの信号処理部など符号化装置100の外部の構成から取得されるフレーム全体に関する動きベクトル情報をもとにして得られた、双方向予測フレームの対象単位領域のベクトルを基準ベクトルとする。
以上述べたように、実施の形態1から3の符号化装置100によれば、双方向予測フレームの対象単位領域を符号化する際に、既に符号化された参照フレームの動きベクトルの内、双方向予測フレームの当該対象単位領域を通過する動きベクトルを基準ベクトルとして動き補償予測符号化を行うため、基準ベクトルと当該対象単位領域の実際の動きベクトルの誤差が小さく、動きベクトル符号量を削減して、動画像全体の圧縮符号化効率を高めることができる。
画像の解像度が高くなると、動きベクトルの大きさが大きくなるため、符号全体に占める動きベクトル情報の符号量の割合が増える。したがって、本実施の形態の改良ダイレクトモードによる動きベクトル符号量の削減効果が大きくなり、他の符号化モードと比較して符号化効率が一層向上する。
図12は、実施の形態1から3に共通する復号装置300の構成図である。これらの機能ブロックもハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現することができる。
復号装置300は、符号化装置100により符号化された符号化ストリームの入力を受け取り、符号化ストリームを復号して出力画像を生成する。
可変長復号部310は、入力された符号化ストリームを可変長復号し、復号された画像データを逆量子化部320に供給し、動きベクトル情報を動き補償部360に供給する。
逆量子化部320は、可変長復号部310により復号された画像データを逆量子化し、逆DCT部330に供給する。逆量子化部320により逆量子化された画像データはDCT係数である。逆DCT部330は、逆量子化部320により逆量子化されたDCT係数を逆離散コサイン変換(IDCT)することにより、元の画像データを復元する。逆DCT部330により復元された画像データは、加算器312に供給される。
加算器312は、逆DCT部330から供給された画像データが、Iフレームである場合、そのIフレームの画像データをそのまま出力するとともに、PフレームやBフレームの予測画像を生成するための参照画像として、フレームバッファ380に格納する。
加算器312は、逆DCT部330から供給された画像データが、Pフレームである場合、その画像データは差分画像であるから、逆DCT部330から供給された差分画像と動き補償部360から供給される予測画像を加算することにより、元の画像データを復元し、出力する。
動き補償部360は、可変長復号部310から供給される動きベクトル情報と、フレームバッファ380に格納された参照画像を用いて、PフレームまたはBフレームの予測画像を生成し、加算器312に供給する。改良ダイレクトモードで符号化されたBフレームを復号するための動き補償部360の構成と動作を説明する。
図13は、動き補償部360の構成図である。動き補償予測部362は、フレーム間予測符号化されたフレームについて動き補償を行って、予測画像を加算器312に与える。また、動き補償予測部362は、双方向予測フレームの後方参照先となるフレームの動き補償を行った場合、各単位領域における動きベクトルmvColを動きベクトル保持部364に保存する。
基準ベクトル取得部368は、双方向予測フレームの復号対象の単位領域について、可変長復号部310から復号された基準ベクトル選択情報を受け取り、基準ベクトル選択情報を参照して、動きベクトル保持部364に保持された後方参照フレームの中から基準ベクトルmvCol’を取得する。基準ベクトル選択情報には、基準ベクトルとして参照すべき後方参照フレームの動きベクトルの属する単位領域の番号や、参照すべき後方参照フレームの動きベクトルが複数ある場合の優先順位の番号などが含まれ、後方参照フレームの動きベクトルから当該復号対象の単位領域に適用すべき基準ベクトルを特定可能である。
基準ベクトル取得部368は、取得した基準ベクトルmvCol’を動き補償予測部362に与える。動き補償予測部362は、基準ベクトル取得部368から与えられた基準ベクトルを双方向予測フレームの復号対象の単位領域に適用し、可変長復号部310から取得した差分ベクトルΔVを用いて、復号対象の単位領域の順方向動きベクトルmvL0と逆方向動きベクトルmvL1を求める。動き補償予測部362は、求めた順方向動きベクトルmvL0と逆方向動きベクトルmvL1により、復号対象の単位領域を動き補償し、予測画像を生成する。
本実施の形態の復号装置300によれば、双方向予測フレームの復号対象の単位領域を復号する際に、既に復号された参照フレームの動きベクトルの内、双方向予測フレームの当該復号対象の単位領域を通過する動きベクトルを基準ベクトルとして動き補償を行うため、基準ベクトルと当該復号対象の単位領域の実際の動きベクトルの誤差が小さく、高い精度の動き補償を行って、高画質で動画を再生することができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記の説明では、表示時間の前後のPフレームを用いた双方向予測によりBフレームを動き補償する場合のダイレクトモードを改良した改良ダイレクトモードを説明したが、本実施の形態の符号化装置100の動き補償部60による改良ダイレクトモードは、必ずしも時間前後の参照画像を用いる場合に限定されない。過去の2枚のPフレーム、未来の2枚のPフレームを用いた線形予測において、同様に、2つの差分ベクトルを用いて補正を行うようにしてもよい。
本発明の改良ダイレクトモードによる直接予測と、従来からある前方予測、後方予測、双方向予測、フレーム内予測とを適宜切り替えて用いてもよい。フレーム毎もしくは単位領域毎に最適な予測方法を選ぶことにより、より効率のよい符号化が可能となる。
10 ブロック生成部、 12 差分器、 14 加算器、 20 DCT部、 30 量子化部、 40 逆量子化部、 50 逆DCT部、 60 動き補償部、 62 動きベクトル探索部、 64 動きベクトル保持部、 66 通過領域番号保持部、 68 基準ベクトル予測部、 80 フレームバッファ、 90 可変長符号化部、 100 符号化装置、 300 復号装置、 310 可変長復号部、 312 加算器、 320 逆量子化部、 330 逆DCT部、 360 動き補償部、 380 フレームバッファ、 362 動き補償予測部、 364 動きベクトル保持部、 368 基準ベクトル取得部。
Claims (6)
- 動画像を構成するピクチャであって、双方向ピクチャ間予測符号化されるピクチャの符号化対象領域の符号化の際に参照される後方参照ピクチャの動きベクトルであって、その動きベクトルの示す動きが前記符号化対象領域内を通過するものを、前記符号化対象領域の順方向動きベクトルと逆方向動きベクトルを線形予測する際の線形予測の基準となるベクトルとして選択することを特徴とする符号化方法。
- 前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルの中から、所定の優先順位のもと、少なくとも1つの動きベクトルを前記線形予測の基準となるベクトルとして選択することを特徴とする請求項1に記載の符号化方法。
- 前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルを組み合わせて得られるベクトルを前記線形予測の基準となるベクトルとして選択することを特徴とする請求項1または2に記載の符号化方法。
- 前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、選択の候補となる前記動きベクトルの個数を所定の上限値に制限し、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択することを特徴とする請求項1から3のいずれかに記載の符号化方法。
- 前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが属する当該後方参照ピクチャ内の領域が所定の制限領域内にある場合に、その制限領域内にある前記動きベクトルを選択の候補とし、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択することを特徴とする請求項1から4のいずれかに記載の符号化方法。
- 前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが存在しない場合、前記符号化対象領域の近傍を通過する前記後方参照ピクチャの動きベクトルを前記線形予測の基準となるベクトルとして選択することを特徴とする請求項1から5のいずれかに記載の符号化方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005250290A JP2007067731A (ja) | 2005-08-30 | 2005-08-30 | 符号化方法 |
US11/511,439 US20070047649A1 (en) | 2005-08-30 | 2006-08-29 | Method for coding with motion compensated prediction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005250290A JP2007067731A (ja) | 2005-08-30 | 2005-08-30 | 符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007067731A true JP2007067731A (ja) | 2007-03-15 |
Family
ID=37804060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005250290A Withdrawn JP2007067731A (ja) | 2005-08-30 | 2005-08-30 | 符号化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070047649A1 (ja) |
JP (1) | JP2007067731A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012034327A (ja) * | 2010-07-06 | 2012-02-16 | Mitsubishi Electric Corp | フレーム補間装置及び方法、並びにプログラム及び記録媒体 |
JP5213964B2 (ja) * | 2008-11-07 | 2013-06-19 | 三菱電機株式会社 | 動画像符号化装置及び動画像復号装置 |
JP2013529877A (ja) * | 2010-07-12 | 2013-07-22 | 聯發科技股▲ふん▼有限公司 | 時間的運動ベクトル予測の方法と装置 |
US8553764B2 (en) | 2010-03-17 | 2013-10-08 | Fujitsu Limited | Method and device for encoding moving picture and method and device for decoding moving picture |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4853199B2 (ja) * | 2006-09-25 | 2012-01-11 | 株式会社ニコン | 画像圧縮方法、装置、電子カメラ、およびプログラム |
NO328076B1 (no) * | 2007-02-09 | 2009-11-23 | Tandberg Telecom As | Fremgangsmate for pikselprediksjon med redusert kompleksitet. |
JP5053774B2 (ja) * | 2007-09-14 | 2012-10-17 | キヤノン株式会社 | 動画像符号化装置 |
US8218638B2 (en) * | 2007-10-31 | 2012-07-10 | Broadcom Corporation | Method and system for optical flow based motion vector estimation for picture rate up-conversion |
JP2011147049A (ja) * | 2010-01-18 | 2011-07-28 | Sony Corp | 画像処理装置および方法、並びにプログラム |
JP2011151683A (ja) * | 2010-01-22 | 2011-08-04 | Sony Corp | 画像処理装置および方法 |
KR101449679B1 (ko) * | 2010-08-18 | 2014-10-15 | 에스케이텔레콤 주식회사 | 영상 부호화/복호화 장치 및 방법, 및 참조픽처 인덱싱 장치 및 방법 |
GB2487200A (en) * | 2011-01-12 | 2012-07-18 | Canon Kk | Video encoding and decoding with improved error resilience |
WO2012097376A1 (en) * | 2011-01-14 | 2012-07-19 | General Instrument Corporation | Spatial block merge mode |
EP2664146A1 (en) * | 2011-01-14 | 2013-11-20 | Motorola Mobility LLC | Joint spatial and temporal block merge mode for hevc |
GB2491589B (en) | 2011-06-06 | 2015-12-16 | Canon Kk | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
CN103828364B (zh) * | 2011-09-29 | 2018-06-12 | 夏普株式会社 | 图像解码装置、图像解码方法及图像编码装置 |
US9531990B1 (en) | 2012-01-21 | 2016-12-27 | Google Inc. | Compound prediction using multiple sources or prediction modes |
US8737824B1 (en) | 2012-03-09 | 2014-05-27 | Google Inc. | Adaptively encoding a media stream with compound prediction |
US9185414B1 (en) | 2012-06-29 | 2015-11-10 | Google Inc. | Video encoding using variance |
US9628790B1 (en) | 2013-01-03 | 2017-04-18 | Google Inc. | Adaptive composite intra prediction for image and video compression |
CN106027944B (zh) * | 2013-05-15 | 2019-03-05 | 南京双电科技实业有限公司 | 超高清数字电视接收机的工作方法 |
US9374578B1 (en) | 2013-05-23 | 2016-06-21 | Google Inc. | Video coding using combined inter and intra predictors |
US9609343B1 (en) | 2013-12-20 | 2017-03-28 | Google Inc. | Video coding using compound prediction |
WO2019084776A1 (zh) * | 2017-10-31 | 2019-05-09 | 华为技术有限公司 | 图像块的候选运动信息的获取方法、装置及编解码器 |
WO2020048205A1 (zh) | 2018-09-04 | 2020-03-12 | 华为技术有限公司 | 应用于双向帧间预测中的参考帧获取方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618439B1 (en) * | 1999-07-06 | 2003-09-09 | Industrial Technology Research Institute | Fast motion-compensated video frame interpolator |
ES2592810T3 (es) * | 2002-04-19 | 2016-12-01 | Panasonic Intellectual Property Corporation Of America | Método de cálculo de vectores de movimiento |
US7154952B2 (en) * | 2002-07-19 | 2006-12-26 | Microsoft Corporation | Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures |
JP3898606B2 (ja) * | 2002-09-12 | 2007-03-28 | 株式会社東芝 | 動きベクトル検出方法及び装置並びにフレーム補間画像作成方法及び装置 |
EP1422928A3 (en) * | 2002-11-22 | 2009-03-11 | Panasonic Corporation | Motion compensated interpolation of digital video signals |
EP1747678B1 (en) * | 2004-05-04 | 2015-01-07 | Qualcomm, Incorporated | Method and apparatus for motion compensated frame rate up conversion |
-
2005
- 2005-08-30 JP JP2005250290A patent/JP2007067731A/ja not_active Withdrawn
-
2006
- 2006-08-29 US US11/511,439 patent/US20070047649A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5213964B2 (ja) * | 2008-11-07 | 2013-06-19 | 三菱電機株式会社 | 動画像符号化装置及び動画像復号装置 |
US8553764B2 (en) | 2010-03-17 | 2013-10-08 | Fujitsu Limited | Method and device for encoding moving picture and method and device for decoding moving picture |
JP2012034327A (ja) * | 2010-07-06 | 2012-02-16 | Mitsubishi Electric Corp | フレーム補間装置及び方法、並びにプログラム及び記録媒体 |
JP2013529877A (ja) * | 2010-07-12 | 2013-07-22 | 聯發科技股▲ふん▼有限公司 | 時間的運動ベクトル予測の方法と装置 |
US9124898B2 (en) | 2010-07-12 | 2015-09-01 | Mediatek Inc. | Method and apparatus of temporal motion vector prediction |
US9961364B2 (en) | 2010-07-12 | 2018-05-01 | Hfi Innovation Inc. | Method and apparatus of temporal motion vector prediction |
Also Published As
Publication number | Publication date |
---|---|
US20070047649A1 (en) | 2007-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11943465B2 (en) | Video encoding and decoding | |
JP2007067731A (ja) | 符号化方法 | |
JP6701409B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法、及びプログラム | |
JP5563148B2 (ja) | 動画像符号化方法及び動画像復号化方法 | |
JP2006279573A (ja) | 符号化装置と方法、ならびに復号装置と方法 | |
JP4703449B2 (ja) | 符号化方法 | |
JP2007329693A (ja) | 画像符号化装置、及び画像符号化方法 | |
JP2008011455A (ja) | 符号化方法 | |
JP2011199362A (ja) | 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法 | |
WO2006035584A1 (ja) | 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体 | |
WO2012098845A1 (ja) | 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置 | |
JP2007036888A (ja) | 符号化方法 | |
JP2017200215A (ja) | 動画像符号化方法及び動画像復号化方法 | |
JP2007036889A (ja) | 符号化方法 | |
CN117356097A (zh) | 用于视频处理的方法、设备和介质 | |
JP2007096540A (ja) | 符号化方法 | |
JP4243286B2 (ja) | 符号化方法 | |
JP2003348595A (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JP4169767B2 (ja) | 符号化方法 | |
JP2018085751A (ja) | 動画像符号化方法及び動画像復号化方法 | |
JP2007036887A (ja) | 符号化方法 | |
JP2016106494A (ja) | 動画像符号化方法及び動画像復号化方法 | |
JP5893178B2 (ja) | 動画像符号化方法及び動画像復号化方法 | |
JP5911982B2 (ja) | 画像復号化方法 | |
TW202420819A (zh) | 視訊編解碼中帶越界檢查的預測生成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090709 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090709 |