JP2013030978A - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
JP2013030978A
JP2013030978A JP2011165574A JP2011165574A JP2013030978A JP 2013030978 A JP2013030978 A JP 2013030978A JP 2011165574 A JP2011165574 A JP 2011165574A JP 2011165574 A JP2011165574 A JP 2011165574A JP 2013030978 A JP2013030978 A JP 2013030978A
Authority
JP
Japan
Prior art keywords
unit
motion vector
address
prediction
pixel position
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
JP2011165574A
Other languages
English (en)
Inventor
Toshiharu Tsuchiya
寿治 土屋
Junichi Tanaka
潤一 田中
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2011165574A priority Critical patent/JP2013030978A/ja
Priority to PCT/JP2012/067718 priority patent/WO2013015118A1/ja
Publication of JP2013030978A publication Critical patent/JP2013030978A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】メモリアクセスを低減することができるようにする。
【解決手段】16×16アドレス補正部は、16×16アドレス生成部からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。CUを越えた参照である場合、16×16アドレス補正部は、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行い、補正された16×16アドレス情報を、メモリアクセス制御部に供給する。メモリアクセス制御部は、動きベクトル保存メモリに対して、16×16アドレス補正部からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。本開示は、例えば、画像処理装置に適用することができる。
【選択図】図9

Description

本開示は画像処理装置および方法に関し、特に、メモリアクセスを低減することができるようにした画像処理装置および方法に関する。
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、MPEG(Moving Picture Experts Group)などがある。
特に、MPEG2(ISO/IEC 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準である。例えば、MPEG2は、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4乃至8Mbpsの符号量(ビットレート)が割り当てられる。また、MPEG2圧縮方式を用いることにより、例えば1920×1088画素を持つ高解像度の飛び越し走査画像であれば18乃至22 Mbpsの符号量(ビットレート)が割り当てられる。これにより、高い圧縮率と良好な画質の実現が可能である。
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
標準化のスケジュールとしては、2003年3月にはH.264及びMPEG-4 Part10 (Advanced Video Coding、以下H.264/AVCと記す)という国際標準となっている。
さらに、このH.264/AVCの拡張として、RGBや4:2:2、4:4:4といった、業務用に必要な符号化ツールや、MPEG-2で規定されていた8x8DCTや量子化マトリクスをも含んだFRExt (Fidelity Range Extension) の標準化が2005年2月に完了した。これにより、H.264/AVCを用いて、映画に含まれるフィルムノイズをも良好に表現することが可能な符号化方式となって、Blu-Ray Disc(商標)等の幅広いアプリケーションに用いられる運びとなった。
しかしながら、昨今、ハイビジョン画像の4倍の、4000×2000画素程度の画像を圧縮したい、あるいは、インターネットのような、限られた伝送容量の環境において、ハイビジョン画像を配信したいといった、更なる高圧縮率符号化に対するニーズが高まっている。このため、先述の、ITU-T傘下のVCEG (=Video Coding Expert Group) において、符号化効率の改善に関する検討が継続され行なわれている。
そして、現在、H.264/AVCより更なる符号化効率の向上を目的として、ITU-TとISO/IECとの共同の標準化団体であるJCTVC (Joint Collaboration Team - Video Coding) により、HEVC (High Efficiency Video Coding) と呼ばれる符号化方式の標準化が進められている。HEVCにおいては、ドラフトとして非特許文献1が発行されている。
Thomas Wiegand,Woo-jin Han,Benjamin Bross,Jens-Rainer Ohm,Gary J. Sullivian,"WD3:Working Draft3 of High-Efficiency Video Coding", JCTVc-E603_d5(version5), 2011年5月20日
HEVCにおいては、上述したH.264/AVCにおけるdirect(ダイレクトモード)およびpmvに代わる技術として、merge(マージモード)およびmvp(予測動きベクトル)が提案されている。どちらの場合も、周辺の動きベクトルのうち最適な動きベクトルを用いるものであるが、周辺の動きベクトルのうち、時間的に異なる動きベクトルを読み出す際のメモリアクセスが非効率的であった。
本開示は、このような状況に鑑みてなされたものであり、周辺の動きベクトルのうち、時間的に異なる動きベクトルを読み出す際のメモリアクセスを低減することができるものである。
本開示の第1の側面の画像処理装置は、時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正するアドレス補正部と、前記アドレス補正部により補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、前記読み出し部により読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部とを備える。
本開示の第1の側面の画像処理方法は、画像処理装置が、時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正し、補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する。
本開示の第2の側面の画像処理装置は、時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正するアドレス補正部と、前記アドレス補正部により補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、前記読み出し部により読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部とを備える。
本開示の第2の側面の画像処理方法は、画像処理装置が、時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正し、補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する。
本開示の第3の側面の画像処理装置は、時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正するアドレス補正部と、前記アドレス補正部により補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、前記読み出し部により読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部とを備える。
本開示の第3の側面の画像処理方法は、画像処理装置が、時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正し、補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する。
本開示の第4の側面の画像処理装置は、時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正するアドレス補正部と、前記アドレス補正部により補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、前記読み出し部により読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部とを備える。
本開示の第4の側面の画像処理方法は、画像処理装置が、時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正し、補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する。
本開示の第5の側面の画像処理装置は、画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存する保存ベクトル選択部と、前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部とを備える。
本開示の第5の側面の画像処理方法は、画像処理装置が、画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存し、前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する。
本開示の第6の側面の画像処理装置は、画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存する保存ベクトル選択部と、前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部とを備える。
本開示の第6の側面の画像処理方法は、画像処理装置が、画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存し、前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する。
本開示の第1の側面においては、時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスが補正され、補正されたアドレスが示す分割領域に対応して保存されている動きベクトルが、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出される。そして、読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像が生成される。
本開示の第2の側面においては、時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスが補正され、補正されたアドレスが示す分割領域に対応して保存されている動きベクトルが、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出される。そして、読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像が符号化される。
本開示の第3の側面においては、時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスが、前記分割領域に隣接する隣接分割領域を示すように補正され、補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルが、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出される。そして、読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像が生成される。
本開示の第4の側面においては、時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスが、前記分割領域に隣接する隣接分割領域を示すように補正され、補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルが、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出される。そして、読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像が符号化される。
本開示の第5の側面においては、画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルが、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存される。そして、前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像が生成される。
本開示の第6の側面においては、画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルが、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存される。そして、前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像が符号化される。
なお、上述の画像処理装置は、独立した装置であっても良いし、1つの画像符号化装置
または画像復号装置を構成している内部ブロックであってもよい。
本開示によれば、画像を処理することができる。特に、メモリアクセスを低減することができる。
画像符号化装置の主な構成例を示すブロック図である。 コーディングユニットの構成例を説明する図である。 マージモードを説明する図である。 予測動きベクトルを説明する図である。 ColPUの決定方法を説明する図である。 ColMVの保存と読み出しを説明する図である。 ColMVの保存方法を説明する図である。 ColMVの読み出し方法を説明する図である。 動きベクトル差分生成部の構成例を示すブロック図である。 HEVC方式において規定されているColPUの決定方法を示す図である。 16×16アドレス補正部によるアドレス補正方法を説明する図である。 符号化処理の流れの例を説明するフローチャートである。 動きベクトル差分生成処理の流れの例を説明するフローチャートである。 時間相関の予測ベクトルの生成処理の流れの例を説明するフローチャートである。 動きベクトル差分生成部の他の構成例を示すブロック図である。 1回目の処理と2回目の処理で同じPUをさしてしまう位置を説明する図である。 16×16アドレス補正部によるアドレス補正方法を説明する図である。 時間相関の予測ベクトルの生成処理の流れの他の例を説明するフローチャートである。 動きベクトル差分生成部のさらに他の構成例を示すブロック図である。 動きベクトルの保存方法を説明する図である。 動きベクトルの保存方法の他の例を説明する図である。 時間相関の予測ベクトルの生成処理の流れのさらに他の例を説明するフローチャートである。 動きベクトルの保存処理の流れを説明するフローチャートである。 動きベクトルの保存処理の流れの他の例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 動きベクトル生成部の構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 動きベクトル生成処理の流れの例を説明するフローチャートである。 時間相関の予測ベクトルの生成処理の流れを説明するフローチャートである。 動きベクトル生成部の他の構成例を示すブロック図である。 時間相関の予測ベクトルの生成処理の流れの他の例を説明するフローチャートである。 動きベクトル生成部のさらに他の構成例を示すブロック図である。 時間相関の予測ベクトルの生成処理の流れのさらに他の例を説明するフローチャートである。 動きベクトルの保存処理の流れを説明するフローチャートである。 動きベクトルの保存処理の流れの他の例を説明するフローチャートである。 パーソナルコンピュータの主な構成例を示すブロック図である。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(パーソナルコンピュータ)
4.第4の実施の形態(テレビジョン受像機)
5.第5の実施の形態(携帯電話機)
6.第6の実施の形態(ハードディスクレコーダ)
7.第7の実施の形態(カメラ)
<1.第1の実施の形態>
[画像符号化装置の構成例]
図1は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、HEVC(High Efficiency Video Coding)方式などが用いられる。
図1の例において、画像符号化装置100は、A/D(Analog / Digital)変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、動きベクトル差分生成部121および動きベクトル保存メモリ122を有する。
A/D変換部101は、入力された画像データをA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。
画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104が出力する変換係数を量子化する。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
可逆符号化部106は、イントラ予測モードを示す情報またはインター予測モードを示す情報、および動きベクトル差分情報などを動きベクトル差分生成部121から取得する。なお、図示されていないが、参照ピクチャ情報などは、動き予測・補償部115から取得される。
可逆符号化部106は、量子化された変換係数を符号化するとともに、イントラ予測モード情報、インター予測モード情報、参照ピクチャ情報、および動きベクトル差分情報、などの情報を、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号
化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部110は、その差分情報にイントラ予測部114から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部110は、その差分情報に動き予測・補償部115から供給される予測画像を加算する。
その加算結果は、デブロックフィルタ111およびフレームメモリ112に供給される。
デブロックフィルタ111は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。
フレームメモリ112は、所定のタイミングにおいて、蓄積されている参照画像を、選択部113を介してイントラ予測部114または動き予測・補償部115に出力する。
例えば、イントラ符号化が行われる画像の場合、フレームメモリ112は、参照画像を、選択部113を介してイントラ予測部114に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ112は、参照画像を、選択部113を介して動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部114に供給する。また、選択部113は、フレームメモリ112から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部115に供給する。
イントラ予測部114は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
イントラ予測部114は、全てのイントラ予測モードで予測画像を生成し、コスト関数値を求めることで、各予測画像を評価し、最適イントラモードを選択する。イントラ予測部114は、最適イントラモードを選択すると、その最適イントラモードで生成された予測画像を、選択部116に供給し、その最適イントラモードのコスト関数値(以下、イントラコスト関数値と称する)を動きベクトル差分生成部121に供給する。
動き予測・補償部115は、インター符号化が行われる画像について、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、全てのインター予測モードについて動き予測を行う。そして、動き予測・補償部115は、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
動き予測・補償部115は、全てのインター予測モードについて、コスト関数値を求めることで、各予測画像を評価し、最適インターモードを選択する。動き予測・補償部115は、最適インターモードを選択すると、その最適インターモードで生成された予測画像を、選択部116に供給する。また、動き予測・補償部115は、その最適インターモードのコスト関数値(以下、インターコスト関数値と称する)、動きベクトル情報および処理対象の符号化単位の領域(CU)の分割情報、アドレス情報、およびサイズ情報などを、動きベクトル差分生成部121に供給する。
選択部116は、動きベクトル差分生成部121からの情報に対応して、イントラ符号化を行う画像の場合、イントラ予測部114の出力を演算部103や演算部110に供給する。選択部116は、動きベクトル差分生成部121からの情報に対応して、インター符号化を行う画像の場合、動き予測・補償部115の出力を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
動きベクトル差分生成部121は、動き予測・補償部115からの情報を用い、対象予測領域の周辺にある周辺領域の動きベクトル情報から、空間相関予測ベクトル情報および時間相関予測ベクトル情報を生成する。特に、動きベクトル生成部221は、動きベクトル保存メモリ122に記憶されている動きベクトル情報を用いて、時間相関予測ベクトル情報を生成する。
なお、以下、適宜、空間相関予測ベクトルを、空間予測ベクトルとも称し、時間相関予測ベクトルを、時間予測ベクトルとも称する。
動きベクトル差分生成部121は、生成した予測ベクトル情報と、動き予測・補償部115からの動きベクトル情報との差分である動きベクトル差分情報を生成する。また、動きベクトル差分生成部121は、イントラ予測部114からのイントラコスト関数値と、動き予測・補償部115からのインターコスト関数値とを用いて、最適モードを決定する。動きベクトル差分生成部121は、決定した最適モードの情報を、選択部116に供給する。
動きベクトル差分生成部121は、最適モードの動きベクトル情報を、動きベクトル保存メモリ122に保存する。動きベクトル差分生成部121は、生成した動きベクトル差分情報を、最適モード情報とともに、可逆符号化部106に供給する。
動きベクトル保存メモリ122は、動きベクトル差分生成部121により記憶された動きベクトル情報であって、動きベクトル差分生成部121が時間相関予測ベクトルを生成する際に用いられる動きベクトル情報を記憶している。
[コーディングユニット]
H.264/AVC方式においては、1つのマクロブロックを、複数の動き補償ブロックに分割し、それぞれに対して異なる動き情報を持たせることが可能であった。すなわち、H.264/AVC方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されているが、例えば、HEVC(High Efficiency Video Coding)方式においては、図2に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、H.264/AVC方式におけるマクロブロックと同様の役割を果たす、符号化(復号)の処理単位となる領域(ピクチャ単位の画像の部分領域)である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図2の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、H.264/AVC方式におけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図2に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、H.264/AVC方式のマクロブロックより大きく設定されることが一般的である。
本開示は、HEVC方式のようなCU、PU、およびTU等を用いる符号化方式だけでなく、H.264/AVC方式におけるマクロブロックを用いる符号化方式にも適用することができる。すなわち、ユニットも、ブロックも、処理単位となる領域を示すものであるので、以下、適宜、どちらも含むように、処理単位の領域という文言を用いて説明する。
ただし、以下において、HEVC方式を例として説明する場合には、ユニットを用いて説明するが、そのユニットは、処理単位となる領域を示すものであり、H.264/AVC方式においてはブロックである。
[マージモード]
次に、HEVC方式におけるマージモードについて、図3を参照して説明する。図3の例においては、対象PU(CurrentPU)が示されている。対象PUの周囲には、「A」,「B」,「C」,「D」がそれぞれ付された四角で表わされる4つの空間位置が示されている。
マージモードは、対象PUについて、これら4つの空間位置のベクトル情報と、Colocatedピクチャのベクトル情報(ColPUのベクトル情報)の計5つのベクトルを候補とし、その候補の中から、RD(rate-distortion)の観点で最適なベクトルを用いるモードである。Colocatedピクチャは、以下、ColPicとも称される。
なお、ColPUは、以前に符号化または復号されたピクチャにおける、対象PUと空間的に同じ位置のPUであり、対象PUの時間ベクトル情報として参照するPUである。
そして、マージモードの場合、復号側には、ベクトル情報を送らず、マージインデックス(merge_idx)という、5つのうちどの動きベクトル情報を用いたかを示す情報をストリームに含めて伝送する。これにより、符号化効率を向上させることができる。
[予測動きベクトルmvp]
次に、HEVC方式における予測動きベクトルmvpについて図4を参照して説明する。図4の例においては、対象PU(予測ユニット)が示されている。対象PUの周囲には、「A」,「A」,「B」,「B」,「B」がそれぞれ付された四角で表わされる5つの空間位置が示されている。
対象PUについて、これら5つの空間位置のベクトル情報と、ColPUのベクトル情報の計6つのベクトルのうち、動き探索によって求められた動きベクトルとの差分(mvd)が最小となるベクトルが、予測動きベクトルとして用いられる。なお、予測動きベクトルのことを、以下、適宜、予測ベクトルとも称する。
復号側には、その差分と、mvpインデックス(mvp_idx)という6つのベクトルのうちどのベクトルの差分を用いたかを示す情報をストリームに含めて伝送することにより、復号側で、動きベクトルを再構築することができる。これにより、符号化性能を高めることができる。
[ColPUの決定方法]
図5は、ColPUの決定方法を説明する図である。図5Aは、1番目の処理を示している。まず、図5Aに示される左上の4×4ピクセルを対象PUとした場合、対象PUの左上のピクセル位置を(0,0)とし、そこに、対象PUのサイズ4を加算し、(4,4)という位置を16で丸めた位置(0,0)のピクセルを含むPUが、ColPUと決定される。
なお、1番目の処理で算出されたColPUが、イントラブロック、または画面外のピクセルであって、Not Available(利用不可)と判定された場合には、図5Bに示されるように処理される。
具体的には、図5Bに示される左上の4×4ピクセルを対象PUとした場合、対象PUの左上のピクセル位置が(0,0)とされる。そして、(0,0)に、対象PUのサイズ4の半分である2を加算した(2,2)から、それぞれー1した位置(1,1)を16で丸めた位置(0,0)のピクセルを含むPUが、ColPUと決定される。
[colMVの説明]
上述したColPUは、画面を16×16のピクセル単位に分割した各分割領域の左上のピクセルを含むPUである。そのPUの動きベクトルがColMVとして利用される。ColMVについて、次の図6および図7を参照して詳しく説明する。
図6の例においては、時間軸tに沿って、N,N+1,N+2のピクチャが順に示されている。また、ピクチャの下には、ベクトル情報が保存されるメモリが示されている。
例えば、N+1のピクチャのColPicがNのピクチャである場合、Nの処理中に保存したベクトル情報は、N+1を処理する時間に、ColPUの決定方法に従ったColPUの位置から読み出される。そして、その読み出されたベクトル情報は、N+1のピクチャにおいてColMVとして利用される。
なお、ベクトル情報の保存時には、図7に示されるように、PUサイズにはよらず、16×16ピクセルに分割した分割領域の左上のピクセルを含むPUの動きベクトルが保存される。
図7の例においては、16×16ピクセルに分割されたピクチャの一部が示されており、その下には、メモリに保存されるベクトルが概念的に示されている。図7の例において、16×16ピクセルの分割領域における左上の丸はピクセルを示している。
左上の16×16ピクセルに分割した分割領域は、Pl0_0,Pl0_1,Pl0_2,Pl0_3の4つのPUからなり、そのうち、分割領域の左上のピクセルを含むPUであるPl0_0のベクトルmv00(Pl0_0)がメモリに保存される。
左上の分割領域の下に位置する16×16ピクセルに分割した分割領域は、Pl2_0,Pl2_1の2つのPUからなり、そのうち、分割領域の左上のピクセルを含むPUであるPl2_0のベクトルmv01(Pl2_0)がメモリに保存される。
左上の分割領域の右に位置する16×16ピクセルに分割した分割領域は、Pl1_0の1つのPUからなり、そのうち、分割領域の左上のピクセルを含むPUであるPl1_0のベクトルmv10(Pl1_0)がメモリに保存される。
Pl1_0の分割領域の下に位置する16×16ピクセルに分割した分割領域は、Pl3_0,Pl3_1の2つのPUからなり、そのうち、分割領域の左上のピクセルを含むPUであるPl3_0のベクトルmv11(Pl1_0)がメモリに保存される。
なお、図7の例においては、LCUが32×32ピクセルの例が示されているため、1CUあたり4つのベクトル情報のセットがメモリに保存されることになる。
ここで、対象ピクチャから、ColPicの動きベクトル情報を読み込む際には、LCU(CUの最大)をまたぐ参照が許されているため、LCUをラスタスキャン順に処理を行っている場合に、過去に一度読み込んだデータの再読み込みが必要になってしまう。これは、メモリアクセスの観点で効率がよくない。
図8の例においては、LCU32×32の場合の16×16ピクセルに分割されたピクチャの一部が示されている。
LCU(1,0)の処理中に、ColPUの情報として読み出されるデータ(動きベクトル情報)は、ハッチがなされている小さい四角となる。LCUの処理がラスタスキャン順に進んで、LCU(1,1)の処理となったときに、ColPUの情報として読み出されるデータ(動きベクトル情報)は、白い小さい四角となる。
すなわち、LCU(1,0)の処理中に、LCU(1,1)のデータの一部がLCUのラインをまたいで読み出されており、さらに、LCU(1,1) の処理中に、LCU(1,1)の下のLCUのデータの一部がLCUのラインをまたいで読み出されている。
ハードウエアでの構成を考えた場合には、ColPUの情報は、DRAMに格納される可能性が高く、データの再読み込みは帯域面での負荷増大となってしまう。DRAMアクセスを軽減するという観点で読み込んだデータを、別の記憶装置(SRAMやレジスタ)に保存しておくことも考えられるが、回路資産を新たに要求することになってしまう。
そこで、図9に示される動きベクトル差分生成部121は、読み出す位置がLCUの境界を超える場合、データの読み出し位置を変更して、データを読み出すように制御する。
[動きベクトル差分生成部の構成例]
次に、画像符号化装置100の各部について説明する。図9は、動きベクトル差分生成部の構成例を示すブロック図である。
動きベクトル差分生成部121は、動きベクトル差分生成制御部131、時間予測ベクトル生成部132、画内予測ベクトル生成部133、周辺動きベクトル保存部134、最適モード判定部135、インター/イントラ判定部136を含むように構成されている。
動き予測・補償部115から、CUサイズ情報、CU分割情報、CUアドレス情報、動きベクトル情報、インターコスト関数値が、動きベクトル差分生成制御部131に供給される。
動きベクトル差分生成制御部131は、画内予測ベクトル生成部133および時間予測ベクトル生成部132に対して、予測ベクトル生成の指示を与える。その際、動きベクトル差分生成制御部131は、16×16アドレス補正部142に対して、CU/PUアドレス情報とCU/PUサイズ情報を供給する。動きベクトル差分生成制御部131は、最適モード判定部135に、動き予測・補償部115からのインターコスト関数値、および動きベクトル情報を供給し、最適モードを判定させる。
時間予測ベクトル生成部132は、時間相関の予測ベクトルを生成する部である。時間予測ベクトル生成部132は、16×16アドレス生成部141、16×16アドレス補正部142、およびメモリアクセス制御部143を含むように構成されている。
16×16アドレス生成部141は、動きベクトル差分生成制御部131の制御のもと、参照する16×16領域のアドレスを計算し、計算した16×16アドレス情報を、16×16アドレス補正部142に供給する。
また、16×16アドレス生成部141は、インター/イントラ判定部136から再読み込み指示があると、イントラの場合の16×16領域のアドレスを計算し、計算した16×16アドレス情報を、16×16アドレス補正部142に供給する。
16×16アドレス補正部142には、動きベクトル差分生成制御部131からCU/PUアドレス情報とCU/PUサイズ情報が供給される。また、16×16アドレス補正部142には、16×16アドレス生成部141から、16×16アドレス情報が供給される。
16×16アドレス補正部142は、供給された情報を用いて、16×16アドレス生成部141からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。CUを越えた参照である場合、16×16アドレス補正部142は、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行い、補正された16×16アドレス情報を、メモリアクセス制御部143に供給する。CUを越えた参照ではない場合、16×16アドレス補正部142は、16×16アドレス生成部141からの16×16アドレス情報をメモリアクセス制御部143に供給する。
メモリアクセス制御部143は、動きベクトル保存メモリ122に対して、16×16アドレス補正部142からの16×16アドレス情報が対応する分割領域の左上のピクセル位置を含むPUの動きベクトルを読み出すリクエストを行う。このリクエストに対応して、動きベクトル保存メモリ122から動きベクトル情報が、インター/イントラ判定部136に供給される。
画内予測ベクトル生成部133は、動きベクトル差分生成制御部131からの制御のもと、周辺動きベクトル保存部134に記憶されている動きベクトル情報を読み出して、空間予測ベクトルを生成する。画内予測ベクトル生成部133は、空間予測ベクトル情報を、最適モード判定部135に供給する。
周辺動きベクトル保存部134は、メモリなどで構成され、処理対象のピクチャ内の動きベクトル情報を保存している。
最適モード判定部135は、画内予測ベクトル生成部133からの空間予測ベクトルと、インター/イントラ判定部136からの時間予測ベクトルが参照可能であるか否かを判定する。最適モード判定部135は、参照可能である動きベクトルのうち、動き予測・補償部115により算出された動きベクトル情報との差分の発生ビット量が最小となるモードを判定する。
また、最適モード判定部135には、動きベクトル差分生成制御部131からインターコスト関数値および動きベクトル情報が供給される。最適モード判定部135には、イントラ予測部114からイントラコスト関数値が供給される。最適モード判定部135は、これらのコスト関数値を用いて、処理対象の領域をイントラ領域として符号化するか、インター領域として符号化するかの判定も行う。
最適モード判定部135は、決定した最適モード情報と、動きベクトル差分情報を、可逆符号化部106に供給する。また、最適モード判定部135は、最適モードに対応する動きベクトル情報を、動きベクトル保存メモリ122に保存させる。なお、図示はされていないが、最適モード判定部135は、周辺動きベクトル保存部134にも、動きベクトル情報を保存させる。
インター/イントラ判定部136は、動きベクトル保存メモリ122から読み出された動きベクトル情報がインターを示している場合、その動きベクトル情報を、時間予測ベクトル情報として、最適モード判定部135に供給する。インター/イントラ判定部136は、動きベクトル保存メモリ122から読み出された動きベクトル情報がイントラを示している場合、16×16アドレス生成部141に対して、再読み込み指示を行う。なお、この再読み込み指示は、1度だけ行われる。
[ColMV情報の読み出し方法]
図10は、HEVC方式におけるColPUの決定方法を示す図である。図10の例においては、1乃至4として、図5を参照して上述したColPUの決定方法が記載されている。
そして、図10の例に示される式(1)のxPRbは、PUの右下の水平方向のピクセル位置を示している。式(2)のyPRbは、PUの右下の垂直方向のピクセル位置を示している。
16×16アドレス補正部142は、この式(2)のyPRbが、LCUの境界を超えるか否かを判定し、次の式(3)に示されるように、境界を超えると判定した場合、yPRbをLCU内に引き戻す処理を行う。
if(yPRb%LCUSizeY==0)
yPRb = yPRb - 1 ・・・(3)
式(3)のif内がLCUサイズを超えている条件を示している。
なお、ここでは、垂直方向のみに引き戻しを行うが、水平方向に対しても、本処理は適用可能である。水平方向は、次の処理CUとなるので、時間的処理の連続性の観点より利用されるまでの時間が短いので、利用可能であると考えられる。
式(3)の処理の後、図10に示される2以降の処理が実行される。これにより、LCUを垂直方向にまたぐColPUの参照を制限することが可能となる。その結果、ColMV情報の読み出し時におけるメモリアクセス回数を削減することができる。
図11の例においては、LCU32×32が示されている。LCU32×32において、左下に位置するハッチング領域は、処理対象のPU(16×16)である。ColPUの決定方法に則って計算すると、処理対象のPUの右下に接するピクセルを含むPUが、ColPUとなるが、そのPUは、処理対象のPUに対してLCUをまたぐ参照関係となってしまう。
そこで、16×16アドレス補正部142は、上述した式(3)に示されるように、ピクセルの垂直方向に関して−1する。これにより、ピクセルは、処理対象のPUの右隣のPU(すなわち、LCU)に含まれるピクセルとなる。これに対して、まるめ処理が施されるので、結果、左上のピクセルを含むPUである処理対象のPUの右隣のPUがColPUとなり、同じLCU内の参照関係とすることができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、演算部103は、ステップS102の処理により並び替えられた画像と、予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部115から、イントラ予測する場合はイントラ予測部114から、選択部116を介して演算部103に供給される。
差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS104において、直交変換部104は、ステップS103の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS105において、量子化部105は、ステップS104の処理により得られた直交変換係数を量子化する。
ステップS105の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS106において、逆量子化部108は、ステップS105の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。
ステップS107において、逆直交変換部109は、ステップS106の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。
ステップS108において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。
ステップS109において、デブロックフィルタ111は、ステップS108の処理により生成された画像に対して、デブロックフィルタ処理を行う。これによりブロック歪み(すなわち、処理単位の領域歪み)が除去される。
ステップS110において、フレームメモリ112は、ステップS109の処理によりブロック歪みが除去された画像を記憶する。なお、フレームメモリ112にはデブロックフィルタ111によりフィルタ処理されていない画像も演算部110から供給され、記憶される。
ステップS111において、イントラ予測部114は、イントラ予測モードのイントラ予測処理を行う。すなわち、イントラ予測部114は、全てのイントラ予測モードで予測画像を生成し、イントラコスト関数値を求めることで、各予測画像を評価し、最適イントラモードを選択する。イントラ予測部114は、最適イントラモードを選択すると、その最適イントラモードで生成された予測画像を、選択部116に供給し、その最適イントラモードのイントラコスト関数値を動きベクトル差分生成部121に供給する。
ステップS112において、動き予測・補償部115は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。すなわち、動き予測・補償部115は、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、全てのインター予測モードについて動き予測を行う。動き予測・補償部115は、検出された動きベクトルに応じて動き補償処理を行い、予測画像を生成し、インターコスト関数値を求めることで、各予測画像を評価し、最適インターモードを選択する。
動き予測・補償部115は、最適インターモードを選択すると、その最適インターモードで生成された予測画像を、選択部116に供給する。また、動き予測・補償部115は、その最適インターモードのインターコスト関数値、動きベクトル情報および対象領域(CU)の情報などを、動きベクトル差分生成部121に供給する。
ステップS113において、動きベクトル差分生成部121は、動き予測・補償部115からの情報を用い、動きベクトル差分生成処理を行う。この動きベクトル差分生成処理の詳細は、図13を参照して後述する。
ステップS113の処理により、動きベクトル差分情報が生成されるとともに、イントラ予測部114からのイントラコスト関数値と、動き予測・補償部115からのインターコスト関数値とを用いて、最適モードが決定される。
動きベクトル差分生成部121は、生成した動きベクトル差分情報を、最適モード情報とともに、可逆符号化部106に供給する。また、動きベクトル差分生成部121は、決定した最適モードの情報を、選択部116に供給する。
なお、インター予測モードが最適モードに決定された場合、それが動き予測・補償部115に通知されるので、動き予測・補償部115は、可逆符号化部106に参照画像インデックスなどを送信する。
ステップS114において、選択部116は、動きベクトル差分生成部121から供給された情報に基づいて、最適モードの予測画像を選択する。つまり、選択部116は、イントラ予測部114により生成された予測画像と、動き予測・補償部115により生成された予測画像のいずれか一方を選択する。
ステップS115において、可逆符号化部106は、ステップS105の処理により量子化された変換係数を符号化する。すなわち、差分画像(インターの場合、2次差分画像)に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、可逆符号化部106は、ステップS114の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、動きベクトル差分生成部121から供給されるモード情報や動きベクトル差分情報なども符号化し、符号化データに付加する。
ステップS116において、蓄積バッファ107は、可逆符号化部106から出力される符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路を介して復号側に伝送される。
ステップS117において、レート制御部117は、ステップS116の処理により蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS117の処理が終了すると、符号化処理が終了される。
[動きベクトル差分生成処理の流れ]
次に、図13のフローチャートを参照して、図12のステップS113において実行される動きベクトル差分生成処理の流れの例を説明する。
動き予測・補償部115から、CUサイズ情報、CU分割情報、CUアドレス情報、動きベクトル情報、インターコスト関数値などが、動きベクトル差分生成制御部131に供給される。
動きベクトル差分生成制御部131は、画内予測ベクトル生成部133および時間予測ベクトル生成部132に対して、ベクトル生成の指示を与える。
これに対応して、画内予測ベクトル生成部133は、ステップS131において、空間相関の予測ベクトルを生成する。画内予測ベクトル生成部133は、周辺動きベクトル保存部134に記憶されている動きベクトル情報を読み出して、空間予測ベクトルを生成する。画内予測ベクトル生成部133は、空間予測ベクトル情報を、最適モード判定部135に供給する。
時間予測ベクトル生成部132は、ステップS132において、時間相関の予測ベクトルを生成する。この時間相関の予測ベクトル生成処理の詳細は、図14を参照して後述するが、ステップS132の処理により、時間予測ベクトル情報が、最適モード判定部135に供給される。
また、最適モード判定部135には、動きベクトル差分生成制御部131からインターコスト関数値および動きベクトル情報が供給される。最適モード判定部135には、イントラ予測部114からイントラコスト関数値が供給される。
ステップS133において、最適モード判定部135は、周辺領域がすべて参照不可であるか否かを判定する。空間予測ベクトル情報および時間予測ベクトル情報が1つでも供給された場合、最適モード判定部135は、周辺領域がすべて参照不可ではないと判定し、ステップS134に進む。
ステップS134において、最適モード判定部135は、供給された空間予測ベクトル情報および時間予測ベクトル情報のうち、重複する予測ベクトルがある場合、それを削除する。
ステップS135において、最適モード判定部135は、動きベクトル差分情報を生成する。すなわち、最適モード判定部135は、供給された空間予測ベクトル情報および時間予測ベクトル情報毎に、動きベクトル差分生成制御部131から供給された動きベクトル情報と予測ベクトル情報の差分である動きベクトル差分情報を生成する。
ステップS136において、最適モード判定部135は、生成した動きベクトル差分情報を用いて、動きベクトル差分の最小の予測ベクトルを決定する。
一方、空間予測ベクトル情報および時間予測ベクトル情報が1つも供給されなかった場合、最適モード判定部135は、周辺領域がすべて参照不可であると判定し、ステップS137に進む。
ステップS137において、最適モード判定部135は、0を予測ベクトルとして、動きベクトル差分情報を生成する。
ステップS138において、最適モード判定部135は、最適モードを決定する。すなわち、最適モード判定部135は、動きベクトル差分生成制御部131からインターコスト関数値と、イントラ予測部114からイントラコスト関数値を比較することにより、最適なモードを決定する。
ステップS138において決定された最適なモードがインター予測モードの場合、ステップS139において、最適モード判定部135は、動きベクトル情報を、動きベクトル保存メモリ122に保存する。具体的には、最適モード判定部135は、図7を参照して上述したように、16×16の分割領域毎に、分割領域の左上のピクセルを含むPUの動きベクトル情報を、動きベクトル保存メモリ122に保存する。なお、この動きベクトル情報は、周辺動きベクトル保存部134にも保存される。
ステップS140において、最適モード判定部135は、最適モード情報を、可逆符号化部106に供給する。また、最適モードがインター予測モードの場合、最適モードについての動きベクトル差分情報や、ステップS136において決定された最小の予測ベクトルのインデックス(mvp_idx)も、可逆符号化部106に供給される。
これらの情報は、図12のステップS115において、可逆符号化部106によりストリームのヘッダに付加される。
なお、図13の例は、予測動きベクトルmvpを求める場合の例である。マージモードの場合、図13の処理のうち、ステップS135およびS136の処理が除かれ、ステップS138において、最適モードを決定する際に、インター、イントラ、マージモードのうち、最適なものが決定される。そして、最適モードがマージモードの場合、最適モード情報とともに、マージインデックス(merge_idx)が可逆符号化部106に供給される。
すなわち、マージモードの場合も、ステップS132における時間相関の予測ベクトルを生成する処理とステップS139における動きベクトルを保存する処理は、基本的に同様の処理を行うので、以下においても、マージモードの場合の図示を省略する。
[時間相関の予測ベクトルの生成処理の流れ]
次に、図14のフローチャートを参照して、図13のステップS132において実行される時間相関の予測ベクトルの生成処理の流れの例を説明する。
16×16アドレス生成部141には、動きベクトル差分生成制御部131から、予測ベクトル生成の指示が供給される。16×16アドレス生成部141は、ステップS141において、参照する16×16領域のアドレスを計算する。16×16アドレス生成部141は、計算した16×16アドレス情報を、16×16アドレス補正部142に供給する。
16×16アドレス補正部142には、さらに、動きベクトル差分生成制御部131からCU/PUアドレス情報とCU/PUサイズ情報が供給される。
ステップS142において、16×16アドレス補正部142は、供給された情報を用いて、16×16アドレス生成部141からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。すなわち、ステップS142においては、16×16アドレス情報が示す分割領域の右下のピクセル位置が、処理対象のCUの境界を越えているか否かが判定される。
ステップS142において、CUを越えた参照であると判定された場合、16×16アドレス補正部142は、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行う。具体的には、16×16アドレス補正部142は、16×16アドレス情報に対して、式(3)を用いて、垂直方向に引き戻しを行う。
16×16アドレス補正部142は、引き戻しの結果、補正された16×16アドレス情報を、メモリアクセス制御部143に供給する。
ステップS142において、CUを越えた参照ではないと判定された場合、ステップS143の処理はスキップされる。すなわち、16×16アドレス補正部142は、16×16アドレス生成部141からの16×16アドレス情報を、メモリアクセス制御部143に供給する。
メモリアクセス制御部143は、動きベクトル保存メモリ122に対して、16×16アドレス補正部142からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS144において、動きベクトル保存メモリ122は、メモリアクセス制御部143からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部136に供給する。
ステップS145において、インター/イントラ判定部136は、動きベクトル保存メモリ122から読み出した動きベクトル情報が、イントラ(ピクチャ)を示しているか否かを判定する。
ステップS145において、読み出した動きベクトル情報が、イントラを示していると判定された場合、このPUがイントラ領域であるので、インター/イントラ判定部136は、16×16アドレス生成部141に対して、再読み込み指示を行う。なお、この再読み込み指示は、一度だけ行われる。
ステップS146において、16×16アドレス生成部141は、イントラの場合の16×16領域のアドレスを計算する。16×16アドレス生成部141は、計算した16×16アドレス情報を、16×16アドレス補正部142に供給する。
ステップS147において、16×16アドレス補正部142は、供給された情報を用いて、16×16アドレス生成部141からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。
ステップS147において、CUを越えた参照であると判定された場合、16×16アドレス補正部142は、ステップS148において、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行う。具体的には、16×16アドレス補正部142は、16×16アドレス情報に対して、式(3)を用いて、垂直方向に引き戻しを行う。
16×16アドレス補正部142は、引き戻しの結果、補正された16×16アドレス情報を、メモリアクセス制御部143に供給する。
ステップS147において、CUを越えた参照ではないと判定された場合、ステップS148の処理はスキップされる。すなわち、16×16アドレス補正部142は、16×16アドレス生成部141からの16×16アドレス情報を、メモリアクセス制御部143に供給する。
メモリアクセス制御部143は、動きベクトル保存メモリ122に対して、16×16アドレス補正部142からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS149において、動きベクトル保存メモリ122は、メモリアクセス制御部143からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部136に供給する。
インター/イントラ判定部136は、動きベクトル保存メモリ122からの動きベクトル情報を、時間予測ベクトル情報として、最適モード判定部135に供給する。
一方、ステップS145において、読み出した動きベクトル情報が、イントラを示していると判定された場合、ステップS146乃至S149はスキップされる。すなわち、ステップS144で読み出された動きベクトル情報が、時間予測ベクトル情報として、最適モード判定部135に供給される。
以上のように、参照先がLCUをまたぐ参照関係となってしまう場合に、その参照がLCU内に引き戻されるように、アドレスの補正を行うようにした。これにより、ラスタスキャン順の処理において、垂直方向にLCUを跨がないので、Colベクトル情報の読み直しがなくなる。
すなわち、過去に一度読み込んだデータの再読み込みは行われないので、効率よく、メモリアクセスを行うことができる。
ところで、図5を参照して上述したように、ColPUを決定する場合、図5Aを参照して上述した1番目の処理が行われ、1番目の処理で算出されたColPUが利用不可であると判定された場合、図5Bを参照して上述した2番目の処理が行われる。
しかしながら、図5Aと図5Bの例は、どちらの処理も、結果として、同じPUが指されてしまう。このように、PUサイズが8×8以下の場合、16×16ピクセルで区切られた右端または下端に接しないPUに関しては、ColPUが利用不可になってしまう。
ColPUが利用不可になってしまうと、そのベクトル(ColMV)が、図3を参照して上述したマージモードや、図4を参照して上述した予測ベクトルmvpの候補とならないことで、最適な予測ベクトルを選択する自由度が狭められてしまう。
そこで、図15に示される動きベクトル差分生成部121は、1番目の処理のアドレスと2番目の処理のアドレスが同じ場合、データの読み出し位置を変更して、データを読み出すように制御する。
[動きベクトル差分生成部の他の構成例]
図15は、動きベクトル差分生成部の他の構成例を示すブロック図である。
図15の動きベクトル差分生成部121は、画面予測ベクトル生成部133、周辺動きベクトル保存部134、最適モード判定部135、およびインター/イントラ判定部136を備える点で、図9の動きベクトル差分生成部121と共通している。なお、共通している部分については、繰り返しになるので適宜その説明を省略する。
図15の動きベクトル差分生成部121は、動きベクトル差分生成制御部131が、動きベクトル差分生成制御部151に入れ替わり、時間予測ベクトル生成部132が、時間予測ベクトル生成部152に入れ替わった点が、図9の動きベクトル差分生成部121と異なっている。
動きベクトル差分生成制御部151は、画内予測ベクトル生成部133および時間予測ベクトル生成部152に対して、予測ベクトル生成の指示を与える。また、動きベクトル差分生成制御部151は、最適モード判定部135に、動き予測・補償部115からのインターコスト関数値、および動きベクトル情報を供給し、最適モードを判定させる。
なお、動きベクトル差分生成制御部151は、図9の動きベクトル差分生成制御部131と異なり、16×16アドレス補正部162に対して、CUやPUの情報を供給しない。
時間予測ベクトル生成部152は、メモリアクセス制御部143を備える点が、図9の時間予測ベクトル生成部132と共通している。
時間予測ベクトル生成部152は、16×16アドレス生成部141が、16×16アドレス生成部161に入れ替わり、16×16アドレス補正部142が、16×16アドレス補正部162に入れ替わった点が、図9の時間予測ベクトル生成部132と異なっている。
16×16アドレス生成部161は、動きベクトル差分生成制御部131の制御のもと、参照する16×16領域のアドレスを計算し、計算した16×16アドレス情報を、16×16アドレス補正部162に供給する。
16×16アドレス生成部161は、インター/イントラ判定部136から再読み込み指示があると、イントラの場合の16×16領域のアドレスを計算する。16×16アドレス生成部161は、1回目の計算によるアドレスと、2回目(イントラの場合)の計算によるアドレスが同じであるか否かを判定し、同じであった場合、アドレスが同じであることを示す一致フラグを生成する。16×16アドレス生成部161は、生成した一致フラグを、16×16アドレス補正部162に供給する。
16×16アドレス補正部162は、16×16アドレス生成部161からの16×16アドレス情報をメモリアクセス制御部143に供給する。また、16×16アドレス補正部162は、16×16アドレス生成部161からのフラグを受けた場合、1回目とは異なるアドレスになるように、1回目の16×16アドレスを補正する。16×16アドレス補正部162は、補正された16×16アドレス情報を、メモリアクセス制御部143に供給する。
[アドレス補正方法]
図16は、PU4×4の場合のピクチャを示す図である。
処理対象PUの左下のピクセル位置(xPtr,yPtr)は、次の式(4)で表すことができる。

xPtr = xP + nPSW -1
yPtr = yP + nPSW -1 ・・・(4)
最小のPU単位が4×4ピクセルなので、図16のハッチングされているピクセル位置(以下、ハッチング位置と称する)が、図5を参照して上述したColPUの算出方法上、1回目の処理と2回目の処理で、同じPUをさしてしまう位置である。
そこで、(xPtr,yPtr)が、図16のハッチング位置であることは、次の式(5)の2つの条件が成立するか否かで表すことができる。
xPtr%16 = 3 or 7 or 11
yPtr%16 = 3 or 7 or 11 ・・・(5)
1回目の処理において、インター/イントラ判定部136により再読み込みが指示された場合に、上述した式(4)が成立するとき、16×16アドレス補正部162は、処理対象PUが属する16×16領域の、右隣の16×16を指すように、アドレスを補正する。
なお、右隣の16×16が、画面外となる場合には、16×16アドレス補正部162は、処理対象PUが属する16×16領域の、左隣の16×16領域を指すように、アドレスを補正する。
例えば、図17に示されるピクセル位置P1は、16の剰余でそれぞれ11となり、式(4)のx、yの両成分の条件式が成り立つ。そこで、16×16アドレス補正部162は、ピクセル位置P1の水平方向のみに+16して、右隣の16×16領域のピクセル位置P2に移動させる。その後、ピクセル位置P2は、16での丸め処理により、ハッチングされたピクセル位置P3となる。
[時間相関の予測ベクトルの生成処理の流れ]
次に、図15の動きベクトル差分生成部121の場合の各処理の流れについて説明する。ただし、図15の動きベクトル差分生成部121の場合の画像符号化装置100の符号化処理は、図12を参照して上述した符号化処理と同様の流れである。また、動きベクトル差分生成処理の流れは、図13を参照して上述した動きベクトル差分生成処理の流れと同様の流れである。
したがって、異なる処理が施される図13のステップS132における時間相関の予測ベクトルの生成処理の詳細について、図18のフローチャートを参照して説明する。
16×16アドレス生成部161には、動きベクトル差分生成制御部151から、予測ベクトル生成の指示が供給される。16×16アドレス生成部141は、ステップS151において、参照する16×16領域のアドレスを計算する。16×16アドレス生成部141は、計算した16×16アドレス情報を、16×16アドレス補正部142に供給する。
16×16アドレス補正部142は、16×16アドレス生成部141からの16×16アドレス情報を、メモリアクセス制御部143に供給する。
メモリアクセス制御部143は、動きベクトル保存メモリ122に対して、16×16アドレス補正部142からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS152において、動きベクトル保存メモリ122は、メモリアクセス制御部143からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部136に供給する。
ステップS153において、インター/イントラ判定部136は、動きベクトル保存メモリ122から読み出した動きベクトル情報が、イントラ(ピクチャ)を示しているか否かを判定する。
ステップS153において、読み出した動きベクトル情報が、イントラを示していると判定された場合、インター/イントラ判定部136は、16×16アドレス生成部161に対して、再読み込み指示を行う。なお、この再読み込み指示は、一度だけ行われる。
ステップS154において、16×16アドレス生成部161は、イントラの場合の16×16領域のアドレスを計算する。
16×16アドレス生成部161は、ステップS155において、1回目の計算によるアドレスと、2回目(イントラの場合)の計算によるアドレスが同じであるか否かを判定する。
16×16アドレス生成部161は、ステップS155において、アドレスが同じであると判定した場合、アドレスが同じであることを示す一致フラグを生成し、生成した一致フラグを、16×16アドレス補正部162に供給する。
16×16アドレス補正部162は、一致フラグを受け取ると、ステップS156において、1回目とは異なるアドレスになるように、1回目の16×16アドレスを補正する。すなわち、16×16アドレス補正部162は、1回目の16×16アドレスの水平方向に、16×16アドレスが属する領域の右となりの領域を指すように+16して、16×16アドレスを補正する。16×16アドレス補正部162は、補正された16×16アドレス情報を、メモリアクセス制御部143に供給する。
また、ステップS155において、アドレスが異なると判定された場合、一致フラグは生成されず、ステップS156もスキップされる。すなわち、16×16アドレス補正部162は、1回目の16×16アドレスとは異なる2回目の16×16アドレスを、メモリアクセス制御部143に供給する。
メモリアクセス制御部143は、動きベクトル保存メモリ122に対して、16×16アドレス補正部142からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS157において、動きベクトル保存メモリ122は、メモリアクセス制御部143からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部136に供給する。
インター/イントラ判定部136は、動きベクトル保存メモリ122からの動きベクトル情報を、時間予測ベクトル情報として、最適モード判定部135に供給する。
一方、ステップS153において、読み出した動きベクトル情報が、イントラを示していると判定された場合、ステップS154乃至S157はスキップされる。すなわち、ステップS152で読み出された動きベクトル情報が、時間相予測ベクトル情報として、最適モード判定部135に供給される。
以上のように、1回目の計算によるアドレスと2回目の計算によるアドレスが一致する場合、そのアドレスを、隣の16×16領域に移動させるようにした。これにより、同じアドレスを読み出してしまうメモリアクセスを抑制するとともに、マージモードや予測ベクトルの候補が減ってしまうことを抑制することができる。
その結果、効率よくメモリアクセスを行うことができるとともに、符号化効率を改善することもできる。
ここで、メモリアクセスの観点で考えると、1回目のColPU情報から、イントラであるか否かを判定して、再度、異なるColPU情報を読み出すのは、アクセスが増えてしまうという点で冗長である。
そこで、上記説明においては、ColMV情報の読み出し側で、読み出すColPUの位置を決める方法について説明してきたが、次は、動きベクトルの保存側に視点を変える。すなわち、次の図19に示される動きベクトル差分生成部121は、動きベクトルを保存する際に、処理対象領域がイントラ予測であったら、周辺の所定の位置の利用可能な動きベクトルを保存する。
[動きベクトル差分生成部の他の構成例]
図19は、動きベクトル差分生成部のさらに他の構成例を示すブロック図である。
図19の動きベクトル差分生成部121は、画面予測ベクトル生成部133、および周辺動きベクトル保存部134を備える点で、図9の動きベクトル差分生成部121と共通している。なお、共通している部分については、繰り返しになるので適宜その説明を省略する。
図19の動きベクトル差分生成部121は、動きベクトル差分生成制御部131が、動きベクトル差分生成制御部171に入れ替わり、時間予測ベクトル生成部132が、時間予測ベクトル生成部172に入れ替わった点が、図9の動きベクトル差分生成部121と異なっている。図19の動きベクトル差分生成部121は、最適モード判定部135が、最適モード判定部173に入れ替わった点が、図9の動きベクトル差分生成部121と異なっている。
さらに、図19の動きベクトル差分生成部121は、インター/イントラ判定部136が除かれた点と、保存ベクトル選択部174が追加された点とが、図9の動きベクトル差分生成部121と異なっている。
動きベクトル差分生成制御部171は、画内予測ベクトル生成部133および時間予測ベクトル生成部172に対して、予測ベクトル生成の指示を与える。また、動きベクトル差分生成制御部171は、最適モード判定部173に、動き予測・補償部115からのインターコスト関数値、および動きベクトル情報を供給し、最適モードを判定させる。
時間予測ベクトル生成部172は、メモリアクセス制御部143を備える点が、図9の時間予測ベクトル生成部132と共通している。
時間予測ベクトル生成部172は、16×16アドレス生成部141が、16×16アドレス生成部181に入れ替わった点と、16×16アドレス補正部142が除かれた点が、図9の時間予測ベクトル生成部132と異なっている。
16×16アドレス生成部161は、動きベクトル差分生成制御部171の制御のもと、参照する16×16領域のアドレスを計算し、計算した16×16アドレス情報を、メモリアクセス制御部143に供給する。
最適モード判定部173は、画内予測ベクトル生成部133からの空間予測ベクトルと、動きベクトル保存メモリ122からの時間予測ベクトルが参照可能であるか否かを判定する。最適モード判定部173は、参照可能である動きベクトルのうち、動き予測・補償部115により算出された動きベクトル情報との差分の発生ビット量が最小となるモードを判定する。
また、最適モード判定部173には、動きベクトル差分生成制御部171からインターコスト関数値および動きベクトル情報が供給される。最適モード判定部173には、イントラ予測部114からイントラコスト関数値が供給される。最適モード判定部173は、これらのコスト関数値を用いて、処理対象の領域がイントラ領域として符号化するか、インター領域として符号化するかの判定も行う。
最適モード判定部173は、決定した最適モード情報と、動きベクトル差分情報を、可逆符号化部106に供給する。また、最適モード判定部173は、動きベクトル情報とイントラ領域の情報を、保存ベクトル選択部174に供給する。
保存ベクトル選択部174は、処理対象領域の動きベクトル情報を、動きベクトル保存メモリ122に保存する。その際、保存ベクトル選択部174は、最適モード判定部173から動きベクトル情報とイントラ領域の情報、周辺動きベクトル保存部134からの周辺領域のベクトルとモード情報などを参照する。
なお、図示はされていないが、保存ベクトル選択部174は、周辺動きベクトル保存部134にも、動きベクトル情報とモード情報を保存させる。
[動きベクトル情報の保存方法]
図20の例においては、16×16ピクセル単位で分割された画面の一部が示されている。動きベクトル保存メモリ122においては、16×16の分割領域毎に動きベクトルが保存される。太枠で囲まれている右下の16×16領域が、動きベクトル保存の処理対象領域(分割領域)であり、処理対象領域の左上の位置には、ピクセル位置Pが示されている。ピクセル位置Pに接する、ピクセル位置A、ピクセル位置B、およびピクセル位置Cも示されている。
ピクセル位置Pの左に隣接するピクセル位置Aは、処理対象領域の左隣の16×16領域の右上のピクセル位置である。ピクセル位置Pの左上に接するピクセル位置Bは、処理対象領域の左上の16×16領域の右下のピクセル位置である。ピクセル位置Pの上に隣接するピクセル位置Cは、処理対象領域の上隣の16×16領域の左下のピクセル位置である。
保存ベクトル選択部174は、まず、図7を参照して上述した処理と同様に、16×16領域の左上のピクセル位置Pを含むPUのベクトル情報を動きベクトル保存メモリ122に保存する。ただし、保存ベクトル選択部174は、そのPUがイントラ領域である場合には、周囲のピクセル位置が含まれるPUの動きベクトル情報が利用可能であれば、それを、処理対象の16×16領域のベクトル情報として動きベクトル保存メモリ122に保存する。
具体的には、保存ベクトル選択部174は、16×16領域の左上のピクセル位置Pを含むPUがイントラであった場合、ピクセル位置Aが含まれるPUの動きベクトル情報が利用可能であるか否かを判定する。保存ベクトル選択部174は、ピクセル位置Aが含まれるPUの動きベクトル情報が利用可能であれば、その動きベクトル情報を、処理対象の16×16領域のベクトル情報として保存する。
保存ベクトル選択部174は、ピクセル位置Aが含まれるPUの動きベクトル情報が利用不可能であれば、ピクセル位置Bが含まれるPUの動きベクトル情報が利用可能であるか否かを判定する。保存ベクトル選択部174は、ピクセル位置Bが含まれるPUの動きベクトル情報が利用可能であれば、その動きベクトル情報を、処理対象の16×16領域のベクトル情報として保存する。
保存ベクトル選択部174は、ピクセル位置Bが含まれるPUの動きベクトル情報が利用不可能であれば、ピクセル位置Cが含まれるPUの動きベクトル情報が利用可能であるか否かを判定する。保存ベクトル選択部174は、ピクセル位置Cが含まれるPUの動きベクトル情報が利用可能であれば、その動きベクトル情報を、処理対象の16×16領域のベクトル情報として保存する。
保存ベクトル選択部174は、ピクセル位置Cが含まれるPUの動きベクトル情報が利用不可能であれば、イントラであることを、処理対象の16×16領域のベクトル情報として保存する。
なお、図20の例の場合、LCUをまたぐか否かについては言及されていないが、ラスタスキャン順での情報の保存が必要になることから、実際には、LCUをまたぐ場合には、利用不可能と判定させることが望ましい。
また、図20の例においては、16×16領域の外側のベクトル情報を保存の候補としていたが、動きベクトル保存単位である16×16領域の内側のベクトル情報を保存の候補とすることも可能である。
図21の例においては、画面のうち、処理対象領域である、16×16ピクセルの分割領域が示されている。処理対象領域は、さらに、8×8ピクセルの領域に分割されている。
処理対象領域の左上の8×8領域の左上の位置には、ピクセル位置Aが示されている。処理対象領域の右上の8×8領域の左上の位置には、ピクセル位置Bが示されている。処理対象領域の左下の8×8領域の左上の位置には、ピクセル位置Cが示されている。処理対象領域の右下の8×8領域の左上の位置には、ピクセル位置Dが示されている。
保存ベクトル選択部174は、まず、図7を参照して上述した処理と同様に、16×16領域の左上のピクセル位置Aを含むPU(PI0_0)のベクトル情報を動きベクトル保存メモリ122に保存する。ただし、保存ベクトル選択部174は、そのPUがイントラ領域である場合には、周囲のピクセル位置が含まれるPUの動きベクトル情報が利用可能であれば、それを、処理対象の16×16領域のベクトル情報として動きベクトル保存メモリ122に保存する。
具体的には、保存ベクトル選択部174は、16×16領域の左上のピクセル位置Aを含むPUがイントラであった場合、ピクセル位置Bが含まれるPU(PI1_0)の動きベクトル情報が利用可能であるか否かを判定する。保存ベクトル選択部174は、ピクセル位置Bが含まれるPUの動きベクトル情報が利用可能であれば、その動きベクトル情報を、処理対象の16×16領域のベクトル情報として保存する。
保存ベクトル選択部174は、ピクセル位置Bが含まれるPUの動きベクトル情報が利用不可能であれば、ピクセル位置C(PI2_0)が含まれるPUの動きベクトル情報が利用可能であるか否かを判定する。保存ベクトル選択部174は、ピクセル位置Cが含まれるPUの動きベクトル情報が利用可能であれば、その動きベクトル情報を、処理対象の16×16領域のベクトル情報として保存する。
保存ベクトル選択部174は、ピクセル位置Cが含まれるPUの動きベクトル情報が利用不可能であれば、ピクセル位置Dが含まれるPUの動きベクトル情報が利用可能であるか否かを判定する。保存ベクトル選択部174は、ピクセル位置D(PI3_0)が含まれるPUの動きベクトル情報が利用可能であれば、その動きベクトル情報を、処理対象の16×16領域のベクトル情報として保存する。
保存ベクトル選択部174は、ピクセル位置Dが含まれるPUの動きベクトル情報が利用不可能であれば、イントラであることを、処理対象の16×16領域のベクトル情報として保存する。
[時間相関の予測ベクトルの生成処理の流れ]
次に、図19の動きベクトル差分生成部121の場合の各処理の流れについて説明する。ただし、図19の動き動きベクトル差分生成部121の場合の画像符号化装置100の符号化処理は、図12を参照して上述した符号化処理と同様の流れである。また、動きベクトル差分生成処理の流れは、図13を参照して上述した動きベクトル差分生成処理の流れと同様の流れである。
したがって、図13のステップS132における時間相関の予測ベクトルの生成処理と、ステップS139における動きベクトル保存処理の詳細が異なっているので、それらの処理について順に説明する。
図22は、図13のステップS132における時間相関の予測ベクトルの生成処理の例を説明するフローチャートである。
16×16アドレス生成部181には、動きベクトル差分生成制御部171から、予測ベクトル生成の指示が供給される。16×16アドレス生成部181は、ステップS161において、参照する16×16領域のアドレスを計算する。16×16アドレス生成部181は、計算した16×16アドレス情報を、メモリアクセス制御部143に供給する。
メモリアクセス制御部143は、動きベクトル保存メモリ122に対して、16×16アドレス生成部181からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS162において、動きベクトル保存メモリ122は、メモリアクセス制御部143からのリクエストに対応して、動きベクトル情報を読み出し、時間相関予測ベクトル情報として、最適モード判定部173に供給する。
すなわち、動きベクトル保存メモリ122には、図20および図21を参照して上述したように動きベクトルが保存されるので、イントラであっても動きベクトルが保存されている。これにより、図14または図18を参照して上述した例のように、イントラの場合、再度動きベクトルを読み出す処理を省くことができる。
なお、図20または図21を参照して上述した動きベクトルがどれも利用不可能でイントラであることが保存される場合だけ、従来のイントラの場合の読み出し方法を使用してもよい。
[動きベクトル保存処理の流れ]
次に、図23のフローチャートを参照して、図13のステップS139の動きベクトル保存処理の例について説明する。なお、図23は、上述した図20を参照して上述した保存処理の流れを説明するフローチャートであり、図20を参照して説明する。
図13のステップS138において、処理対象領域の最適モードが決まると、最適モード判定部173は、最適モードの動きベクトル情報およびイントラ領域情報を、保存ベクトル選択部174に供給する。
ステップS171において、保存ベクトル選択部174は、最適モード判定部173からのイントラ領域情報に基づいて、処理対象領域(図20の太枠の16×16領域)がインターであるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS171において、図20に示されるピクセル位置Pを含むPUがインターであるか否かを判定する。ステップS171において、処理対象領域がインターであると判定された場合、処理は、ステップS172に進む。
ステップS172において、保存ベクトル選択部174は、ピクセル位置Pを含むPUの動きベクトル情報を、処理対象領域の動きベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ステップS171において、処理対象領域がイントラであると判定された場合、処理は、ステップS173に進む。保存ベクトル選択部174は、周辺動きベクトル保存部134から、図20に示されるピクセル位置Aが含まれるPUの動きベクトル情報やモード情報を取得する。
保存ベクトル選択部174は、ステップS173において、ピクセル位置Aが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS173において、ピクセル位置Aが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ピクセル位置Aが含まれるPUのモード情報がインターであり、ステップS173において、ピクセル位置Aが利用可能であると判定された場合、処理は、ステップS174に進む。ステップS174において、保存ベクトル選択部174は、ピクセル位置Aが含まれるPUの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ピクセル位置Aが含まれるPUのモード情報がイントラであり、ステップS173において、ピクセル位置Aが利用不可能であると判定された場合、処理は、ステップS175に進む。保存ベクトル選択部174は、周辺動きベクトル保存部134から、図20に示されるピクセル位置Bが含まれるPUの動きベクトル情報やモード情報を取得する。
保存ベクトル選択部174は、ステップS175において、ピクセル位置Bが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS175において、ピクセル位置Bが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ピクセル位置Bが含まれるPUのモード情報がインターであり、ステップS175において、ピクセル位置Bが利用可能であると判定された場合、処理は、ステップS176に進む。ステップS176において、保存ベクトル選択部174は、ピクセル位置Bが含まれるPUの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ピクセル位置Bが含まれるPUのモード情報がイントラであり、ステップS175において、ピクセル位置Aが利用不可能であると判定された場合、処理は、ステップS177に進む。保存ベクトル選択部174は、周辺動きベクトル保存部134から、図20に示されるピクセル位置Cが含まれるPUの動きベクトル情報やモード情報を取得する。
保存ベクトル選択部174は、ステップS177において、ピクセル位置Cが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS177において、ピクセル位置Cが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ピクセル位置Cが含まれるPUのモード情報がインターであり、ステップS177において、ピクセル位置Cが利用可能であると判定された場合、処理は、ステップS178に進む。ステップS178において、保存ベクトル選択部174は、ピクセル位置Cが含まれるPUの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ピクセル位置Cが含まれるPUのモード情報がイントラであり、ステップS177において、ピクセル位置Cが利用不可能であると判定された場合、処理は、ステップS179に進む。
ステップS178において、保存ベクトル選択部174は、処理対象領域がイントラであることを、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
以上のように、動きベクトル保存の処理対象領域とColPUの位置が1対1でほぼ決まるので、図22を参照して上述したように、動きベクトル情報の読み直しが抑制される。
これにより、メモリアクセスを低減することができるとともに、予測ベクトルmvpとしてColが利用可能になる可能性が高くなるので、圧縮性能を改善することができる。
次に、図24のフローチャートを参照して、図13のステップS139の動きベクトル保存処理の他の例について説明する。なお、図24は、上述した図21を参照して上述した保存処理の流れを説明するフローチャートであり、図21を参照して説明する。
図13のステップS138において、処理対象領域の最適モードが決まると、最適モード判定部173は、最適モードの動きベクトル情報またはイントラ領域情報を、保存ベクトル選択部174に供給する。
ステップS181において、保存ベクトル選択部174は、処理対象領域(図21に示される16×16領域)の動きベクトルを保存するため、最適モード判定部173からの動きベクトル情報またはイントラ領域情報に基づいて、図21に示されるピクセル位置Aが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS181において、ピクセル位置Aが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS181において、ピクセル位置Aが利用可能であると判定された場合、処理は、ステップS182に進む。ステップS182において、保存ベクトル選択部174は、最適モード判定部173からのピクセル位置Aが含まれるPU(図21のPl0_0)の動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ステップS181において、ピクセル位置Aが利用不可能であると判定された場合、処理は、ステップS183に進む。ステップS183において、保存ベクトル選択部174は、最適モード判定部173からの動きベクトル情報またはイントラ領域情報に基づいて、図21に示されるピクセル位置Bが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS183において、ピクセル位置Bが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS181において、ピクセル位置Bが利用可能であると判定された場合、処理は、ステップS184に進む。ステップS184において、保存ベクトル選択部174は、最適モード判定部173からのピクセル位置Bが含まれるPU(図21のPl1_0)の動きベクトル情報を、処理対象領域のベクトル情報として動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ステップS183において、ピクセル位置Bが利用不可能であると判定された場合、処理は、ステップS185に進む。ステップS185において、保存ベクトル選択部174は、最適モード判定部173からの動きベクトル情報またはイントラ領域情報に基づいて、図21に示されるピクセル位置Cが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS185において、ピクセル位置Cが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS185において、ピクセル位置Cが利用可能であると判定された場合、処理は、ステップS186に進む。ステップS186において、保存ベクトル選択部174は、最適モード判定部173からのピクセル位置Cが含まれるPU(図21のPl2_0)の動きベクトル情報を、処理対象領域のベクトル情報として動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ステップS185において、ピクセル位置Cが利用不可能であると判定された場合、処理は、ステップS187に進む。ステップS187において、保存ベクトル選択部174は、最適モード判定部173からの動きベクトル情報またはイントラ領域情報に基づいて、図21に示されるピクセル位置Dが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部174は、ステップS187において、ピクセル位置Dが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS187において、ピクセル位置Dが利用可能であると判定された場合、処理は、ステップS188に進む。ステップS188において、保存ベクトル選択部174は、最適モード判定部173からのピクセル位置Dが含まれるPU(図21のPl3_0)の動きベクトル情報を、処理対象領域のベクトル情報として動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
ステップS188において、ピクセル位置Dが利用不可能であると判定された場合、処理は、ステップS189に進む。ステップS189において、保存ベクトル選択部174は、イントラであることを、処理対象領域の動きベクトル情報として動きベクトル保存メモリ122に保存する。その後、処理は、図13のステップS139に戻る。
以上のように、図24の例の場合も、動きベクトル保存の処理対象領域とColPUの位置が1対1でほぼ決まるので、図22を参照して上述したように、動きベクトル情報の読み直しが抑制される。
これにより、メモリアクセスを低減することができるとともに、予測ベクトルとしてColが利用可能になる可能性が高くなるので、圧縮性能を改善することができる。
<2.第2の実施の形態>
[画像復号装置]
図25は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図25に示される画像復号装置200は、図1の画像符号化装置100に対応する復号装置である。
画像符号化装置100より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置100に対応する画像復号装置200に伝送され、復号されるものとする。
図25に示されるように、画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、動きベクトル生成部221および動きベクトル保存メモリ222を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置100により符号化されたものである。可逆復号部202は、蓄積バッファ201から所定のタイミングで読み出された符号化データを、図1の可逆符号化部106の符号化方式に対応する方式で復号する。
逆量子化部203は、可逆復号部202により復号されて得られた係数データ(量子化係数)を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部203は、画像符号化装置100から供給された量子化パラメータを用いて、図1の逆量子化部108と同様の方法で量子化係数の逆量子化を行う。
逆量子化部203は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部204に供給する。また、逆量子化部203は、逆量子化した際の量子化パラメータを、デブロックフィルタ206および量子化パラメータ差分検出部221に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
デブロックフィルタ206は、画像符号化装置100のデブロックフィルタ111と基本的に同様に構成される。デブロックフィルタ206は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ206は、そのフィルタ処理結果を、画面並べ替えバッファ207に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デブロックフィルタ206の出力は、さらに、フレームメモリ209に供給される。
フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213は、画像符号化装置100のフレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、および選択部116にそれぞれ対応する。
選択部210は、インター処理される画像と参照される画像をフレームメモリ209から読み出し、動き予測・補償部212に供給する。また、選択部210は、イントラ予測に用いられる画像をフレームメモリ209から読み出し、イントラ予測部211に供給する。
イントラ予測部211には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、この情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
動き予測・補償部212には、予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等などが、動きベクトル生成部221から供給される。
動き予測・補償部212は、動きベクトル生成部221から供給されるそれらの情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
選択部213は、動き予測・補償部212またはイントラ予測部211により生成された予測画像を選択し、演算部205に供給する。
動きベクトル生成部221には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル差分情報、予測ベクトルインデックス(mvp_index)、参照フレーム情報、フラグ、および各種パラメータ等)が可逆復号部202から供給される。
動きベクトル生成部221は、周辺領域の動きベクトルから、空間相関および時間相関の予測ベクトルを生成する。特に、動きベクトル生成部221は、動きベクトル保存メモリ222に記憶されている動きベクトル情報を用いて、時間予測ベクトル情報を生成する。
動きベクトル生成部221は、生成された予測ベクトル情報のうち、予測ベクトルインデックスが示す予測ベクトル情報と、動きベクトル差分情報とを加算することで、動きベクトル情報を生成(再構成)する。動きベクトル生成部221は、生成した動きベクトル情報を、ヘッダ情報を復号して得られた他の情報とともに、動き予測・補償部212に供給する。
動きベクトル保存メモリ222は、動きベクトル生成部221により記憶された動きベクトル情報であって、動きベクトル生成部221が時間予測ベクトルを生成する際に用いられる動きベクトル情報を記憶している。
[動きベクトル生成部の構成例]
次に、画像復号装置200の各部について説明する。図26は、動きベクトル生成部の構成例を示すブロック図である。なお、図26の動きベクトル生成部は、図9の動きベクトル差分生成部に対応する部である。
図26の例において、 動きベクトル生成部221は、動きベクトル生成制御部231、時間予測ベクトル生成部232、画内予測ベクトル生成部233、周辺動きベクトル保存部234、動きベクトル再構成部235、インター/イントラ判定部236を含むように構成されている。
可逆復号部202から、CUサイズ情報、CU分割情報、CUアドレス情報、動きベクトル差分情報、および予測モード情報が、動きベクトル生成制御部231に供給される。
動きベクトル生成制御部231は、図9の動きベクトル差分生成制御部131に対応する部である。動きベクトル生成制御部231は、画内予測ベクトル生成部233および時間予測ベクトル生成部232に対して、予測ベクトル生成の指示を与える。その際、動きベクトル生成制御部231は、16×16アドレス補正部242に対して、CU/PUアドレス情報とCU/PUサイズ情報を供給する。動きベクトル生成制御部231は、動きベクトル再構成部235に、可逆復号部202からの動きベクトル差分情報を供給し、動きベクトルを再構成させる。
時間予測ベクトル生成部232は、図9の時間予測ベクトル生成部132に対応する部であり、時間相関の予測ベクトルを生成する部である。時間予測ベクトル生成部232は、16×16アドレス生成部241、16×16アドレス補正部242、およびメモリアクセス制御部243を含むように構成されている。
16×16アドレス生成部241は、図9の16×16アドレス生成部141に対応する部である。16×16アドレス生成部241は、動きベクトル生成制御部231の制御のもと、参照する16×16領域のアドレスを計算し、計算した16×16アドレス情報を、16×16アドレス補正部242に供給する。
また、16×16アドレス生成部241は、インター/イントラ判定部236から再読み込み指示があると、イントラの場合の16×16領域のアドレスを計算し、計算した16×16アドレス情報を、16×16アドレス補正部242に供給する。
16×16アドレス補正部242には、動きベクトル生成制御部231からCU/PUアドレス情報とCU/PUサイズ情報が供給される。また、16×16アドレス補正部242には、16×16アドレス生成部241から、16×16アドレス情報が供給される。
16×16アドレス補正部242は、図9の16×16アドレス補正部142に対応する部である。16×16アドレス補正部242は、供給された情報を用いて、16×16アドレス生成部241からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。CUを越えた参照である場合、16×16アドレス補正部242は、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行い、補正された16×16アドレス情報を、メモリアクセス制御部243に供給する。CUを越えた参照ではない場合、16×16アドレス補正部242は、16×16アドレス生成部141からの16×16アドレス情報をメモリアクセス制御部243に供給する。
メモリアクセス制御部243は、図9のメモリアクセス制御部143に対応する部である。メモリアクセス制御部243は、動きベクトル保存メモリ222に対して、16×16アドレス補正部242からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。このリクエストに対応して、動きベクトル保存メモリ222から動きベクトル情報が、インター/イントラ判定部236に供給される。
画内予測ベクトル生成部233は、図9の画内予測ベクトル生成部133に対応する部である。画内予測ベクトル生成部233は、動きベクトル生成制御部231からの制御のもと、周辺動きベクトル保存部234に記憶されている動きベクトル情報を読み出して、空間予測ベクトル情報を生成する。画内予測ベクトル生成部233は、空間予測ベクトル情報を、動きベクトル再構成部235に供給する。
周辺動きベクトル保存部234は、メモリなどで構成され、処理対象のピクチャ内の動きベクトル情報を保存している。
動きベクトル再構成部235には、動きベクトル生成制御部231から動きベクトル差分情報と予測ベクトルインデックスが供給される。動きベクトル再構成部235は、画内予測ベクトル生成部233からの空間予測ベクトルと、インター/イントラ判定部236からの時間予測ベクトルが参照可能であるか否かを判定する。
動きベクトル再構成部235は、参照可能である動きベクトルのうち、予測ベクトルインデックスが示す動きベクトルを予測ベクトルとして、動きベクトル差分情報と加算することで、動きベクトル情報を生成する。動きベクトル再構成部235は、生成した動きベクトル情報を、他の復号された情報(予測モード情報、参照フレーム情報、フラグ、および各種パラメータ等)とともに、動き予測・補償部212に供給する。
また、動きベクトル再構成部235は、生成した動きベクトル情報を、動きベクトル保存メモリ222に保存させる。なお、図示はされていないが、動きベクトル再構成部235は、周辺動きベクトル保存部234にも、動きベクトル情報を保存させる。
インター/イントラ判定部236は、図9のインター/イントラ判定部136に対応する。インター/イントラ判定部236は、動きベクトル保存メモリ222から読み出された動きベクトル情報がインターを示している場合、その動きベクトル情報を、時間予測ベクトルとして、動きベクトル再構成部235に供給する。インター/イントラ判定部236は、動きベクトル保存メモリ222から読み出された動きベクトル情報がイントラを示している場合、16×16アドレス生成部241に対して、再読み込み指示を行う。なお、この再読み込み指示は、1度だけ行われる。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図27のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきた符号化データを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給される符号化データを復号する。すなわち、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル差分情報、予測ベクトルインデックス(mvp_index)、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)、並びに、フラグや量子化パラメータ等の情報も復号される。
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル差分情報などは、動きベクトル生成部221に供給される。
ステップS203において、逆量子化部203は、可逆復号部202により復号されて得られた、量子化された直交変換係数を逆量子化する。ステップS204において逆直交変換部204は逆量子化部203により逆量子化されて得られた直交変換係数を、図1の直交変換部104に対応する方法で逆直交変換する。これにより図1の直交変換部104の入力(演算部103の出力)に対応する差分情報が復号されたことになる。
ステップS205において、演算部205は、ステップS204の処理により得られた差分情報に、予測画像を加算する。これにより元の画像データが復号される。
ステップS206において、デブロックフィルタ206は、ステップS205の処理により得られた復号画像を適宜フィルタリングする。これにより適宜復号画像からブロック歪みが除去される。
ステップS207において、フレームメモリ209は、フィルタリングされた復号画像を記憶する。
ステップS208において、イントラ予測部211、または動きベクトル生成部221は、可逆復号部202から供給される予測モード情報に対応して、イントラ符号化されているか否かを判定する。
ステップS208において、イントラ符号化されていると判定された場合、ステップS209において、イントラ予測部211は、可逆復号部202からのイントラ予測モードを取得する。ステップS210において、イントラ予測部211は、ステップS209で取得したイントラ予測モードに応じて、予測画像を生成する。イントラ予測部211は、生成した予測画像を、選択部213に出力する。
一方、予測モード情報が、インター予測モードまたはマージモードなどであり、ステップS208において、イントラ符号化されていないと判定された場合、処理は、ステップS211に進む。ステップS211において、動きベクトル生成部221は、動きベクトル生成処理を行う。この動きベクトル生成処理は、図28を参照して後述される。
ステップS211の処理により、可逆復号部202から供給されるそれらの情報に基づいて、処理対象領域の周辺にある周辺領域の動きベクトルを用いて、予測ベクトルが生成される。生成された予測ベクトルと動きベクトル差分情報(差分値)を用いて、動きベクトルが再構成されることにより、動きベクトルが生成される。
動きベクトル生成部221は、生成した動きベクトル情報と予測モード情報など、可逆復号部202により復号されたパラメータなどの情報とを、動き予測・補償部212に供給する。
動き予測・補償部212は、ステップS212において、動きベクトル生成部221からの情報を用いて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
ステップS213において、選択部213は予測画像を選択する。すなわち、選択部213には、イントラ予測部211により生成された予測画像、若しくは、動き予測・補償部212により生成された予測画像が供給される。選択部213は、その予測画像が供給された側を選択し、その予測画像を演算部205に供給する。この予測画像は、ステップS205の処理により差分情報に加算される。
ステップS214において、画面並べ替えバッファ207は、復号画像データのフレームの並べ替えを行う。すなわち、復号画像データの、画像符号化装置100の画面並べ替えバッファ102(図1)により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS215において、D/A変換部208は、画面並べ替えバッファ207においてフレームが並べ替えられた復号画像データをD/A変換する。この復号画像データが図示せぬディスプレイに出力され、その画像が表示される。
[動きベクトル生成処理の流れ]
次に、図28のフローチャートを参照して、図27のステップS211において実行される動きベクトル生成処理の流れの例を説明する。
図27のステップS202の処理により、予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル差分情報などは、動きベクトル生成制御部231に供給される。
動きベクトル生成制御部231は、ステップS231において、供給されたそれらの情報である予測モード情報などを取得する。例えば、動きベクトル生成制御部231は、予測モード情報、動きベクトル差分情報、CUサイズ情報、CU分割情報、およびCUアドレス情報などを取得する。さらに、動きベクトル生成制御部231は、予測ベクトルのインデックス、および参照画像インデックスなども取得する。
動きベクトル生成制御部231は、画内予測ベクトル生成部233および時間予測ベクトル生成部232に対して、予測ベクトル生成の指示を与える。
これに対応して、画内予測ベクトル生成部233は、ステップS232において、空間相関の予測ベクトルを生成する。画内予測ベクトル生成部233は、周辺動きベクトル保存部234に記憶されている動きベクトル情報を読み出して、空間相関予測ベクトルを生成する。画内予測ベクトル生成部233は、生成した空間相関予測ベクトル情報を、動きベクトル再構成部235に供給する。
時間予測ベクトル生成部232は、ステップS233において、時間相関の予測ベクトルを生成する。この時間相関の予測ベクトル生成処理の詳細は、図29を参照して後述するが、ステップS233の処理により、時間相関予測ベクトル情報が動きベクトル再構成部235に供給される。
ステップS234において、動きベクトル再構成部235は、周辺領域がすべて参照不可であるか否かを判定する。空間予測ベクトル情報および時間予測ベクトル情報が1つでも供給された場合、動きベクトル再構成部235は、周辺領域がすべて参照不可ではないと判定し、ステップS235に進む。
ステップS235において、動きベクトル再構成部235は、供給された空間予測ベクトル情報および時間予測ベクトル情報のうち、重複する予測ベクトルがある場合、それを削除する。
ステップS236において、動きベクトル再構成部235は、動きベクトル生成制御部231から予測ベクトルインデックスを取得する。
ステップS237において、動きベクトル再構成部235は、予測ベクトルが複数あった場合、ステップS236において取得された予測ベクトルインデックスが示す予測ベクトルを、予測ベクトルとして決定する。
一方、イントラであったり、画面外であったりして、空間予測ベクトル情報および時間予測ベクトル情報が1つも供給されなかった場合、動きベクトル再構成部235は、周辺領域がすべて参照不可であると判定し、ステップS238に進む。
ステップS238において、動きベクトル再構成部235は、0を予測ベクトルとする。
ステップS239において、動きベクトル再構成部235は、ステップS237またはS238において決定された予測ベクトルを、動きベクトル生成制御部231からの動きベクトル差分に加算することで、動きベクトルを生成する。
ステップS240において、動きベクトル再構成部235は、生成した動きベクトルの情報を、動きベクトル保存メモリ122に保存する。具体的には、動きベクトル再構成部235は、図7を参照して上述したように、16×16の分割領域毎に、分割領域の左上のピクセル位置を含むPUの動きベクトル情報を、動きベクトル保存メモリ222に保存する。動きベクトル保存メモリ222に保存された動きベクトル情報は、時間的に後のピクチャの予測ベクトル生成に用いられる。なお、この動きベクトル情報は、周辺動きベクトル保存部134にも保存される。
その後、動きベクトル再構築部235は、生成した動きベクトル情報と、予測モード情報など、可逆復号部202により復号されたパラメータなどの情報とを、動き予測・補償部212に供給し、処理は、図27のステップS211に戻る。
なお、図28の例は、予測ベクトルmvpを求める場合の例である。マージモードの場合、動きベクトル差分情報は符号化側から送られてこないので、図28の処理のうち、ステップS239の処理が除かれる。そして、図28のステップS236で取得されるインデックスが、マージインデックス(merge_idx)となり、ステップS237またはS238において予測ベクトルではなく動きベクトルが決定される。
すなわち、マージモードの場合も、ステップS233における時間相関の予測ベクトルを生成する処理とステップS240における動きベクトルを保存する処理は、基本的に同様の処理を行うので、以下においても、マージモードの場合の図示を省略する。
[時間相関の予測ベクトルの生成処理の流れ]
次に、図29のフローチャートを参照して、図28のステップS233において実行される時間相関の予測ベクトルの生成処理の流れの例を説明する。なお、図29の各ステップにおいては、上述した図14の各ステップにおける処理と基本的に同様の処理が行われる。
16×16アドレス生成部241には、動きベクトル生成制御部231から、予測ベクトル生成の指示が供給される。16×16アドレス生成部241は、ステップS261において、参照する16×16領域のアドレスを計算する。16×16アドレス生成部241は、計算した16×16アドレス情報を、16×16アドレス補正部242に供給する。
16×16アドレス補正部242には、さらに、動きベクトル生成制御部231からCU/PUアドレス情報とCU/PUサイズ情報が供給される。
ステップS262において、16×16アドレス補正部242は、供給された情報を用いて、16×16アドレス生成部141からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。すなわち、ステップS262においては、16×16アドレス情報が示す分割領域の右下のピクセル位置が、処理対象のCUの境界を越えているか否かが判定される。
ステップS262において、CUを越えた参照であると判定された場合、16×16アドレス補正部242は、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行う。具体的には、16×16アドレス補正部242は、16×16アドレス情報に対して、式(3)を用いて、垂直方向に引き戻しを行う。
16×16アドレス補正部242は、引き戻しの結果、補正された16×16アドレス情報を、メモリアクセス制御部243に供給する。
ステップS262において、CUを越えた参照ではないと判定された場合、ステップS263の処理はスキップされる。すなわち、16×16アドレス補正部242は、16×16アドレス生成部241からの16×16アドレス情報を、メモリアクセス制御部243に供給する。
メモリアクセス制御部243は、動きベクトル保存メモリ222に対して、16×16アドレス補正部242からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS264において、動きベクトル保存メモリ222は、メモリアクセス制御部243からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部236に供給する。
ステップS265において、インター/イントラ判定部236は、動きベクトル保存メモリ222から読み出した動きベクトル情報が、イントラ(ピクチャ)を指しているか否かを判定する。
ステップS265において、読み出した動きベクトル情報が、イントラを指していると判定された場合、インター/イントラ判定部236は、16×16アドレス生成部241に対して、再読み込み指示を行う。なお、この再読み込み指示は、一度だけ行われる。
ステップS266において、16×16アドレス生成部241は、イントラの場合の16×16領域のアドレスを計算する。16×16アドレス生成部141は、計算した16×16アドレス情報を、16×16アドレス補正部242に供給する。
ステップS267において、16×16アドレス補正部242は、供給された情報を用いて、16×16アドレス生成部241からの16×16アドレス情報を用いた参照が、CUを越えた参照であるか否かを判定する。
ステップS267において、CUを越えた参照であると判定された場合、16×16アドレス補正部242は、ステップS268において、その参照をCU内に引き戻すように、16×16アドレス情報の補正を行う。具体的には、16×16アドレス補正部242は、16×16アドレス情報に対して、式(3)を用いて、垂直方向に引き戻しを行う。
16×16アドレス補正部242は、引き戻しの結果、補正された16×16アドレス情報を、メモリアクセス制御部243に供給する。
ステップS267において、CUを越えた参照ではないと判定された場合、ステップS268の処理はスキップされる。すなわち、16×16アドレス補正部242は、16×16アドレス生成部141からの16×16アドレス情報を、メモリアクセス制御部143に供給する。
メモリアクセス制御部243は、動きベクトル保存メモリ222に対して、16×16アドレス補正部242からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS269において、動きベクトル保存メモリ222は、メモリアクセス制御部243からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部236に供給する。
インター/イントラ判定部236は、動きベクトル保存メモリ222からの動きベクトル情報を、時間相関予測ベクトル情報として、動きベクトル再構成部235に供給する。
一方、ステップS265において、読み出した動きベクトル情報が、イントラを指していると判定された場合、ステップS266乃至S269はスキップされる。すなわち、ステップS264で読み出された動きベクトル情報が、時間相関予測ベクトル情報として、動きベクトル再構成部235に供給される。
以上のように、復号側でも、符号化側と同様に、参照先がLCUをまたぐ参照関係となってしまう場合に、その参照がLCU内に引き戻されるように、アドレスの補正を行うようにした。これにより、ラスタスキャン順の処理において、垂直方向にLCUを跨がないので、Colベクトル情報の読み直しがなくなる。
すなわち、過去に一度読み込んだデータの再読み込みは行われないので、効率よく、メモリアクセスを行うことができる。
[動きベクトル生成部の他の構成例]
図30は、動きベクトル生成部の他の構成例を示すブロック図である。なお、図30の動きベクトル生成部は、図15の動きベクトル差分生成部に対応する部である。
図30の動きベクトル生成部221は、画面予測ベクトル生成部233、周辺動きベクトル保存部234、動きベクトル再構成部235、およびインター/イントラ判定部236を備える点で、図26の動きベクトル生成部221と共通している。なお、共通している部分については、繰り返しになるので適宜その説明を省略する。
図30の動きベクトル生成部221は、動きベクトル生成制御部231が、動きベクトル生成制御部251に入れ替わり、時間予測ベクトル生成部232が、時間予測ベクトル生成部252に入れ替わった点が、図26の動きベクトル生成部221と異なっている。
動きベクトル生成制御部251は、図15の動きベクトル差分生成制御部151に対応する部である。動きベクトル生成制御部251は、画内予測ベクトル生成部233および時間予測ベクトル生成部252に対して、予測ベクトル生成の指示を与える。動きベクトル生成制御部251は、動きベクトル再構成部235に、可逆復号部202からの動きベクトル差分情報を供給し、動きベクトルを再構成させる。
なお、動きベクトル生成制御部251は、図26の動きベクトル生成制御部231と異なり、16×16アドレス補正部262に対して、CUやPUの情報を供給しない。
時間予測ベクトル生成部252は、図15の時間予測ベクトル生成部152に対応する部である。時間予測ベクトル生成部252は、メモリアクセス制御部243を備える点が、図26の時間予測ベクトル生成部232と共通している。
時間予測ベクトル生成部252は、16×16アドレス生成部241が、16×16アドレス生成部261に入れ替わり、16×16アドレス補正部242が、16×16アドレス補正部262に入れ替わった点が、図26の時間予測ベクトル生成部232と異なっている。
16×16アドレス生成部261は、図15の16×16アドレス生成部161に対応する部である。16×16アドレス生成部261は、動きベクトル生成制御部251の制御のもと、参照する16×16領域のアドレスを計算し、計算した16×16アドレス情報を、16×16アドレス補正部262に供給する。
16×16アドレス生成部261は、インター/イントラ判定部236から再読み込み指示があると、イントラの場合の16×16領域のアドレスを計算する。16×16アドレス生成部261は、1回目の計算によるアドレスと、2回目(イントラの場合)の計算によるアドレスが同じであるか否かを判定し、同じであった場合、アドレスが同じであることを示す一致フラグを生成する。16×16アドレス生成部261は、生成した一致フラグを、16×16アドレス補正部262に供給する。
16×16アドレス補正部262は、図15の16×16アドレス補正部162に対応する部である。16×16アドレス補正部262は、16×16アドレス生成部261からの16×16アドレス情報をメモリアクセス制御部243に供給する。また、16×16アドレス補正部262は、16×16アドレス生成部261からのフラグを受けた場合、1回目とは異なるアドレスになるように、1回目の16×16アドレスを補正する。16×16アドレス補正部262は、補正された16×16アドレス情報を、メモリアクセス制御部243に供給する。
[時間相関の予測ベクトルの生成処理の流れ]
次に、図30の動きベクトル生成部221の場合の各処理の流れについて説明する。ただし、図30の動きベクトル生成部221の場合の画像復号装置200の復号処理は、図27を参照して上述した復号処理と同様の流れである。また、動きベクトル生成処理の流れは、図28を参照して上述した動きベクトル生成処理の流れと同様の流れである。
したがって、異なる処理が施される図28のステップS233における時間相関の予測ベクトルの生成処理の詳細について、図31のフローチャートを参照して説明する。なお、図31の各ステップにおいては、上述した図18の各ステップにおける処理と基本的に同様の処理が行われる。
16×16アドレス生成部261には、動きベクトル生成制御部251から、予測ベクトル生成の指示が供給される。16×16アドレス生成部261は、ステップS271において、参照する16×16領域のアドレスを計算する。16×16アドレス生成部261は、計算した16×16アドレス情報を、16×16アドレス補正部262に供給する。
16×16アドレス補正部262は、16×16アドレス生成部261からの16×16アドレス情報を、メモリアクセス制御部243に供給する。
メモリアクセス制御部243は、動きベクトル保存メモリ222に対して、16×16アドレス補正部262からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS272において、動きベクトル保存メモリ222は、メモリアクセス制御部243からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部236に供給する。
ステップS273において、インター/イントラ判定部236は、動きベクトル保存メモリ222から読み出した動きベクトル情報が、イントラ(ピクチャ)を示しているか否かを判定する。
ステップS273において、読み出した動きベクトル情報が、イントラを示していると判定された場合、インター/イントラ判定部236は、16×16アドレス生成部261に対して、再読み込み指示を行う。なお、この再読み込み指示は、一度だけ行われる。
ステップS274において、16×16アドレス生成部261は、イントラの場合の16×16領域のアドレスを計算する。
16×16アドレス生成部261は、ステップS275において、1回目の計算によるアドレスと、2回目(イントラの場合)の計算によるアドレスが同じであるか否かを判定する。
16×16アドレス生成部261は、ステップS275において、アドレスが同じであると判定した場合、アドレスが同じであることを示す一致フラグを生成し、生成した一致フラグを、16×16アドレス補正部262に供給する。
16×16アドレス補正部262は、一致フラグを受け取ると、ステップS276において、1回目とは異なるアドレスになるように、1回目の16×16アドレスを補正する。すなわち、16×16アドレス補正部262は、1回目の16×16アドレスの水平方向に、16×16アドレスが属する領域の右となりの領域を指すように+16して、16×16アドレスを補正する。16×16アドレス補正部262は、補正された16×16アドレス情報を、メモリアクセス制御部243に供給する。
また、ステップS275において、アドレスが異なると判定された場合、一致フラグは生成されず、ステップS276もスキップされる。すなわち、16×16アドレス補正部262は、1回目の16×16アドレスとは異なる2回目の16×16アドレスを、メモリアクセス制御部243に供給する。
メモリアクセス制御部243は、動きベクトル保存メモリ222に対して、16×16アドレス補正部242からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS277において、動きベクトル保存メモリ222は、メモリアクセス制御部243からのリクエストに対応して、動きベクトル情報を読み出し、インター/イントラ判定部236に供給する。
インター/イントラ判定部236は、動きベクトル保存メモリ222からの動きベクトル情報を、時間相関予測ベクトル情報として、動きベクトル再構成部235に供給する。
一方、ステップS273において、読み出した動きベクトル情報が、イントラを指していると判定された場合、ステップS274乃至S277はスキップされる。すなわち、ステップS272で読み出された動きベクトル情報が、時間相関予測ベクトル情報として、動きベクトル再構成部235に供給される。
以上のように、復号側でも、符号化側と同様に、1回目の計算によるアドレスと2回目の計算によるアドレスが一致する場合、そのアドレスを、隣の16×16領域に移動させるようにした。これにより、同じアドレスを読み出してしまうメモリアクセスを抑制するとともに、マージモードや予測ベクトルの候補が減ってしまうことを抑制することができる。
その結果、効率よくメモリアクセスを行うことができるとともに、符号化効率を改善することもできる。
[動きベクトル差分生成部の他の構成例]
図32は、動きベクトル生成部のさらに他の構成例を示すブロック図である。なお、図32の動きベクトル生成部は、図19の動きベクトル差分生成部に対応する部である。
図32の動きベクトル生成部221は、画面予測ベクトル生成部233、および周辺動きベクトル保存部234を備える点で、図26の動きベクトル生成部221と共通している。なお、共通している部分については、繰り返しになるので適宜その説明を省略する。
図32の動きベクトル生成部221は、動きベクトル生成制御部231が、動きベクトル生成制御部271に入れ替わり、時間予測ベクトル生成部232が、時間予測ベクトル生成部272に入れ替わった点が、図26の動きベクトル生成部221と異なっている。図32の動きベクトル生成部221は、動きベクトル再構成部235が、動きベクトル再構成部273に入れ替わった点が、図26の動きベクトル生成部221と異なっている。
さらに、図32の動きベクトル生成部221は、インター/イントラ判定部236が除かれた点と、保存ベクトル選択部274が追加された点とが、図26の動きベクトル生成部221と異なっている。
動きベクトル生成制御部271は、図19の動きベクトル差分生成制御部171に対応する部である。動きベクトル生成制御部271は、画内予測ベクトル生成部233および時間予測ベクトル生成部272に対して、予測ベクトル生成の指示を与える。動きベクトル生成制御部271は、動きベクトル再構成部273に、可逆復号部202からの動きベクトル差分情報を供給し、動きベクトルを再構成させる。また、動きベクトル生成制御部271は、イントラ領域情報を、保存ベクトル選択部274に供給して、動きベクトルを、動きベクトル保存メモリ222に保存させる。
時間予測ベクトル生成部272は、図19の時間予測ベクトル生成部172に対応する部である。時間予測ベクトル生成部272は、メモリアクセス制御部243を備える点が、図26の時間予測ベクトル生成部232と共通している。
時間予測ベクトル生成部272は、16×16アドレス生成部241が、16×16アドレス生成部281に入れ替わった点と、16×16アドレス補正部242が除かれた点が、図26の時間予測ベクトル生成部232と異なっている。
16×16アドレス生成部281は、図19の16×16アドレス生成部181に対応する部である。16×16アドレス生成部281は、動きベクトル生成制御部271の制御のもと、参照する16×16領域のアドレスを計算し、計算した16×16アドレス情報を、メモリアクセス制御部243に供給する。
動きベクトル再構成部273は、図19の動きベクトル再構成部173と対応する部である。画内予測ベクトル生成部233からの空間予測ベクトルと、動きベクトル保存メモリ222からの時間予測ベクトルが参照可能であるか否かを判定する。動きベクトル再構成部273は、参照可能である動きベクトルのうち、予測ベクトルインデックスが示す動きベクトルを予測ベクトルとして、動きベクトル差分情報と加算することで、動きベクトル情報を生成する。動きベクトル再構成部273は、生成した動きベクトル情報を、他の復号された情報(予測モード情報、参照フレーム情報、フラグ、および各種パラメータ等)とともに、動き予測・補償部212に供給する。
動きベクトル再構成部273は、動きベクトル情報を、保存ベクトル選択部274に供給する。
保存ベクトル選択部274は、図19の保存ベクトル選択部174に対応する部である。保存ベクトル選択部274は、画面を16×16に分割した分割領域である、処理対象領域の動きベクトル情報を、動きベクトル保存メモリ222に保存する。その際、保存ベクトル選択部274は、動きベクトル再構成部273から動きベクトル情報と、動きベクトル生成制御部271からのイントラ領域の情報、周辺動きベクトル保存部234からの周辺領域のベクトルとモード情報などを参照する。
なお、図示はされていないが、保存ベクトル選択部274は、周辺動きベクトル保存部234にも、動きベクトル情報とモード情報を保存させる。
[時間相関の予測ベクトルの生成処理の流れ]
次に、図32の動きベクトル生成部221の場合の各処理の流れについて説明する。ただし、図32の動きベクトル生成部221の場合の画像復号装置200の復号処理は、図27を参照して上述した復号処理と同様の流れである。また、動きベクトル生成処理の流れは、図28を参照して上述した動きベクトル生成処理の流れと同様の流れである。
したがって、図28のステップS233における時間相関の予測ベクトルの生成処理と、ステップS240における動きベクトル保存処理の詳細が異なっているので、それらの処理について順に説明する。
図33は、図28のステップS233における時間相関の予測ベクトルの生成処理の例を説明するフローチャートである。
16×16アドレス生成部281には、動きベクトル生成制御部271から、予測ベクトル生成の指示が供給される。16×16アドレス生成部281は、ステップS281において、参照する16×16領域のアドレスを計算する。16×16アドレス生成部281は、計算した16×16アドレス情報を、メモリアクセス制御部243に供給する。
メモリアクセス制御部243は、動きベクトル保存メモリ222に対して、16×16アドレス生成部281からの16×16アドレス情報が示す動きベクトルを読み出すリクエストを行う。
ステップS282において、動きベクトル保存メモリ222は、メモリアクセス制御部243からのリクエストに対応して、動きベクトル情報を読み出し、時間相関予測ベクトル情報として、動きベクトル再構成部273に供給する。
すなわち、動きベクトル保存メモリ222には、図35および図36を参照して後述されるように動きベクトルが保存されるので、イントラであっても動きベクトルが保存されている。これにより、従来や、あるいは、図29または図31を参照して上述した例のように、イントラの場合に再度動きベクトルを読み出す処理を省くことができる。
[動きベクトル保存処理の流れ]
次に、図34のフローチャートを参照して、図28のステップS240の動きベクトル保存処理の例について説明する。図34は、上述した図20を参照して上述した保存処理の流れを説明するフローチャートであり、図20を参照して説明する。なお、図34の各ステップにおいては、上述した図23の各ステップにおける処理と基本的に同様の処理が行われる。
図28のステップS239において、動きベクトルが生成されると、動きベクトル再構成部273は、生成した動きベクトル情報を、保存ベクトル選択部274に供給する。また、動きベクトル生成制御部271は、イントラ領域情報を、保存ベクトル選択部274に供給する。
ステップS301において、保存ベクトル選択部274は、動きベクトル生成制御部271からのイントラ領域情報に基づいて、処理対象領域(すなわち、図20の太枠の16×16領域)がインターであるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS301において、図20に示されるピクセル位置Pを含むPUがインターであるか否かを判定する。ステップS301において、処理対象領域がインターであると判定された場合、処理は、ステップS302に進む。
ステップS302において、保存ベクトル選択部274は、動きベクトル再構成部273からの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ステップS301において、処理対象領域がイントラであると判定された場合、処理は、ステップS303に進む。保存ベクトル選択部274は、周辺動きベクトル保存部234から、図20に示されるピクセル位置Aが含まれるPUの動きベクトル情報やモード情報を取得する。
保存ベクトル選択部274は、ステップS303において、ピクセル位置Aが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS303において、ピクセル位置Aが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ピクセル位置Aが含まれるPUのモード情報がインターであり、ステップS303において、ピクセル位置Aが利用可能であると判定された場合、処理は、ステップS304に進む。ステップS304において、保存ベクトル選択部274は、ピクセル位置Aが含まれるPUの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ピクセル位置Aが含まれるPUのモード情報がイントラであり、ステップS303において、ピクセル位置Aが利用不可能であると判定された場合、処理は、ステップS305に進む。保存ベクトル選択部274は、周辺動きベクトル保存部234から、図20に示されるピクセル位置Bが含まれるPUの動きベクトル情報やモード情報を取得する。
保存ベクトル選択部274は、ステップS305において、ピクセル位置Bが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS305において、ピクセル位置Bが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ピクセル位置Bが含まれるPUのモード情報がインターであり、ステップS305において、ピクセル位置Bが利用可能であると判定された場合、処理は、ステップS306に進む。ステップS306において、保存ベクトル選択部274は、ピクセル位置Bが含まれるPUの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ピクセル位置Bが含まれるPUのモード情報がイントラであり、ステップS305において、ピクセル位置Aが利用不可能であると判定された場合、処理は、ステップS307に進む。保存ベクトル選択部274は、周辺動きベクトル保存部234から、図20に示されるピクセル位置Cが含まれるPUの動きベクトル情報やモード情報を取得する。
保存ベクトル選択部274は、ステップS307において、ピクセル位置Cが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS307において、ピクセル位置Cが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ピクセル位置Cが含まれるPUのモード情報がインターであり、ステップS307において、ピクセル位置Cが利用可能であると判定された場合、処理は、ステップS308に進む。ステップS308において、保存ベクトル選択部274は、ピクセル位置Cが含まれるPUの動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ピクセル位置Cが含まれるPUのモード情報がイントラであり、ステップS307において、ピクセル位置Cが利用不可能であると判定された場合、処理は、ステップS309に進む。
ステップS308において、保存ベクトル選択部274は、イントラであることを、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
以上のように、動きベクトル保存の処理対象領域とColPUの位置が1対1でほぼ決まるので、図22を参照して上述したように、ベクトル情報の読み直しが抑制される。
これにより、メモリアクセスを低減することができるとともに、予測ベクトルmvpとしてColが利用可能になる可能性が高くなるので、圧縮性能を改善することができる。
次に、図35のフローチャートを参照して、図28のステップS240の動きベクトル保存処理の他の例について説明する。図35は、上述した図21を参照して上述した保存処理の流れを説明するフローチャートであり、図22を参照して説明する。なお、図35の各ステップにおいては、上述した図24の各ステップにおける処理と基本的に同様の処理が行われる。
図28のステップS239において、動きベクトルが生成されると、動きベクトル再構成部273は、生成した動きベクトル情報を、保存ベクトル選択部274に供給する。また、動きベクトル生成制御部271は、イントラ領域情報を、保存ベクトル選択部274に供給する。
ステップS311において、保存ベクトル選択部274は、処理対象領域(図21に示される16×16領域)の動きベクトルを保存するため、動きベクトル生成制御部271からのイントラ領域情報に基づいて、図21に示されるピクセル位置Aが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS311において、ピクセル位置Aが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS311において、ピクセル位置Aが利用可能であると判定された場合、処理は、ステップS312に進む。ステップS312において、保存ベクトル選択部274は、動きベクトル再構成部273からのピクセル位置Aが含まれるPU(図21のPl0_0)の動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ステップS311において、ピクセル位置Aが利用不可能であると判定された場合、処理は、ステップS313に進む。ステップS313において、保存ベクトル選択部274は、動きベクトル生成制御部271からのイントラ領域情報に基づいて、図21に示されるピクセル位置Bが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS313において、ピクセル位置Bが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS311において、ピクセル位置Bが利用可能であると判定された場合、処理は、ステップS314に進む。ステップS314において、保存ベクトル選択部274は、動きベクトル再構成部273からのピクセル位置Bが含まれるPU(図21のPl1_0)の動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ステップS313において、ピクセル位置Bが利用不可能であると判定された場合、処理は、ステップS315に進む。ステップS315において、保存ベクトル選択部274は、動きベクトル生成制御部271からのイントラ領域情報に基づいて、図21に示されるピクセル位置Cが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS315において、ピクセル位置Cが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS315において、ピクセル位置Cが利用可能であると判定された場合、処理は、ステップS316に進む。ステップS316において、保存ベクトル選択部274は、動きベクトル再構成部273からのピクセル位置Cが含まれるPU(図21のPl2_0)の動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ステップS315において、ピクセル位置Cが利用不可能であると判定された場合、処理は、ステップS317に進む。ステップS317において、保存ベクトル選択部274は、動きベクトル生成制御部271からのイントラ領域情報に基づいて、図21に示されるピクセル位置Dが利用可能であるか否かを判定する。すなわち、保存ベクトル選択部274は、ステップS317において、ピクセル位置Dが含まれるPUの動きベクトル情報が、利用可能であるか否かを判定する。
ステップS317において、ピクセル位置Dが利用可能であると判定された場合、処理は、ステップS318に進む。ステップS318において、保存ベクトル選択部274は、動きベクトル再構成部273からのピクセル位置Dが含まれるPU(図21のPl3_0)の動きベクトル情報を、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
ステップS318において、ピクセル位置Dが利用不可能であると判定された場合、処理は、ステップS319に進む。ステップS319において、保存ベクトル選択部274は、イントラであることを、処理対象領域のベクトル情報として、動きベクトル保存メモリ122に保存する。その後、処理は、図28のステップS240に戻る。
以上のように、図35の例においても、ステップS318でNoと判定される場合以外、動きベクトル保存の処理対象領域とColPUの位置が1対1でほぼ決まるので、図21を参照して上述したように、ベクトル情報の読み直しが抑制される。
これにより、メモリアクセスを低減することができるとともに、予測ベクトルとしてColが利用可能になる可能性が高くなるので、圧縮性能を改善することができる。
以上においては、符号化方式としてHEVC方式をベースに用いるようにしたが、本開示はこれに限らず、時間相関の動きベクトルを用いて処理を行う、その他の符号化方式/復号方式を適用することができる。
なお、本開示は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本開示は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<3.第3の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図36において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図36に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<4.第4の実施の形態>
[第1の応用例:テレビジョン受像機]
図37は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、周辺の動きベクトルのうち、時間的に異なる動きベクトルを読み出す際のメモリアクセスを低減することができる。
<5.第5の実施の形態>
[第2の応用例:携帯電話機]
図38は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、周辺の動きベクトルのうち、時間的に異なる動きベクトルを読み出す際のメモリアクセスを低減することができる。
<6.第6の実施の形態>
[第3の応用例:記録再生装置]
図39は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、周辺の動きベクトルのうち、時間的に異なる動きベクトルを読み出す際のメモリアクセスを低減することができる。
<7.第7の実施の形態>
[第4の応用例:撮像装置]
図40は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、周辺の動きベクトルのうち、時間的に異なる動きベクトルを読み出す際のメモリアクセスを低減することができる。
なお、本明細書では、差分量子化パラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正するアドレス補正部と、
前記アドレス補正部により補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
前記読み出し部により読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部と
を備える画像処理装置。
(2) 前記アドレス補正部は、前記アドレスから1を引いて、前記アドレスを補正する
前記(1)に記載の画像処理装置。
(3) 前記アドレス補正部は、前記右下のピクセル位置のy座標が、前記処理対象の復号単位領域の外にある場合、前記右下のピクセル位置のy座標を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正する
前記(1)または(2)に記載の画像処理装置。
(4) 画像処理装置が、
時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正し、
補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する
画像処理方法。
(5) 時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正するアドレス補正部と、
前記アドレス補正部により補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
前記読み出し部により読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部と
を備える画像処理装置。
(6) 前記アドレス補正部は、前記アドレスから1を引いて、前記アドレスを補正する
前記(5)に記載の画像処理装置。
(7) 前記アドレス補正部は、前記右下のピクセル位置のy座標が、前記処理対象の符号化単位領域の外にある場合、前記右下のピクセル位置のy座標を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正する
前記(5)または(6)に記載の画像処理装置。
(8) 画像処理装置が、
時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正し、
補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する
画像処理方法。
(9) 時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正するアドレス補正部と、
前記アドレス補正部により補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
前記読み出し部により読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部と
を備える画像処理装置。
(10) 前記アドレス補正部は、前記第2のアドレスのx座標に対して±16することで、前記第2のアドレスを補正する
前記(9)に記載の画像処理装置。
(11) 画像処理装置が、
時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正し、
補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する
画像処理方法。
(12) 時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正するアドレス補正部と、
前記アドレス補正部により補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
前記読み出し部により読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部と
を備える画像処理装置。
(13) 前記アドレス補正部は、前記第2のアドレスのx座標に対して±16することで、前記第2のアドレスを補正する
前記(12)に記載の画像処理装置。
(14) 画像処理装置が、
時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正し、
補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する
画像処理方法。
(15) 画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存する保存ベクトル選択部と、
前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部と
を備える画像処理装置。
(16) 前記隣接ピクセル位置は、前記ピクセル位置に対して、左、左上、または上に隣接しているピクセル位置である
前記(15)に記載の画像処理装置。
(17) 前記保存ベクトル選択部は、処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択する
前記(15)または(16)に記載の画像処理装置。
(18) 画像処理装置が、
画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存し、
前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する
画像処理方法。
(19) 画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存する保存ベクトル選択部と、
前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部と
を備える画像処理装置。
(20) 前記隣接ピクセル位置は、前記ピクセル位置に対して、左、左上、または上に隣接しているピクセル位置である
前記(19)に記載の画像処理装置。
(21) 前記保存ベクトル選択部は、処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択する
前記(19)または(20)に記載の画像処理装置。
(22) 画像処理装置が、
画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存し、
前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する
画像処理方法。
100 画像符号化装置, 121 動きベクトル差分生成部, 122 動きベクトル保存メモリ, 131 動きベクトル差分生成制御部, 132 時間予測ベクトル生成部, 133 画内予測ベクトル生成部, 134 周辺動きベクトル保存部, 135 最適モード判定部, 136 インター/イントラ判定部, 141 16×16アドレス生成部, 142 16×16アドレス補正部, 143 メモリアクセス制御部, 151 動きベクトル差分生成制御部, 152 時間予測ベクトル生成部, 161 16×16アドレス生成部, 162 16×16アドレス補正部, 171 動きベクトル差分生成制御部, 172 時間予測ベクトル生成部, 173 最適モード判定部, 174 保存ベクトル選択部, 181 16×16アドレス生成部, 200 画像復号装置, 221 動きベクトル生成部, 222 動きベクトル保存メモリ, 231 動きベクトル生成制御部, 232 時間予測ベクトル生成部, 233 画内予測ベクトル生成部, 234 周辺動きベクトル保存部, 235 動きベクトル再構成部, 236 インター/イントラ判定部, 241 16×16アドレス生成部, 242 16×16アドレス補正部, 243 メモリアクセス制御部, 251 動きベクトル生成制御部, 252 時間予測ベクトル生成部, 261 16×16アドレス生成部, 262 16×16アドレス補正部, 271 動きベクトル生成制御部, 272 時間予測ベクトル生成部, 273 動きベクトル再構成部, 274 保存ベクトル選択部, 181 16×16アドレス生成部

Claims (22)

  1. 時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正するアドレス補正部と、
    前記アドレス補正部により補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
    前記読み出し部により読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部と
    を備える画像処理装置。
  2. 前記アドレス補正部は、前記アドレスから1を引いて、前記アドレスを補正する
    請求項1に記載の画像処理装置。
  3. 前記アドレス補正部は、前記右下のピクセル位置のy座標が、前記処理対象の復号単位領域の外にある場合、前記右下のピクセル位置のy座標を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正する
    請求項1に記載の画像処理装置。
  4. 画像処理装置が、
    時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の復号単位の領域の外にある場合、前記ピクセル位置を前記処理対象の復号単位の領域内に引き戻すように前記アドレスを補正し、
    補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
    読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する
    画像処理方法。
  5. 時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正するアドレス補正部と、
    前記アドレス補正部により補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
    前記読み出し部により読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部と
    を備える画像処理装置。
  6. 前記アドレス補正部は、前記アドレスから1を引いて、前記アドレスを補正する
    請求項5に記載の画像処理装置。
  7. 前記アドレス補正部は、前記右下のピクセル位置のy座標が、前記処理対象の符号化単位領域の外にある場合、前記右下のピクセル位置のy座標を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正する
    請求項5に記載の画像処理装置。
  8. 画像処理装置が、
    時間相関の予測ベクトルを求める際に算出されるアドレスが示す、画像を分割した分割領域における右下のピクセル位置が、処理対象の符号化単位の領域の外にある場合、前記ピクセル位置を前記処理対象の符号化単位の領域内に引き戻すように前記アドレスを補正し、
    補正されたアドレスが示す分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
    読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する
    画像処理方法。
  9. 時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正するアドレス補正部と、
    前記アドレス補正部により補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
    前記読み出し部により読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部と
    を備える画像処理装置。
  10. 前記アドレス補正部は、前記第2のアドレスのx座標に対して±16することで、前記第2のアドレスを補正する
    請求項9に記載の画像処理装置。
  11. 画像処理装置が、
    時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正し、
    補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
    読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する
    画像処理方法。
  12. 時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正するアドレス補正部と、
    前記アドレス補正部により補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出す読み出し部と、
    前記読み出し部により読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部と
    を備える画像処理装置。
  13. 前記アドレス補正部は、前記第2のアドレスのx座標に対して±16することで、前記第2のアドレスを補正する
    請求項12に記載の画像処理装置。
  14. 画像処理装置が、
    時間相関の予測ベクトルを求める際に算出される第1のアドレスと、前記第1のアドレスが示す、画像を分割した分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合に算出される第2のアドレスとが同じであるとき、前記第2のアドレスを、前記分割領域に隣接する隣接分割領域を示すように補正し、
    補正されたアドレスが示す隣接分割領域に対応して保存されている動きベクトルを、前記時間相関の予測ベクトルとして、分割領域毎に動きベクトルを保存するメモリから読み出し、
    読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する
    画像処理方法。
  15. 画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存する保存ベクトル選択部と、
    前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する復号部と
    を備える画像処理装置。
  16. 前記隣接ピクセル位置は、前記ピクセル位置に対して、左、左上、または上に隣接しているピクセル位置である
    請求項15に記載の画像処理装置。
  17. 前記保存ベクトル選択部は、処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
    前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
    前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択する
    請求項16に規制の画像処理装置。
  18. 画像処理装置が、
    画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存し、
    前記メモリより読み出された前記時間相関の予測ベクトルを用いて生成される動きベクトルを用いて、ビットストリームを復号して前記画像を生成する
    画像処理方法。
  19. 画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存する保存ベクトル選択部と、
    前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する符号化部と
    を備える画像処理装置。
  20. 前記隣接ピクセル位置は、前記ピクセル位置に対して、左、左上、または上に隣接しているピクセル位置である
    請求項19に記載の画像処理装置。
  21. 前記保存ベクトル選択部は、処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
    前記ピクセル位置の左に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択し、
    前記ピクセル位置の左上に隣接する隣接ピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置の上に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトルを選択する
    請求項20に規制の画像処理装置。
  22. 画像処理装置が、
    画像を分割した処理対象の分割領域の左上のピクセル位置が含まれる予測単位の領域がイントラであった場合、前記ピクセル位置に隣接する隣接ピクセル位置が含まれる異なる予測単位の領域の動きベクトル、または、前記処理対象の分割領域に含まれる他の予測単位の領域の動きベクトルを選択し、選択した動きベクトルを、前記処理対象の分割領域に対応する動きベクトルとして、時間相関の予測ベクトルを求める際に用いられる動きベクトルを分割領域毎に保存するメモリに保存し、
    前記メモリより読み出された前記時間相関の予測ベクトルに対応する動きベクトルから予測される予測画像を用いて前記画像を符号化する
    画像処理方法。
JP2011165574A 2011-07-28 2011-07-28 画像処理装置および方法 Withdrawn JP2013030978A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011165574A JP2013030978A (ja) 2011-07-28 2011-07-28 画像処理装置および方法
PCT/JP2012/067718 WO2013015118A1 (ja) 2011-07-28 2012-07-11 画像処理装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011165574A JP2013030978A (ja) 2011-07-28 2011-07-28 画像処理装置および方法

Publications (1)

Publication Number Publication Date
JP2013030978A true JP2013030978A (ja) 2013-02-07

Family

ID=47600970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011165574A Withdrawn JP2013030978A (ja) 2011-07-28 2011-07-28 画像処理装置および方法

Country Status (2)

Country Link
JP (1) JP2013030978A (ja)
WO (1) WO2013015118A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118042117A (zh) * 2018-12-07 2024-05-14 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法、解码方法和计算机可读取介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0220988A (ja) * 1988-07-08 1990-01-24 Fujitsu Ltd 動画像符号化装置における動ベクトル検出方式
JP4000928B2 (ja) * 2002-07-04 2007-10-31 ソニー株式会社 動き補償装置

Also Published As

Publication number Publication date
WO2013015118A1 (ja) 2013-01-31

Similar Documents

Publication Publication Date Title
JP5741076B2 (ja) 画像処理装置及び画像処理方法
TWI703858B (zh) 圖像處理裝置、圖像處理方法、電腦程式及記錄媒體
JP5979405B2 (ja) 画像処理装置および方法
JP6274103B2 (ja) 画像処理装置および方法
US20230247217A1 (en) Image processing apparatus and method
JP2013150173A (ja) 画像処理装置および方法
JP5982734B2 (ja) 画像処理装置および方法
JP6316346B2 (ja) 画像処理装置、画像処理方法、プログラム及び記録媒体
WO2012176684A1 (ja) 画像処理装置および方法
JP2013012995A (ja) 画像処理装置および方法
JPWO2014050731A1 (ja) 画像処理装置および方法
JP2013098933A (ja) 画像処理装置および方法
JPWO2013108688A1 (ja) 画像処理装置および方法
JP2013012905A (ja) 画像処理装置および方法
WO2014103774A1 (ja) 画像処理装置および方法
WO2012173022A1 (ja) 画像処理装置および方法
WO2013015118A1 (ja) 画像処理装置および方法
JP2013121020A (ja) 画像処理装置および方法
WO2014141899A1 (ja) 画像処理装置および方法
JP6217997B2 (ja) 画像処理装置および方法
JP2018029347A (ja) 画像処理装置および方法
WO2013002105A1 (ja) 画像処理装置および方法
JP2019146225A (ja) 画像処理装置および方法
JP2013012996A (ja) 画像処理装置および方法
JP2016201831A (ja) 画像処理装置および方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141007