JP2012124591A - 画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラム - Google Patents
画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラム Download PDFInfo
- Publication number
- JP2012124591A JP2012124591A JP2010271769A JP2010271769A JP2012124591A JP 2012124591 A JP2012124591 A JP 2012124591A JP 2010271769 A JP2010271769 A JP 2010271769A JP 2010271769 A JP2010271769 A JP 2010271769A JP 2012124591 A JP2012124591 A JP 2012124591A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- vector information
- information
- prediction
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】動き補償予測符号化における符号化効率を向上させる。
【解決手段】予測動きベクトル情報設定部33は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報をそれぞれ設定する。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する。可逆符号化部16は、水平予測動きベクトル情報と対象ブロックの水平動きベクトル情報との差分と、垂直予測動きベクトル情報と対象ブロックの垂直動きベクトル情報との差分を可変長符号化して画像圧縮情報に含める。また、水平予測ブロック情報と垂直予測ブロック情報を画像圧縮情報に含める。
【選択図】 図8
【解決手段】予測動きベクトル情報設定部33は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報をそれぞれ設定する。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する。可逆符号化部16は、水平予測動きベクトル情報と対象ブロックの水平動きベクトル情報との差分と、垂直予測動きベクトル情報と対象ブロックの垂直動きベクトル情報との差分を可変長符号化して画像圧縮情報に含める。また、水平予測ブロック情報と垂直予測ブロック情報を画像圧縮情報に含める。
【選択図】 図8
Description
この発明は、画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラムに関する。詳しくは、動画像の符号化における効率を向上させる。
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を行う装置、例えば離散コサイン変換等の直交変換と動き補償により圧縮するMPEG等の方式に準拠した装置が、放送局や一般家庭において普及しつつある。
特に、MPEG2(ISO/IEC13818−2)は、汎用画像符号化方式として定義されており、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4〜8Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。また、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18〜22Mbpsの符号量を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
また、MPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われて、H.264およびMPEG−4 Part10(以下「H.264/AVC(Advanced Video Coding)」と記す)という名の下に国際標準となった。
H.264/AVCでは、図1の(A)に示すように、16×16画素で構成される1つのマクロブロックを、16×16、16×8、8×16または8×8のいずれかのブロックサイズに分割して、それぞれ独立した動きベクトル情報を持つことが可能である。さらに、8×8画素のサブマクロブロックに関しては、図1の(B)に示されるとおり、8×8、8×4、4×8、4×4のいずれかの動き補償ブロックサイズに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。なお、MPEG−2では、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行われる。
H.264/AVCにおいて、かかるような動き予測・補償処理が行われることで、膨大な動きベクトル情報が生成され、これをこのまま符号化することは、符号化効率の低下を招く。
かかる問題を解決する手法として、H.264/AVCにおいては、以下のようなメディアン予測を用いて、動きベクトル情報の情報量の低減が実現されている。
図2において、ブロックEはこれから符号化されようとしている対象ブロック、ブロックA〜Dは、既に符号化済みであって対象ブロックEに隣接するブロックである。
今、X=A,B,C,D,Eとして、ブロックXに対する動きベクトル情報を、mvXで表すものとする。
ブロックA,B,Cに関する動きベクトル情報を用い、対象ブロックEに対する予測動きベクトル情報pmvEを、メディアン予測により式(1)のように生成する。
pmvE =med(mvA,mvB,mvC) ・・・(1)
pmvE =med(mvA,mvB,mvC) ・・・(1)
隣接ブロックCに関する情報が、画枠の端である等の理由で得られない場合は、隣接ブロックDに関する情報で代用する。
画像圧縮情報に、対象ブロックEに対する動きベクトル情報として符号化されるデータmvdEは、pmvEを用いて式(2)のように生成する。
mvdE =mvE−pmvE ・・・(2)
なお、実際の処理は、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
mvdE =mvE−pmvE ・・・(2)
なお、実際の処理は、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
また、H.264/AVCにおいては、複数参照フレーム(Multi-Reference Frame)方式が規定されている。図3を用いて、H.264/AVCにおいて規定されている複数参照フレーム方式について説明する。
MPEG2等においては、Pピクチャの場合、フレームメモリに格納された参照フレーム1枚のみを参照して、動き予測・補償処理を行っていた。しかし、H.264/AVCでは、図3に示したように、複数の参照フレームをメモリに格納して、ブロック毎に、異なるメモリを参照することが可能となっている。
ところで、Bピクチャにおける動きベクトル情報における情報量は膨大であるが、H.264/AVCにおいては、ダイレクトモード(Direct Mode)と呼ばれるモードが用意されている。ダイレクトモードにおいて、動きベクトル情報は、画像圧縮情報中には格納されず、復号化装置において、周辺またはアンカーブロック(Co-Located Block)の動きベクトル情報から、当該ブロックの動きベクトル情報を抽出する。なお、アンカーブロックは、参照画像において、xy座標が対象ブロックと同じであるブロックである。
ダイレクトモードは、空間ダイレクトモード(Spatial Direct Mode)と時間ダイレクトモード(Temporal Direct Mode)の2種類があり、どちらを用いるかは、スライス毎に切り替えることが可能である。
空間ダイレクトモードにおいては、式(3)に示すように、メディアン予測で生成された動きベクトル情報pmvEを、当該ブロックに適用する動きベクトル情報mvEとする。
mvE =pmvE ・・・(3)
mvE =pmvE ・・・(3)
次に図4を用いて、時間ダイレクトモード(Temporal Direct Mode)を説明する。図4において、L0参照ピクチャにおける、当該ブロックと、同じ空間上のアドレスにあるブロックを、アンカーブロックとし、アンカーブロックにおける動きベクトル情報を、動き「mvcol」とする。また、当該ピクチャとL0参照ピクチャの時間軸上の距離を「TDB」とし、L0参照ピクチャとL1参照ピクチャの時間軸上の距離を「TDD」とする。この場合、当該ピクチャにおける、L0動きベクトル情報mvL0およびL1動きベクトル情報mvL1を、式(4)(5)のように算出する。
mvL0 =(TDB/TDD)mvcol ・・・(4)
mvL1 =((TDD−TDB)/TDD)mvcol ・・・(5)
なお、画像圧縮情報においては、時間軸上の距離を表す情報が存在しないため、式(4)(5)では、POC(Picture Order Count)を用いて演算を行うものとする。
mvL0 =(TDB/TDD)mvcol ・・・(4)
mvL1 =((TDD−TDB)/TDD)mvcol ・・・(5)
なお、画像圧縮情報においては、時間軸上の距離を表す情報が存在しないため、式(4)(5)では、POC(Picture Order Count)を用いて演算を行うものとする。
また、AVC画像圧縮情報において、ダイレクトモードは、16×16画素マクロブロック単位、または8×8画素サブマクロブロック単位で定義することが可能である。
ところで、図2に示されたような、メディアン予測を用いた動きベクトル情報の符号化を改善する非特許文献1の提案がなされている。非特許文献1では、メディアン予測で求められる空間予測動きベクトル情報に加え、時間予測動きベクトル情報および時空間予測動きベクトル情報のどれかを適応的に用いることが可能とされている。
すなわち、図5において、動きベクトル情報mvcolを、当該対象ブロックに対するアンカーブロックに対する動きベクトル情報とする。また、動きベクトル情報mvtk(k=0〜8)をその周辺ブロックの動きベクトル情報とする。
時間予測動きベクトル情報mvtmは、例えば式(6)を用いて5つの動きベクトル情報から生成する。また、時間予測動きベクトル情報mvtmは、式(7)を用いて9つの動きベクトルから生成してもよい。
mvtm5 =med(mvcol,mvt0,・・・mvt3) ・・・(6)
mvtm9 =med(mvcol,mvt0,・・・mvt7) ・・・(7)
mvtm5 =med(mvcol,mvt0,・・・mvt3) ・・・(6)
mvtm9 =med(mvcol,mvt0,・・・mvt7) ・・・(7)
また、時空間予測動きベクトル情報mvsptは、式(8)を用いて5つの動きベクトル情報から生成する。
mvspt =med(mvcol,mvcol,mvA,mvB,mvC)・・・(8)
mvspt =med(mvcol,mvcol,mvA,mvB,mvC)・・・(8)
画像情報の符号化を行う画像処理装置においては、それぞれのブロックに関して、それぞれの予測動きベクトル情報を用いた場合のコスト関数値が算出され、最適な予測動きベクトル情報の選択が行われる。なお、画像圧縮情報においては、それぞれのブロックに対し、どの予測動きベクトル情報が用いられたかを識別可能とする例えばフラグが伝送される。
また、UHD(Ultra High Definition:4000画素×2000画素)といった大きな画枠では、MPEG2やH.264/AVCで規定されている16画素×16画像のマクロブロックサイズは最適でない場合がある。例えば、大きな画枠では、マクロブロックサイズを大きくすることで符号化効率を高めることが可能となる場合がある。そこで、次世代符号化方式であるHEVC(High Efficiency Video Coding)では、非特許文献2に示すように、コーディングユニットCU(Coding Unit)が規定されている。また、非特許文献2では、出力となる画像圧縮情報のSPS(Sequence Parameter Set)において、コーディングユニットCUの最大サイズ(LCU = Largest Coding Unit)と最小サイズ(SCU = Smallest Coding Unit)が規定される。さらに、各LCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのコーディングユニットCUに分割することが可能とされている。
図6はコーディングユニットCUの階層構造を例示している。なお、図6では、最大サイズが128画素×128画素、階層の深さ(Depth)が「5」である場合を示している。例えば、階層の深さが「0」である場合、2N×2N(N=64画素)のブロックがコーディングユニットCU0とされる。また、split flag=1とすると、コーディングユニットCU0は4つの独立したN×Nのブロックに分割されて、N×Nのブロックが1つ下の階層のブロックとされる。すなわち、階層の深さが「1」とされて、2N×2N(N=32画素)のブロックがコーディングユニットCU1とされる。同様に、split flag=1とされると、4つの独立したブロックに分割される。さらに、最も深い階層である深さ「4」の場合、2N×2N(N=4画素)のブロックがコーディングユニットCU4とされて、8画素×8画素がコーディングユニットCUの最小サイズとなる。また、HEVCでは、コーディングユニットを分割して予測用の基本単位である予測ユニット(PU:Prediction Unit)も定義されている。
"Competition-Based Scheme for Motion Vector Selection and Coding" (VCEG-AC06,ITU - Telecommunications Standardization Sector. STUDY GROUP 16 Question 6. Video Coding Experts Group 29th Meeting: Klagenfurt Austria, July, 2006)
"Test Model under Consideration"(JCTVC-B205,2nd JCT-VC Meeting, Geneva, CH, July 2010)
ところで、非特許文献1では、動きベクトル成分の、水平方向と垂直方向に対して、独立に予測情報を持つことができないため、十分な符号化効率の向上を実現できないという問題点を有している。例えば、水平方向に3種類、垂直方向に3種類の候補がある場合、水平方向と垂直方向の候補の組み合わせは9通り(3×3)であることから9種類のフラグを用意して、符号化処理を行う手法も考えられる。しかし、組み合わせが多いとフラグの種類が多くなり、フラグを示す符号量が増大するという問題点を有している。
そこで、この発明では、符号化効率を向上できる画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラムを提供することを目的とする。
この発明の第1の側面は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する予測動きベクトル情報設定部を有する画像符号化装置にある。
この発明は、入力画像データを複数の画素ブロックに分割し、各ブロックについて動きベクトル情報を検出して動き補償予測符号化を行う画像符号化装置において、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が行われる。例えば、コスト関数値が最小となる最適予測モードで動き探索を行うことにより得られた動きベクトル情報の水平成分に対して、最も符号化効率が高くなる隣接する符号化済みブロックの動きベクトル情報が選択されて水平予測動きベクトル情報として設定される。また、最適予測モードで動き探索を行うことにより得られた動きベクトル情報の垂直成分に対して、最も符号化効率が高くなる隣接する符号化済みブロックの動きベクトル情報が選択されて垂直予測動きベクトル情報として設定される。この水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報の圧縮処理が行われる。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報が生成されて、画像圧縮情報に水平予測ブロック情報と垂直予測ブロック情報が含められる。
また、対象ブロックの動きベクトル情報の水平成分と垂直成分に対して、対象ブロックと隣接する符号化済みブロックから選択した動きベクトル情報を水平垂直予測動きベクトル情報とする設定、または水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が、ピクチャ毎またはスライス毎に切り替え可能とされる。例えば、Pピクチャに対して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が行われて、Bピクチャに対して水平垂直予測動きベクトル情報の設定が行われる。さらに、水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報が画像圧縮情報に設けられる。
また、例えば、水平予測ブロック情報と垂直予測ブロック情報に対してコードがそれぞれ割り当てられて、水平予測ブロック情報と垂直予測ブロック情報に割り当てられたコードが画像圧縮情報に含められる。さらに、撮像装置で生成された画像データに基づいて検出された動きベクトル情報の符号化処理を行う場合、撮像装置の動き検出結果に基づいて、コード割り当てが行われる。
この発明の第2の側面は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する工程を設けた動きベクトル情報符号化方法にある。
この発明の第3の側面は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する手順をコンピュータで実行させるプログラムにある。
この発明の第4の側面は、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する可逆復号化部と、前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する予測動きベクトル情報設定部と、前記予測動きベクトル情報設定部で設定された前記水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する動きベクトル情報生成部とを有する画像復号化装置にある。
この発明は、入力画像データを複数の画素ブロックに分割し、各ブロックについて動きベクトル情報を検出して動き補償予測符号化を行うことにより生成された画像圧縮情報の復号化処理を行う画像復号化装置において、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報が画像圧縮情報から取得される。この水平予測ブロック情報で示されたブロックの動きベクトル情報が水平予測動きベクトル情報として設定されて、垂直予測ブロック情報で示されたブロックの動きベクトル情報が垂直予測動きベクトル情報として設定される。この設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて対象ブロックの動きベクトル情報が生成される。
また、水平予測動きベクトル情報と垂直予測動きベクトル情報、または対象ブロックの動きベクトル情報の水平成分と垂直成分に対して隣接する復号化済みブロックから選択した動きベクトル情報を示す水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報が画像圧縮情報から取得される。この識別情報に基づき、水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報が設定されて対象ブロックの動きベクトル情報が生成される。
この発明の第5の側面は、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する工程と、前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する工程と、前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する工程とを設けた動きベクトル情報復号化方法にある。
この発明の第6の側面は、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する手順と、前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する手順と、前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する手順とをコンピュータで実行させるプログラムにある。
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
この発明によれば、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報が選択されて水平予測動きベクトル情報と垂直予測動きベクトル情報がそれぞれ設定されて、設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報の圧縮処理が行われる。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報が生成される。このため、例えば水平予測動きベクトル情報と垂直予測動きベクトル情報の候補の組み合わせ分のフラグよりも少ないデータ量である水平予測ブロック情報と垂直予測ブロック情報で水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が可能となり、符号化効率を向上させることができる。
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.画像符号化装置の構成
2.画像符号化装置の動作
3.画像復号化装置の構成
4.画像復号化装置の動作
5.予測動きベクトル情報設定部の他の構成
6.ソフトウェア処理の場合
7.電子機器に適用した場合
1.画像符号化装置の構成
2.画像符号化装置の動作
3.画像復号化装置の構成
4.画像復号化装置の動作
5.予測動きベクトル情報設定部の他の構成
6.ソフトウェア処理の場合
7.電子機器に適用した場合
<1.画像符号化装置の構成>
図7は画像符号化装置の構成を示している。画像符号化装置10は、アナログ/ディジタル変換部(A/D変換部)11、画面並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。さらに、画像符号化装置10は、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ24、フレームメモリ25、イントラ予測部31、動き予測・補償部32、予測動きベクトル情報設定部33、予測画像・最適モード選択部35を備えている。
図7は画像符号化装置の構成を示している。画像符号化装置10は、アナログ/ディジタル変換部(A/D変換部)11、画面並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。さらに、画像符号化装置10は、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ24、フレームメモリ25、イントラ予測部31、動き予測・補償部32、予測動きベクトル情報設定部33、予測画像・最適モード選択部35を備えている。
A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。
画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理にかかわるGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部13とイントラ予測部31と動き予測・補償部32に出力する。
減算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部35で選択された予測画像データが供給される。減算部13は、画面並べ替えバッファ12から出力された画像データと予測画像・最適モード選択部35から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部14に出力する。
直交変換部14は、減算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことで得られた変換係数データを量子化部15に出力する。
量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18からレート制御信号が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づき量子化パラメータ(量子化スケール)を切り替えて、量子化データのビットレートを変化させる。
可逆符号化部16には、量子化部15から出力された量子化データと、後述するイントラ予測部31から予測モード情報や動き予測・補償部32から予測モード情報等が供給される。また、予測画像・最適モード選択部35から最適モードがイントラ予測であるかインター予測であるかを示す情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測モードや予測ユニットのブロックサイズ情報等が含まれる。可逆符号化部16は、量子化データに対して例えば可変長符号化または算術符号化等で可逆符号化処理を行い、画像圧縮情報を生成して蓄積バッファ17に出力する。また、可逆符号化部16は、最適モードがイントラ予測である場合、イントラ予測部31から供給された予測モード情報の可逆符号化を行う。また、可逆符号化部16は、最適モードがインター予測である場合、動き予測・補償部32から供給された予測モード情報や予測ブロック情報、差分動きベクトル情報等の可逆符号化を行う。さらに、可逆符号化部16は、可逆符号化が行われた情報を画像圧縮情報に含める。例えば可逆符号化部16は、画像圧縮情報である符号化ストリームのヘッダ情報に付加する。
蓄積バッファ17は、可逆符号化部16からの画像圧縮情報を蓄積する。また、蓄積バッファ17は、蓄積した画像圧縮情報を伝送路に応じた伝送速度で出力する。
レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部15に出力する。レート制御部18は、例えば蓄積バッファ17から空き容量を示す情報を取得する。レート制御部18は空き容量が少なくなっている場合、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部18は蓄積バッファ17の空き容量が十分大きい場合、レート制御信号によって量子化データのビットレートを高くする。
逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行い、得られたデータを加算部23に出力する。
加算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部35から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ24とフレームメモリ25に出力する。なお、復号画像データは参照画像の画像データとして用いられる。
デブロッキングフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ24は、加算部23から供給された復号画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の復号画像データをフレームメモリ25に出力する。
フレームメモリ25は、加算部23から供給されたフィルタ処理前の復号画像データと、デブロッキングフィルタ24から供給されたフィルタ処理後の復号画像データを保持する。フレームメモリ25に保持された復号画像データは、セレクタ26を介してイントラ予測部31または動き予測・補償部32に参照画像データとして供給される。
セレクタ26は、イントラ予測部31でイントラ予測を行う場合、フレームメモリ25に保持されているデブロッキングフィルタ処理前の復号画像データを参照画像データとしてイントラ予測部31に供給する。また、セレクタ26は、動き予測・補償部32でインター予測を行う場合、フレームメモリ25に保持されているデブロッキングフィルタ処理後の復号画像データを参照画像データとして動き予測・補償部32に供給する。
イントラ予測部31は、画面並べ替えバッファ12から供給された入力画像データとフレームメモリ25から供給された参照画像データを用いて、候補となる全てのイントラ予測モードで対象ブロックの予測を行い、最適イントラ予測モードを決定する。イントラ予測部31は、例えば各イントラ予測モードでコスト関数値を算出して、算出したコスト関数値に基づき符号化効率が最良となるイントラ予測モードを最適イントラ予測モードとする。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部35に出力する。さらに、イントラ予測部31は、最適イントラ予測モードを示す予測モード情報を可逆符号化部16に出力する。
動き予測・補償部32は、画面並べ替えバッファ12から供給された入力画像データとフレームメモリ25から供給された参照画像データを用いて、候補となる全てのインター予測モードで対象ブロックの予測を行い、最適インター予測モードを決定する。動き予測・補償部32は、例えば各インター予測モードでコスト関数値を算出して、算出したコスト関数値に基づき符号化効率が最良となるインター予測モードを最適インター予測モードとする。また、動き予測・補償部32は、予測動きベクトル情報設定部33で生成された予測ブロック情報と差分動きベクトル情報を用いてコスト関数値の算出を行う。さらに、動き予測・補償部32は、最適インター予測モードで生成された予測画像データと最適インター予測モードでのコスト関数値を予測画像・最適モード選択部35に出力する。また、動き予測・補償部32は、最適インター予測モードに関する予測モード情報や予測ブロック情報および差分動きベクトル情報等を可逆符号化部16に出力する。
予測動きベクトル情報設定部33は、対象ブロックについて、符号化済みの隣接ブロックの水平動きベクトル情報を水平予測動きベクトル情報の候補とする。また、予測動きベクトル情報設定部33は、候補の水平予測動きベクトル情報と対象ブロックの水平動きベクトル情報との差を示す差分動きベクトル情報を候補毎に生成する。さらに、予測動きベクトル情報設定部33は、候補の中から差分動きベクトル情報の符号化効率が最も高い水平動きベクトル情報を水平予測動きベクトル情報に設定する。予測動きベクトル情報設定部33は、設定した水平予測動きベクトル情報がいずれの隣接ブロックの動きベクトル情報であるかを示す水平予測ブロック情報を生成する。例えば、水平予測ブロック情報としてフラグ(以下「水平予測ブロックフラグ」という)を生成する。
予測動きベクトル情報設定部33は、対象ブロックについて、符号化済みの隣接ブロックの垂直動きベクトル情報を垂直予測動きベクトル情報の候補とする。また、予測動きベクトル情報設定部33は、候補の垂直予測動きベクトル情報と対象ブロックの垂直動きベクトル情報との差を示す差分動きベクトル情報を候補毎に生成する。さらに、予測動きベクトル情報設定部33は、候補の中から差分動きベクトル情報の符号化効率が最も高い垂直動きベクトル情報を垂直予測動きベクトル情報に設定する。予測動きベクトル情報設定部33は、設定した垂直予測動きベクトル情報がいずれの隣接ブロックの動きベクトル情報であるかを示す垂直予測ブロック情報を生成する。例えば、垂直予測ブロック情報としてフラグ(以下「垂直予測ブロックフラグ」という)を生成する。
さらに、予測動きベクトル情報設定部33は、水平成分と垂直成分について、それぞれ予測ブロックフラグで示されるブロックの動きベクトル情報を予測動きベクトル情報として用いる。また、予測動きベクトル情報設定部33は、対象ブロックの動きベクトル情報と予測動きベクトル情報の差分である差分動きベクトル情報を、水平成分と垂直成分のそれぞれについて算出して動き予測・補償部32に出力する。
図8は、動き予測・補償部32と予測動きベクトル情報設定部33の構成を示している。動き予測・補償部32は、動き探索部321、コスト関数値算出部322、モード判定部323、動き補償処理部324、動きベクトル情報バッファ325を有している。
動き探索部321には、画面並べ替えバッファ12から供給された並べ替え後の入力画像データと、フレームメモリ25から読み出された参照画像データが供給される。動き探索部321は、候補となる全てのインター予測モードで動き探索を行い、動きベクトルを検出する。動き探索部321は、検出した動きベクトルを示す動きベクトル情報を、動きベクトルを検出した場合の入力画像データと参照画像データと共にコスト関数値算出部322に出力する。
コスト関数値算出部322には、動き探索部321から動きベクトル情報と入力画像データと参照画像データおよび予測動きベクトル情報設定部33から予測ブロック情報と差分動きベクトル情報が供給されている。コスト関数値算出部322は、動きベクトル情報と入力画像データと参照画像データおよび予測ブロックフラグと差分動きベクトル情報を用いて、候補となる全てのインター予測モードでコスト関数値を算出する。
コスト関数値の算出は、例えばH.264/AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているように、High Complexityモードか、Low Complexityモードのいずれかの手法に基づいて行う。
すなわち、High Complexityモードでは、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、次の式(9)で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=D+λ・R ・・・(9)
Cost(Mode∈Ω)=D+λ・R ・・・(9)
Ωは、当該ブロックの画像を符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー(歪み)を示している。Rは、直交変換係数,予測モード情報,予測ブロック情報,差分動きベクトル情報等を含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
つまり、High Complexityモードでの符号化を行うには、上記パラメータDおよびRを算出するため、候補となる全ての予測モードで、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
一方、Low Complexityモードでは、候補となる全ての予測モードで、予測画像の生成、および予測ブロック情報や差分動きベクトル情報および予測モード情報などを含むヘッダビットの生成等を行い、次の式(10)で表されるコスト関数値を算出する。
Cost(Mode∈Ω)=D+QP2Quant(QP)・Header_Bit ・・・(10)
Cost(Mode∈Ω)=D+QP2Quant(QP)・Header_Bit ・・・(10)
Ωは、当該ブロックの画像を符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー(歪み)を示している。Header_Bitは、予測モードに対するヘッダビット、QP2Quantは、量子化パラメータQPの関数として与えられる関数である。
すなわち、Low Complexityモードにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexityモードより低い演算量での実現が可能である。
コスト関数値算出部322は、算出したコスト関数値をモード判定部323に出力する。
モード判定部323は、コスト関数値が最小となるモードを最適インター予測モードに決定する。また、モード判定部323は、決定した最適インター予測モードを示す最適インター予測モード情報を、当該最適インター予測モードにかかわる動きベクトル情報と予測ブロックフラグと差分動きベクトル情報等とともに、動き補償処理部324に出力する。なお、予測モード情報にはブロックサイズ情報等が含まれる。
動き補償処理部324は、最適インター予測モード情報と動きベクトル情報に基づき、フレームメモリ25から読み出された参照画像データに対して動き補償を行い、予測画像データを生成して予測画像・最適モード選択部35に出力する。また、動き補償処理部324は、最適インター予測の予測モード情報と当該モードにおける差分動きベクトル情報等を、可逆符号化部16に出力する。
動きベクトル情報バッファ325は、最適インター予測モードにかかわる動きベクトル情報を保持する。また、動きベクトル情報バッファ325は、符号化を行う対象ブロックに対して符号化済みの隣接ブロックの動きベクトル情報を予測動きベクトル情報設定部33に出力する。
なお、動き予測・補償部32では、例えばH.264/AVCにおいて規定されている、1/4画素精度の動き予測・補償処理を行う。図9は、1/4画素精度の動き予測・補償処理を説明するための図である。図9において位置「A」は、フレームメモリ25に格納されている整数精度画素の位置、位置「b」,「c」,「d」は1/2画素精度の位置、位置「e1」,「e2」,「e3」は1/4画素精度の位置である。
位置「b」「d」における画素値は、6タップのFIRフィルタを用いて、式(12)(13)のように生成される。
F=A−2−5・A−1+20・A0+20・A1−5・A2+A3 ・・・(12)
b,d=Clip1((F+16)>>5) ・・・(13)
F=A−2−5・A−1+20・A0+20・A1−5・A2+A3 ・・・(12)
b,d=Clip1((F+16)>>5) ・・・(13)
位置「c」における画素値は、6タップのFIRフィルタを用いて、式(14)または式(15)のいずれかと式(16)のように生成される。
F=b−2−5・b−1+20・b0+20・b1−5・b2+b3・・・(14)
F=d−2−5・d−1+20・d0+20・d1−5・d2+d3・・・(15)
c=Clip1((F+512)>>10) ・・・(16)
なお、Clip1処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に一度のみ行う。
F=b−2−5・b−1+20・b0+20・b1−5・b2+b3・・・(14)
F=d−2−5・d−1+20・d0+20・d1−5・d2+d3・・・(15)
c=Clip1((F+512)>>10) ・・・(16)
なお、Clip1処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に一度のみ行う。
位置「e1」〜「e3」における画素値は、線形内挿により式(17)〜(19)のように生成される。
e1=(A+b+1)>>1 ・・・(17)
e2=(b+d+1)>>1 ・・・(18)
e3=(b+c+1)>>1 ・・・(19)
このようにして、動き予測・補償部32は、1/4画素精度の動き予測・補償処理を行う。
e1=(A+b+1)>>1 ・・・(17)
e2=(b+d+1)>>1 ・・・(18)
e3=(b+c+1)>>1 ・・・(19)
このようにして、動き予測・補償部32は、1/4画素精度の動き予測・補償処理を行う。
予測動きベクトル情報設定部33は、水平予測動きベクトル情報生成部331と垂直予測動きベクトル情報生成部332と識別情報生成部334を有している。
水平予測動きベクトル情報生成部331は、対象ブロックの動きベクトル情報の水平成分について、符号化処理で最も符号化効率が高くなる水平予測動きベクトル情報を設定する。水平予測動きベクトル情報生成部331は、動き予測・補償部32から供給された符号化済みの隣接ブロックの水平動きベクトル情報を水平予測動きベクトル情報の候補とする。また、水平予測動きベクトル情報生成部331は、各候補の水平動きベクトル情報と、動き予測・補償部32から供給された対象ブロックの水平動きベクトル情報との差分を示す水平差分動きベクトル情報を生成する。さらに、水平予測動きベクトル情報生成部331は、水平差分動きベクトル情報の符号量が最小となる候補の水平動きベクトル情報を水平予測動きベクトル情報とする。水平予測動きベクトル情報生成部331は、水平予測動きベクトル情報と水平予測動きベクトル情報を用いた場合の水平差分動きベクトル情報を水平予測動きベクトル情報生成結果として識別情報生成部334に出力する。
垂直予測動きベクトル情報生成部332は、対象ブロックの動きベクトル情報の垂直成分について、符号化処理で最も符号化効率が高くなる垂直予測動きベクトル情報を設定する。垂直予測動きベクトル情報生成部332は、動き予測・補償部32から供給された符号化済みの隣接ブロックの垂直動きベクトル情報を垂直予測動きベクトル情報の候補とする。また、垂直予測動きベクトル情報生成部332は、各候補の垂直動きベクトル情報と、動き予測・補償部32から供給された対象ブロックの垂直動きベクトル情報との差分を示す垂直差分動きベクトル情報を生成する。さらに、水平予測動きベクトル情報生成部331は、垂直差分動きベクトル情報の符号量が最小となる候補の垂直動きベクトル情報を垂直予測動きベクトル情報とする。垂直予測動きベクトル情報生成部332は、垂直予測動きベクトル情報と垂直予測動きベクトル情報を用いた場合の垂直差分動きベクトル情報を垂直予測動きベクトル情報生成結果として識別情報生成部334に出力する。
識別情報生成部334は、水平予測動きベクトル情報生成結果に基づき、動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報、例えば水平予測ブロックフラグを生成する。識別情報生成部334は、生成した水平予測ブロックフラグを水平差分動きベクトル情報と共に、動き予測・補償部32のコスト関数値算出部322に出力する。また、識別情報生成部334は、垂直予測動きベクトル情報生成結果に基づき、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報、例えば垂直予測ブロックフラグを生成する。識別情報生成部334は、生成した垂直予測ブロックフラグを垂直差分動きベクトル情報と共に、動き予測・補償部32のコスト関数値算出部322に出力する。
なお、予測動きベクトル情報設定部33は、対象ブロックの水平(垂直)動きベクトル情報と各候補の動きベクトル情報の差分を示す差分動きベクトル情報を、候補のブロックを示す情報と共にコスト関数値算出部322に供給してもよい。この場合、コスト関数値算出部322で算出されたコスト関数値が最小となる候補の水平(垂直)動きベクトル情報を水平(垂直)予測動きベクトル情報に設定する。また、コスト関数値が最小となる候補のブロックを示す識別情報をインター予測で用いるようにする。
図7に戻り、予測画像・最適モード選択部35は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32から供給されたコスト関数値を比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部35は、最適モードで生成した予測画像データを減算部13と加算部23に出力する。さらに、予測画像・最適モード選択部35は、最適モードがイントラ予測モードであるかインター予測モードであるかを示す情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部35は、スライス単位でイントラ予測またはインター予測の切り替えを行う。
<2.画像符号化装置の動作>
図10は画像符号化装置の動作を示すフローチャートである。ステップST11において、A/D変換部11は入力された画像信号をA/D変換する。
図10は画像符号化装置の動作を示すフローチャートである。ステップST11において、A/D変換部11は入力された画像信号をA/D変換する。
ステップST12において画面並べ替えバッファ12は、画像並べ替えを行う。画面並べ替えバッファ12は、A/D変換部11より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップST13において減算部13は、予測誤差データの生成を行う。減算部13は、ステップST12で並び替えられた画像の画像データと予測画像・最適モード選択部35で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップST14において直交変換部14は、直交変換処理を行う。直交変換部14は、減算部13から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
ステップST15において量子化部15は、量子化処理を行う。量子化部15は、変換係数データを量子化する。量子化に際しては、後述するステップST25の処理で説明されるように、レート制御が行われる。
ステップST16において逆量子化部21は、逆量子化処理を行う。逆量子化部21は、量子化部15で量子化された変換係数データを量子化部15の特性に対応する特性で逆量子化する。
ステップST17において逆直交変換部22は、逆直交変換処理を行う。逆直交変換部22は、逆量子化部21で逆量子化された変換係数データを直交変換部14の特性に対応する特性で逆直交変換する。
ステップST18において加算部23は、参照画像データの生成を行う。加算部23は、予測画像・最適モード選択部35から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、参照画像データ(復号画像データ)を生成する。
ステップST19においてデブロッキングフィルタ24は、フィルタ処理を行う。デブロッキングフィルタ24は、加算部23より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
ステップST20においてフレームメモリ25は、参照画像データを記憶する。フレームメモリ25はフィルタ処理後の参照画像データ(復号画像データ)を記憶する。
ステップST21においてイントラ予測部31と動き予測・補償部32は、それぞれ予測処理を行う。すなわち、イントラ予測部31は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部32は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図11を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数値および予測モード情報が予測画像・最適モード選択部35に供給される。
ステップST22において予測画像・最適モード選択部35は、予測画像データの選択を行う。予測画像・最適モード選択部35は、イントラ予測部31および動き予測・補償部32より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部35は、決定した最適モードの予測画像データを選択して、減算部13と加算部23に出力する。この予測画像データが、上述したように、ステップST13,ST18の演算に利用される。
ステップST23において可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、量子化部15より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。また、可逆符号化部16は、ステップST22で選択された予測画像データに対応する予測モード情報等の可逆符号化を行い、量子化データを可逆符号化して生成された画像圧縮情報に、予測モード情報等の可逆符号化データが含められる。
ステップST24において蓄積バッファ17は、蓄積処理を行う。蓄積バッファ17は、可逆符号化部16から出力される画像圧縮情報を蓄積する。この蓄積バッファ17に蓄積された画像圧縮情報は、適宜読み出されて伝送路を介して復号側に伝送される。
ステップST25においてレート制御部18は、レート制御を行う。レート制御部18は、蓄積バッファ17で画像圧縮情報を蓄積する場合、オーバーフローまたはアンダーフローが蓄積バッファ17で発生しないように、量子化部15の量子化動作のレートを制御する。
次に、図11のフローチャートを参照して、図10のステップST21における予測処理を説明する。
ステップST31において、イントラ予測部31はイントラ予測処理を行う。イントラ予測部31は対象ブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される復号画像の画像データは、デブロッキングフィルタ24でブロッキングフィルタ処理が行われる前の復号画像データが用いられる。このイントラ予測処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最良となる1つのイントラ予測モードが選択される。
ステップST32において、動き予測・補償部32はインター予測処理を行う。動き予測・補償部32は、フレームメモリ25に記憶されているデブロッキングフィルタ処理後の復号画像データを用いて、候補となるインター予測モードのインター予測処理を行う。このインター予測処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最良となる1つのインター予測モードが選択される。
次に、図12のフローチャートを参照して、図11におけるステップST31のイントラ予測処理について説明する。
ステップST41でイントラ予測部31は、各予測モードのイントラ予測を行う。イントラ予測部31は、ブロッキングフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
ステップST42でイントラ予測部31は、各予測モードでのコスト関数値を算出する。コスト関数値の算出は、上述のように例えばH.264/AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているように、High Complexityモードか、Low Complexityモードのいずれかの手法に基づいて行う。すなわち、High Complexityモードでは、ステップST42の処理として、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、式(9)で表されるコスト関数値を各予測モードに対して算出する。Low Complexityモードでは、ステップST42の処理として、候補となる全ての予測モードに対して、予測画像の生成と動きベクトル情報や予測モード情報などのヘッダビットまでを生成して、式(10)で表されるコスト関数値を各予測モードに対して算出する。
ステップST43でイントラ予測部31は、最適イントラ予測モードを決定する。イントラ予測部31は、ステップST42において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
次に、図13のフローチャートを参照して、図11におけるステップST32のインター予測処理について説明する。
ステップST51で動き予測・補償部32は、動き予測処理を行う。動き予測・補償部32は、予測モード毎に動き予測を行って動きベクトルを検出してステップST52に進む。
ステップST52で予測動きベクトル情報設定部33は、予測動きベクトル情報設定処理を行う。予測動きベクトル情報設定部33は、対象ブロックに対して、予測ブロックフラグと差分動きベクトル情報を生成する。
図14は、予測動きベクトル情報設定処理を示すフローチャートである。ステップST61で予測動きベクトル情報設定部33は、水平予測動きベクトル情報の候補を選択する。予測動きベクトル情報設定部33は、対象ブロックに対して隣接している符号化済みのブロックの水平方向動きベクトル情報を、水平予測動きベクトル情報の候補として選択してステップST62に進む。
ステップST62で予測動きベクトル情報設定部33は、水平予測動きベクトル情報設定処理を行う。予測動きベクトル情報設定部33は、例えは式(20)に基づき、水平差分動きベクトル情報の符号化量が最小となるi番目の水平動きベクトル情報を検出する。
argimin(R(mvx−pmvx(i))) ・・・(20)
argimin(R(mvx−pmvx(i))) ・・・(20)
なお、「mvx」は対象ブロックの水平動きベクトル情報、「pmvx(i)」は水平予測動きベクトル情報のi番目の候補を示している。また、「R(mvx−pmvx(i))」は、水平予測動きベクトルのi番目の候補と対象ブロックの水平動きベクトル情報との差分を示す水平差分動きベクトル情報を符号化したときの符号量を示している。
予測動きベクトル情報設定部33は、式(20)に基づいて検出した符号化量が最小となる水平動きベクトル情報の隣接ブロックを示す水平予測ブロックフラグを生成する。また、予測動きベクトル情報設定部33は、当該水平動きベクトル情報を用いたときの水平差分動きベクトル情報を生成してステップST63に進む。
ステップST63で予測動きベクトル情報設定部33は、垂直予測動きベクトル情報の候補を選択する。予測動きベクトル情報設定部33は、対象ブロックに対して隣接している符号化済みのブロックの垂直方向動きベクトル情報を、垂直予測動きベクトル情報の候補として選択してステップST64に進む。
ステップST64で予測動きベクトル情報設定部33は、垂直予測動きベクトル情報設定処理を行う。予測動きベクトル情報設定部33は、例えは式(21)に基づき、垂直差報の符号化量が最小となるj番目の垂直動きベクトル情報を検出する。
argjmin(R(mvy−pmvy(j))) ・・・(21)
argjmin(R(mvy−pmvy(j))) ・・・(21)
なお、「mvy」は対象ブロックの垂直動きベクトル情報、「pmvy(j)」は垂直予測動きベクトル情報のj番目の候補を示している。また、「R(mvy−pmvy(j))」は、垂直予測動きベクトルのj番目の候補と対象ブロックの垂直動きベクトル情報との差分を示す垂直差分動きベクトル情報を符号化したときの符号量を示している。
予測動きベクトル情報設定部33は、式(21)に基づいて検出した符号化量が最小となる垂直動きベクトル情報の隣接ブロックを示す垂直予測ブロックフラグを生成する。また、予測動きベクトル情報設定部33は、当該垂直動きベクトル情報を用いたときの垂直差分動きベクトル情報を生成して予測動きベクトル情報設定処理を終了して、図13のステップST53に戻る。
ステップST53で動き予測・補償部32は、各予測モードでのコスト関数値を算出する。動き予測・補償部32は、上述した式(9)または式(10)を用いてコスト関数値の算出を行う。また、動き予測・補償部32は、差分動きベクトル情報を用いて発生符号量を算出する。なお、インター予測モードに対するコスト関数値の算出には、H.264/AVC方式において定められているスキップドマクロブロックやダイレクトモードのコスト関数値の評価も含まれる。
ステップST54で動き予測・補償部32は、最適インター予測モードを決定する。動き予測・補償部32は、ステップST54において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つの予測モードを選択して最適インター予測モードに決定する。
このように、画像符号化装置10は、対象ブロックに対して水平予測動きベクトルと垂直予測動きベクトルを個々に設定する。また、画像符号化装置10は、対象ブロックの水平動きベクトル情報と水平予測動きベクトル情報との差分である水平差分動きベクトル情報を可変長符号化する。また、画像符号化装置10は、対象ブロックの垂直動きベクトルと垂直予測動きベクトル情報との差分である垂直差分動きベクトル情報を可変長符号化する。水平予測動きベクトル情報と垂直予測動きベクトル情報は、隣接する符号化済みブロックのいずれのブロックであるか予測ブロックフラグによって示される。
したがって、式(22)に示す水平垂直予測動きベクトル情報を用いる場合に比べて、予測ブロックフラグのデータ量を少なくできる。なお、式(22)に示すように、水平垂直予測動きベクトル情報は、水平差分動きベクトル情報の符号量と垂直差分動きベクトル情報の符号量を加算した符号量が最小となる隣接ブロックの動きベクトル情報である。
argkmin(R(mvx−pmvx(k))
+R(mvy−pmvy(k)))・・・(22)
argkmin(R(mvx−pmvx(k))
+R(mvy−pmvy(k)))・・・(22)
例えば水平動きベクトル情報に対して3種類、垂直動きベクトル情報に対して3種類の候補がある場合、本願の発明では6種類(3種類+3種類)のフラグを用意すればよい。しかし、水平差分動きベクトル情報の符号量と垂直差分動きベクトル情報の符号量を加算した符号量に基づきブロックを決定すると、9種類(3種類×3種類)のフラグを用意しなければならない。すなわち、本願発明では、用意するフラグを少なくてきるので、動きベクトル情報の符号化における効率を向上させることができる。
<3.画像復号化装置の構成>
次に、画像復号化装置について説明する。入力画像を符号化して生成された画像圧縮情報は、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
次に、画像復号化装置について説明する。入力画像を符号化して生成された画像圧縮情報は、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
図15は、画像復号化装置の構成を示している。画像復号化装置50は、蓄積バッファ51、可逆復号化部52、逆量子化部53、逆直交変換部54、加算部55、デブロッキングフィルタ56、画面並べ替えバッファ57、ディジタル/アナログ変換部(D/A変換部)58を備えている。さらに、画像復号化装置50は、フレームメモリ61、セレクタ62,75、イントラ予測部71、動き補償部72、予測動きベクトル情報設定部73を備えている。
蓄積バッファ51は、伝送されてきた画像圧縮情報を蓄積する。可逆復号化部52は、蓄積バッファ51より供給された画像圧縮情報を、図7の可逆符号化部16の符号化方式に対応する方式で復号化する。
可逆復号化部52は、画像圧縮情報を復号して得られた予測モード情報をイントラ予測部71や動き補償部72に出力する。また、可逆復号化部52は、画像圧縮情報を復号して得られた予測ブロック情報(予測ブロックフラグ)と差分動きベクトル情報を動き補償部72に出力する。
逆量子化部53は、可逆復号化部52で復号された量子化データを、図7の量子化部15の量子化方式に対応する方式で逆量子化する。逆直交変換部54は、図7の直交変換部14の直交変換方式に対応する方式で逆量子化部53の出力を逆直交変換して加算部55に出力する。
加算部55は、逆直交変換後のデータとセレクタ75から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ56とフレームメモリ61に出力する。
デブロッキングフィルタ56は、加算部55から供給された復号画像データに対してデブロッキングフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ61に供給し蓄積させるとともに、画面並べ替えバッファ57に出力する。
画面並べ替えバッファ57は、画像の並べ替えを行う。すなわち、図7の画面並べ替えバッファ12で符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、D/A変換部58に出力される。
D/A変換部58は、画面並べ替えバッファ57から供給された画像データをD/A変換し、図示せぬディスプレイに出力することで画像を表示させる。
フレームメモリ61は、デブロッキングフィルタ24でフィルタ処理が行われる前の復号画像データと、デブロッキングフィルタ24でフィルタ処理が行われた後の復号画像データを記憶する。
セレクタ62は、可逆復号化部52から供給された予測モード情報に基づき、イントラ予測画像の復号化の場合、フレームメモリ61に記憶されているフィルタ処理前の復号画像データをイントラ予測部71に供給する。また、セレクタ62は、インター予測画像の復号化の場合、フレームメモリ61に記憶されているフィルタ処理後の復号画像データを動き補償部72に供給する。
イントラ予測部71は、可逆復号化部52から供給された予測モード情報とセレクタ62を介してフレームメモリ61から供給された復号画像データに基づいて予測画像データの生成を行い、生成した予測画像データをセレクタ75に出力する。
動き補償部72は、可逆復号化部52から供給された差分動きベクトル情報と予測動きベクトル情報設定部73から供給された予測動きベクトル情報を加算して、復号化対象のブロックの動きベクトル情報を生成する。また、動き補償部72は、生成した動きベクトル情報と可逆復号化部52から供給された予測モード情報に基づき、フレームメモリ61から供給された復号画像データを用いて動き補償を行い、予測画像データを生成してセレクタ75に出力する。
予測動きベクトル情報設定部73は、可逆復号化部52から供給された予測ブロック情報に基づき予測動きベクトル情報の設定を行う。予測動きベクトル情報設定部73は、対象ブロックについて、復号化済みの隣接ブロックにおける水平予測ブロックフラグ情報で示されたブロックの水平動きベクトル情報を水平予測動きベクトル情報とする。また、復号化済みの隣接ブロックにおける垂直予測ブロックフラグで示されたブロックの垂直動きベクトル情報を垂直予測動きベクトル情報とする。予測動きベクトル情報設定部73は、設定した水平予測動きベクトル情報と垂直動きベクトル情報を動き補償部72に出力する。
図16は、動き補償部72と予測動きベクトル情報設定部73の構成を示している。
動き補償部72は、ブロックサイズ情報バッファ721、差分動きベクトル情報バッファ722、動きベクトル情報生成部723、動き補償処理部724、動きベクトル情報バッファ725を有している。
ブロックサイズ情報バッファ721は、可逆復号化部52から供給された予測モード情報に含まれているブロックサイズ情報を記憶する。また、ブロックサイズ情報バッファ721は、記憶しているブロックサイズ情報を動き補償処理部724と予測動きベクトル情報設定部73に出力する。
差分動きベクトル情報バッファ722は、可逆復号化部52から供給された差分動きベクトル情報を記憶する。また、差分動きベクトル情報バッファ722は、記憶している差分動きベクトル情報を動きベクトル情報生成部723に出力する。
動きベクトル情報生成部723は、差分動きベクトル情報バッファ722から供給された水平差分動きベクトル情報と予測動きベクトル情報設定部73で設定された水平予測動きベクトル情報を加算する。また、動きベクトル情報生成部723は、差分動きベクトル情報バッファ722から供給された垂直差分動きベクトル情報と予測動きベクトル情報設定部73で設定された垂直予測動きベクトル情報を加算する。動きベクトル情報生成部723は、差分動きベクトル情報と予測動きベクトル情報を加算して得られた動きベクトル情報を動き補償処理部724と動きベクトル情報バッファ725に出力する。
動き補償処理部724は、可逆復号化部52から供給された予測モード情報に基づいてフレームメモリ61から参照画像の画像データを読み出す。動き補償処理部724は、参照画像の画像データと、ブロックサイズ情報バッファ721から供給されたブロック情報と、動きベクトル情報生成部723から供給された動きベクトル情報とに基づき動き補償を行う。動き補償処理部724は、動き補償によって生成した予測画像データをセレクタ75に出力する。
動きベクトル情報バッファ725は、動きベクトル情報生成部723から供給された動きベクトル情報を記憶する。また、動きベクトル情報バッファ725は、記憶している動きベクトル情報を予測動きベクトル情報設定部73に出力する。
予測動きベクトル情報設定部73は、フラグバッファ730と水平予測動きベクトル情報生成部731、および垂直予測動きベクトル情報生成部732を有している。
フラグバッファ730は、可逆復号化部52から供給された予測ブロックフラグを記憶する。また、フラグバッファ730は、記憶している予測ブロックフラグを水平予測動きベクトル情報生成部731と、垂直予測動きベクトル情報生成部732に出力する。
水平予測動きベクトル情報生成部731は、動き補償部72の動きベクトル情報バッファ725に記憶されている隣接ブロックの水平動きベクトル情報から、水平予測ブロックフラグで示された動きベクトル情報を選択して水平予測動きベクトル情報に設定する。水平予測動きベクトル情報生成部731は、設定した水平予測動きベクトル情報を動き補償部72の動きベクトル情報生成部723に出力する。
垂直予測動きベクトル情報生成部732は、動き補償部72の動きベクトル情報バッファ725に記憶されている隣接ブロックの垂直動きベクトル情報から、垂直予測ブロックフラグで示された動きベクトル情報を選択して垂直予測動きベクトル情報に設定する。垂直予測動きベクトル情報生成部732は、設定した垂直予測動きベクトル情報を動き補償部72の動きベクトル情報生成部723に出力する。
図15に戻り、セレクタ75は、可逆復号化部52から供給された予測モード情報に基づき、イントラ予測である場合はイントラ予測部71、インター予測である場合は動き補償部72を選択する。セレクタ75は、選択されたイントラ予測部71または動き補償部72で生成された予測画像データを加算部55に出力する。
<4.画像復号化装置の動作>
次に、図17のフローチャートを参照して、画像復号化装置50で行われる画像復号処理動作について説明する。
次に、図17のフローチャートを参照して、画像復号化装置50で行われる画像復号処理動作について説明する。
ステップST81で蓄積バッファ51は、伝送されてきた画像圧縮情報を蓄積する。ステップST82で可逆復号化部52は、可逆復号化処理を行う。可逆復号化部52は、蓄積バッファ51から供給される画像圧縮情報を復号化する。すなわち、図7の可逆符号化部16で符号化された各ピクチャの量子化データが得られる。また、可逆復号化部52、画像圧縮情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部71に出力する。また、可逆復号化部52は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部72に出力する。
ステップST83において逆量子化部53は、逆量子化処理を行う。逆量子化部53は、可逆復号化部52により復号された量子化データを、図7の量子化部15の特性に対応する特性で逆量子化する。
ステップST84において逆直交変換部54は、逆直交変換処理を行う。逆直交変換部54は、逆量子化部53により逆量子化された変換係数データを、図7の直交変換部14の特性に対応する特性で逆直交変換する。
ステップST85において加算部55は、復号画像データの生成を行う。加算部55は、逆直交変換処理を行うことにより得られたデータと、後述するステップST89で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
ステップST86においてデブロッキングフィルタ56は、フィルタ処理を行う。デブロッキングフィルタ56は、加算部55より出力された復号画像データのデブロッキングフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
ステップST87においてフレームメモリ61は、復号画像データの記憶処理を行う。
ステップST88においてイントラ予測部71と動き補償部72は、予測処理を行う。イントラ予測部71と動き補償部72は、可逆復号化部52から供給される予測モード情報に対応してそれぞれ予測処理を行う。
すなわち、可逆復号化部52からイントラ予測の予測モード情報が供給された場合、イントラ予測部71は、予測モード情報に基づいて予測画像データを生成する。また、可逆復号化部52からインター予測の予測モード情報が供給された場合、動き補償部72は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
ステップST89において、セレクタ75は予測画像データの選択を行う。セレクタ75は、イントラ予測部71から供給された予測画像と動き補償部72から供給された予測画像データの選択を行い、選択した予測画像データを加算部55に供給して、上述したように、ステップST85において逆直交変換部54の出力と加算させる。
ステップST90において画面並べ替えバッファ57は、画像並べ替えを行う。すなわち画面並べ替えバッファ57は、図7の画像符号化装置10の画面並べ替えバッファ12で符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップST91において、D/A変換部58は、画面並べ替えバッファ57からの画像データをD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
次に、図18のフローチャートを参照して、図17のステップST88の予測処理について説明する。
ステップST101で可逆復号化部52は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部52は、可逆復号化を行うことで得られた予測モード情報がイントラ予測の予測モード情報である場合、予測モード情報をイントラ予測部71に供給してステップST102に進む。また、可逆復号化部52は、予測モード情報がインター予測の予測モード情報である場合、予測モード情報を動き補償部72に供給してステップST103に進む。
ステップST102でイントラ予測部71は、イントラ予測画像生成処理を行う。イントラ予測部71は、フレームメモリ61に記憶されているデブロックフィルタ処理前の復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。
ステップST103で動き補償部72は、インター予測画像生成処理を行う。動き補償部72は、可逆復号化部52からの予測モード情報や差分動きベクトル情報に基づいて、フレームメモリ61から読み出した参照画像の動き補償を行い、予測画像データを生成する。
図19は、ステップST103のインター予測画像生成処理を示すフローチャートである。ステップST111で動き補償部72は、予測モード情報を取得する。動き補償部72は、予測モード情報を可逆復号化部52から取得してステップST112に進む。
ステップST112で動き補償部72と予測動きベクトル情報設定部73は、動きベクトル情報再構築処理を行う。図20は、動きベクトル情報再構築処理を示すフローチャートである。
ステップST121で動き補償部72と予測動きベクトル情報設定部73は、予測ブロックフラグと差分動きベクトル情報を取得する。動き補償部72は、可逆復号化部52から差分動きベクトル情報を取得する。また、予測動きベクトル情報設定部73は、可逆復号化部52から予測ブロックフラグを取得してステップST122に進む。
ステップST122で予測動きベクトル情報設定部73は、水平予測動きベクトル情報設定処理を行う。水平予測動きベクトル情報生成部731は、動き補償部72の動きベクトル情報バッファ725に記憶されている隣接ブロックの水平動きベクトル情報から、水平予測ブロックフラグで示されたブロックの水平動きベクトル情報を選択する。水平予測動きベクトル情報生成部731は、選択した水平動きベクトル情報を水平予測動きベクトル情報に設定する。
ステップST123で動き補償部72は、水平動きベクトル情報の再構築を行う。動き補償部72は、水平差分動きベクトル情報と水平予測動きベクトル情報を加算して水平動きベクトル情報を再構築してステップST124に進む。
ステップST124で予測動きベクトル情報設定部73は、垂直予測動きベクトル情報設定処理を行う。垂直予測動きベクトル情報生成部732は、動き補償部72の動きベクトル情報バッファ725に記憶されている隣接ブロックの垂直動きベクトル情報から、垂直予測ブロックフラグで示されたブロックの垂直動きベクトル情報を選択する。垂直予測動きベクトル情報生成部732は、選択した垂直動きベクトル情報を垂直予測動きベクトル情報に設定する。
ステップST125で動き補償部72は、垂直動きベクトル情報の再構築を行う。動き補償部72は、垂直差分動きベクトル情報と垂直予測動きベクトル情報を加算して垂直動きベクトル情報を再構築して図19のステップST113に進む。
ステップST113で動き補償部72は、予測画像データの生成を行う。動き補償部72はステップST111で取得した予測モード情報や、ステップST112で再構築した動きベクトル情報に基づき、フレームメモリ61から参照画像データを読み出して動き補償を行い、予測画像データを生成してセレクタ75に出力する。
このように、画像復号化装置50は、水平予測ブロックフラグで示された隣接ブロックの水平動きベクトル情報が水平予測動きベクトル情報、垂直予測ブロックフラグで示された隣接ブロックの垂直動きベクトル情報が垂直予測動きベクトル情報に設定される。したがって、画像符号化装置10で符号化効率を向上させるために、水平予測動きベクトル情報と垂直予測動きベクトル情報を個々に設定しても、正しく動きベクトル情報を再構築することができる。
<5.画像符号化装置と画像復号化装置の他の構成>
ところで、上述の画像符号化装置と画像復号化装置では、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報を設定して、動きベクトル情報の符号化や復号化を行う場合について説明した。しかし、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報を設定可能とするだけでなく、水平垂直動きベクトル情報も設定可能とすれば、最適な符号効率を実現することも可能となる。この場合、画像符号化装置10で用いる予測動きベクトル情報設定部33aは、図21に示す構成とする。また、画像復号化装置50で用いる予測動きベクトル情報設定部73aは、図22に示す構成とする。
ところで、上述の画像符号化装置と画像復号化装置では、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報を設定して、動きベクトル情報の符号化や復号化を行う場合について説明した。しかし、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報を設定可能とするだけでなく、水平垂直動きベクトル情報も設定可能とすれば、最適な符号効率を実現することも可能となる。この場合、画像符号化装置10で用いる予測動きベクトル情報設定部33aは、図21に示す構成とする。また、画像復号化装置50で用いる予測動きベクトル情報設定部73aは、図22に示す構成とする。
図21において、水平垂直予測動きベクトル情報生成部333は、動き予測・補償部32から供給された符号化済みの隣接ブロックの動きベクトル情報を予測動きベクトル情報の候補とする。また、水平垂直予測動きベクトル情報生成部333は、各候補の動きベクトル情報と、動き予測・補償部32から供給された対象ブロックの動きベクトル情報との差分を示す差分動きベクトル情報を生成する。さらに、水平垂直予測動きベクトル情報生成部333は、上述の式(23)に基づいて検出した符号化量が最小となる動きベクトル情報を水平垂直予測動きベクトル情報とする。水平垂直予測動きベクトル情報生成部333は、水平垂直予測動きベクトル情報と水平垂直予測動きベクトル情報を用いた場合の差分動きベクトル情報を水平垂直予測動きベクトル情報生成結果として識別情報生成部334aに出力する。
識別情報生成部334aは、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれかを選択して、選択した予測動きベクトル情報を差分動きベクトル情報と共にコスト関数値算出部322に出力する。例えば、予測動きベクトル情報として水平予測動きベクトル情報と垂直予測動きベクトル情報を選択した場合、上述のように、識別情報生成部334aは、水平予測ブロックフラグと水平差分動きベクトル情報をコスト関数値算出部322に出力する。また、識別情報生成部334aは、垂直予測ブロックフラグと垂直差分動きベクトル情報をコスト関数値算出部322に出力する。さらに、予測動きベクトル情報として水平垂直予測動きベクトル情報を選択した場合、識別情報生成部334aは、動きベクトル情報が水平垂直予測動きベクトル情報として選択されたブロックを示す水平垂直予測ブロック情報を生成する。例えば、識別情報生成部334aは、水平垂直予測ブロック情報として水平垂直予測ブロックフラグを生成する。識別情報生成部334aは、生成した水平垂直予測ブロックフラグを差分動きベクトル情報と共にコスト関数値算出部322に出力する。
また、識別情報生成部334aは、水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれが選択されているかを示す識別情報を生成する。この識別情報は、動き予測・補償部32を介して可逆符号化部16に供給して、画像圧縮情報のピクチャパラメータセットまたはスライスヘッダに含める。
識別情報生成部334aは、予測動きベクトル情報を選択する場合、ピクチャ単位やスライス単位で水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報の切り替えを行うようにしてもよい。また、識別情報生成部334aは、ピクチャ単位で水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれを選択する場合、例えば対象ブロックのピクチャタイプに応じて選択を行うようにしてもよい。すなわち、Pピクチャにおいては、多少フラグ情報に対するオーバーヘッドがあっても、その分、動きベクトル符号化の効率を向上させることが重要である。したがって、Pピクチャの場合、水平予測ブロックフラグと水平差分動きベクトル情報および垂直予測ブロックフラグと垂直差分動きベクトル情報をコスト関数値算出部322に出力する。また、Bピクチャにおいては、List0予測と、List1予測のそれぞれに対して、水平予測ブロックフラグと垂直予測ブロックフラグを持つことは、特に低ビットレートの場合、最適な符号化効率を実現できるとは限らない。したがって、Bピクチャの場合、従来のように、水平垂直予測ブロックフラグと差分動きベクトル情報をコスト関数値算出部322に出力することにより、最適な符号化効率を達成することが可能である。
図22において、フラグバッファ730aは、画像圧縮情報に含まれている識別情報に基づき予測ブロックフラグの供給先を切り替える。例えば、水平予測動きベクトル情報と垂直予測動きベクトル情報が選択されている場合、フラグバッファ730aは、予測ブロックフラグを水平予測動きベクトル情報生成部731と垂直予測動きベクトル情報生成部732に出力する。また、水平垂直予測動きベクトル情報が選択されている場合、フラグバッファ730aは、予測ブロックフラグを水平垂直予測動きベクトル情報生成部733に出力する。また、フラグバッファ730aは、例えばピクチャタイプに応じて予測動きベクトル情報の切り替えが行われる場合、予測ブロックフラグの供給先をピクチャタイプに応じて切り替える。例えばPピクチャの場合は水平予測動きベクトル情報と垂直予測動きベクトル情報、Bピクチャの場合は水平垂直予測動きベクトル情報を用いて動きベクトル情報の符号化が行われているとする。この場合、フラグバッファ730aは、Pピクチャの場合は予測ブロックフラグを水平予測動きベクトル情報生成部731と垂直予測動きベクトル情報生成部732、Bピクチャの場合は予測ブロックフラグを水平垂直予測動きベクトル情報生成部733に供給する。
また、可逆符号化部16は、水平方向と垂直方向に対して、異なるコード割り当てを行うようにしてもよい。例えば予測動きベクトル情報として空間予測動きベクトル情報と時間予測動きベクトル情報を用いることが可能であるとする。この場合、符号化対象の動画像を生成したときの撮像動作を考慮して、データ量の少ないコードを予測精度の高い予測動きベクトル情報に対して割り当てる。例えば、後述する撮像装置で撮像画像の記録を行う場合、撮像装置のパンニング操作が行われて、撮像方向が水平方向に移動すると、垂直方向の動きベクトル情報はほとんど「0」となる。このとき、垂直方向に対しては空間予測動きベクトル情報よりも時間予測動きベクトル情報の予測精度が高く、水平方向に対しては時間予測動きベクトル情報より空間予測動きベクトル情報の予測精度が高くなることが多い。したがって、水平予測ブロック情報に関しては、空間予測動きベクトル情報のブロックに対してコード番号「0」、時間方向予測動きベクトル情報のブロックに対してコード番号「1」を割り当てる。また、垂直予測ブロック情報に関しては、空間予測ベクトル情報のブロックに対してコード番号「1」、時間方向予測動きベクトル情報のブロックに対してコード番号「0」を割り当てる。このように、水平予測ブロック情報と垂直予測ブロック情報で異なるコード割り当てを行うことで、データ量の少ないコードを多く用いるようにできるので、より高い符号化効率を実現することが可能となる。
<6.ソフトウェア処理の場合>
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
図23は、上述した一連の処理をプログラムで実行するコンピュータ装置の構成を例示した図である。コンピュータ装置80のCPU801は、ROM802、または記録部808に記録されているプログラムにしたがって各種の処理を実行する。
RAM803には、CPU801が実行するプログラムやデータなどが適宜記憶される。これらのCPU801、ROM802、およびRAM803は、バス804で相互に接続されている。
CPU801にはまた、バス804を介して入出力インタフェース805が接続されている。入出力インタフェース805には、タッチパネルやキーボード、マウス、マイクロホンなどの入力部806、ディスプレイなどよりなる出力部807が接続されている。CPU801は、入力部806から入力される指令に対応して各種の処理を実行する。そして、CPU801は、処理の結果を出力部807に出力する。
入出力インタフェース805に接続されている記録部808は、例えばハードディスクからなり、CPU801が実行するプログラムや各種のデータを記録する。通信部809は、インターネットやローカルエリアネットワークなどのネットワークやディジタル放送といった有線または無線の通信媒体を介して外部の装置と通信する。また、コンピュータ装置80は、通信部809を介してプログラムを取得し、ROM802や記録部808に記録してもよい。
ドライブ810は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア85が装着された場合、それらを駆動して、記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じてROM802やRAM803または記録部808に転送される。
CPU801は、上述の一連の処理を行うプログラムを読み出して実行し、記録部808やリムーバブルメディア85に記録されている画像信号や、通信部809を介して供給された画像信号に対する符号化処理や画像圧縮情報の復号化処理を行う。
<7.電子機器に適用した場合>
また、以上においては、符号化方式/復号方式としてH.264/AVC方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
また、以上においては、符号化方式/復号方式としてH.264/AVC方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
さらに、本発明は例えば離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV(テレビジョン)、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に適用できる。また、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
上述した画像符号化装置10や画像復号化装置50は、任意の電子機器に適用することができる。以下にその例について説明する。
図24は、本発明を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置90は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置90は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られたストリームをデマルチプレクサ903に出力する。
デマルチプレクサ903は、ストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に出力する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行い、スピーカ908に供給することで音声出力を行う。
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUで実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置90の起動時などの所定タイミングでCPUで読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置90がユーザ操作に応じた動作となるように各部を制御する。
なお、テレビジョン装置90では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
このように構成されたテレビジョン装置では、デコーダ904に本願の画像復号化装置(画像復号化方法)の機能が設けられる。このため、テレビジョン装置では、生成した予測動きベクトル情報と受信した差分動きベクトル情報に基づいて、復号化を行う対象ブロックの動きベクトル情報を正しく復元できる。したがって、放送局側で水平予測動きベクトル情報と垂直予測動きベクトル情報を個々に設定して符号化効率を高める処理を行っても、テレビジョン装置で正しく復号化を行える。
図25は、本発明を適用した携帯電話機の概略構成を例示している。携帯電話機92は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
携帯電話機92は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行い、スピーカ924に出力する。
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
なお、携帯電話機92は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアである。
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、画像圧縮情報を生成する。
多重分離部928は、画像処理部927で生成された画像圧縮情報と、音声コーデック923から供給された音声データを所定の方式で多重化して、通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、画像圧縮情報を画像処理部927、音声データを音声コーデック923に供給する。
画像処理部927は、画像圧縮情報の復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
このように構成された携帯電話装置では、画像処理部927に本願の画像符号化装置(画像符号化方法)と画像復号化装置(画像復号化方法)の機能が設けられる。したがって、画像を送信する際に、対象ブロックについて、動きベクトル情報の水平成分に対して水平予測動きベクトル情報、垂直成分に対して垂直予測動きベクトル情報を個々に設定して符号化効率を向上させることができる。また、画像符号化処理によって生成した画像圧縮情報の復号化を正しく行うことができる。
図26は、本発明を適用した記録再生装置の概略構成を例示している。記録再生装置94は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置94は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置94は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
記録再生装置94は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、ユーザインタフェース部950を有している。
チューナ941は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ941は、所望のチャンネルの受信信号を復調して得られた画像圧縮情報をセレクタ946に出力する。
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていない場合所定の方式で符号化を行い、画像圧縮情報をセレクタ946に出力する。
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)やBlu−rayディスク等である。
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれかのストリームを選択して、HDD部944やディスクドライブ945のいずれかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力されたストリームをデコーダ947に供給する。
デコーダ947は、ストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことで生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことで生成された音声データを出力する。
OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUで実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置94の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置94がユーザ操作に応じた動作となるように各部を制御する。
このように構成された記録再生装置では、エンコーダ943に本願の画像符号化装置(画像符号化方法)の機能が設けられる。また、デコーダ947に本願の画像復号化装置(画像復号化方法)の機能が設けられる。したがって、画像を記録媒体に記録する際に、対象ブロックについて、動きベクトル情報の水平成分に対して水平予測動きベクトル情報、垂直成分に対して垂直予測動きベクトル情報を個々に設定して符号化効率を向上させることができる。また、画像符号化処理によって生成した画像圧縮情報の復号化を正しく行うことができる。
図27は、本発明を適用した撮像装置の概略構成を例示している。撮像装置96は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置96は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971や動き検出センサ部972が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス973を介して接続されている。
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことで生成された画像圧縮情報を外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された画像圧縮情報の復号化処理を行う。画像データ処理部964は、復号化処理を行うことで生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メモリ部967から画像圧縮情報を読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される画像圧縮情報や画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であってもよい。
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体で構成されるようにしてもよい。
制御部970は、CPUやメモリ等を用いて構成されている。メモリは、CPUで実行されるプログラムやCPUが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置96の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、撮像装置96がユーザ操作に応じた動作となるように各部を制御する。
このように構成された撮像装置では、画像データ処理部964に本願の画像符号化装置(画像符号化方法)と画像復号化装置(画像復号化方法)の機能が設けられる。したがって、撮像画像を記録する際に、対象ブロックについて、動きベクトル情報の水平成分に対して水平予測動きベクトル情報、垂直成分に対して垂直予測動きベクトル情報を個々に設定して符号化効率を向上させることができる。また、画像符号化処理によって生成した画像圧縮情報の復号化を正しく行うことができる。
さらに、撮像装置96にジャイロ等を用いて構成された動き検出センサ部972を設けて、撮像装置96のパンニングやチルティング等の動きの検出結果に基づき、データ量の少ないコードを予測精度の高い予測動きベクトル情報に対して割り当てる。このように、撮像装置の動き検出結果に応じてコードの動的割り当てを行うことで、符号化効率をさらに向上させることができる。
なお、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
この発明の画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラムでは、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報が選択されて水平予測動きベクトル情報と垂直予測動きベクトル情報がそれぞれ設定されて、設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報の圧縮処理が行われる。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報が生成される。このため、例えば水平予測動きベクトル情報と垂直予測動きベクトル情報の候補の組み合わせ分のフラグよりも少ないデータ量である水平予測ブロック情報と垂直予測ブロック情報で水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が可能となり、符号化効率を向上させることができる。したがって、高い符号化効率を実現できることから、画像圧縮情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、または光ディスク、磁気ディスク、フラッシュメモリのような記憶メディアを用いて画像の記録再生を行う装置等に適している。
10・・・画像符号化装置、11・・・A/D変換部、12,57・・・画面並べ替えバッファ、13・・・減算部、14・・・直交変換部、15・・・量子化部、16・・・可逆符号化部、17,51・・・蓄積バッファ、18・・・レート制御部、21,53・・・逆量子化部、22,54・・・逆直交変換部、23,55・・・加算部、24,56・・・デブロッキングフィルタ、25,61・・・フレームメモリ、26,62,75・・・セレクタ、31,71・・・イントラ予測部、32・・・動き予測・補償部、33,33a,73,73a・・・予測動きベクトル情報設定部、35・・・予測画像・最適モード選択部、50・・・画像復号化装置、52・・・可逆復号化部、58・・・D/A変換部、72・・・動き補償部、80・・・コンピュータ装置、90・・・テレビジョン装置、92・・・携帯電話機、94・・・記録再生装置、96・・・撮像装置、321・・・動き探索部、322・・・コスト関数値算出部、323・・・モード判定部、324・・・動き補償処理部、325・・・動きベクトルバッファ、331,731・・・水平予測動きベクトル情報生成部、332,732・・・垂直予測動きベクトル情報生成部、333,733・・・水平垂直予測動きベクトル情報生成部、334,334a・・・識別情報生成部、721・・・ブロックサイズ情報バッファ、722・・・差分動きベクトル情報バッファ、723・・・動きベクトル情報生成部、724・・・動き補償処理部、725・・・動きベクトル情報バッファ、730,730a・・・フラグバッファ
Claims (18)
- 対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する予測動きベクトル情報設定部
を有する画像符号化装置。 - 前記予測動きベクトル情報設定部は、前記水平成分の符号化処理で最も符号化効率が高くなる動きベクトル情報を選択して前記水平予測動きベクトル情報として設定し、前記垂直成分の符号化処理で最も符号化効率が高くなる動きベクトル情報を選択して前記垂直予測動きベクトル情報として設定する請求項1記載の画像符号化装置。
- 予測モード毎にコスト関数値を算出するコスト関数値算出部と、
最適予測モードの判定を行うモード判定部とをさらに有し、
前記モード判定部は、前記算出されたコスト関数値が最小となるモードを最適予測モードと判定する請求項2記載の画像符号化装置。 - 前記水平予測ブロック情報と垂直予測ブロック情報は、画像圧縮情報に含めて伝送する請求項3記載の画像符号化装置。
- 前記予測動きベクトル情報設定部は、前記対象ブロックの動きベクトル情報の水平成分と垂直成分に対して、前記対象ブロックと隣接する符号化済みブロックから選択した動きベクトル情報を水平垂直予測動きベクトル情報とする設定、または前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報の設定を、ピクチャ毎またはスライス毎に切り替え可能とする請求項1記載の画像符号化装置。
- 前記予測動きベクトル情報設定部は、前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報、または前記水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報を生成する請求項5記載の画像符号化装置。
- 前記生成した識別情報は、画像圧縮情報のピクチャパラメータセットまたはスライスヘッダに含める請求項6記載の画像符号化装置。
- 前記予測動きベクトル情報設定部は、Pピクチャに対して前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報の設定を行い、Bピクチャに対して前記水平垂直予測動きベクトル情報の設定を行う請求項5記載の画像符号化装置。
- 前記対象ブロックの動きベクトル情報の符号化を行う可逆符号化部を有し、
前記可逆符号化部は、前記水平予測ブロック情報と前記垂直予測ブロック情報とで異なるコード割り当てを行い、前記水平予測ブロック情報と前記垂直予測ブロック情報に割り当てたコードを画像圧縮情報に含める請求項1記載の画像符号化装置。 - 前記可逆符号化部は、動きベクトル情報が空間予測動きベクトル情報として選択されたブロックを示す予測ブロック情報と、動きベクトル情報が時間予測動きベクトル情報として選択されたブロックを示す予測ブロック情報に対して、前記水平予測ブロック情報と前記垂直予測ブロック情報で異なるコード割り当てを行う請求項9記載の画像符号化装置。
- 前記可逆符号化部は、撮像装置で生成された画像データを用いて検出された前記対象ブロックの動きベクトル情報の符号化処理を行う場合、前記撮像装置の動き検出結果に基づいて前記コード割り当てを行う請求項10記載の画像符号化装置。
- 対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する工程を設けた動きベクトル情報符号化方法。
- 対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する手順をコンピュータで実行させるプログラム。
- 対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する可逆復号化部と、
前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する予測動きベクトル情報設定部と、
前記予測動きベクトル情報設定部で設定された前記水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する動きベクトル情報生成部と
を有する画像復号化装置。 - 前記可逆復号化部は、前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報、または前記対象ブロックの動きベクトル情報の水平成分と垂直成分に対して前記隣接する復号化済みブロックから選択した動きベクトル情報を示す水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報を、前記画像圧縮情報から取得し、
前記予測動きベクトル情報設定部は、前記識別情報に基づき、前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報、または前記水平垂直予測動きベクトル情報の設定を行い、
前記動きベクトル再構築部は、前記水平予測動きベクトル情報と垂直予測動きベクトル情報、または前記水平垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する請求項14記載の画像復号化装置。 - 前記可逆復号化部は、画像圧縮情報に含まれているコードの復号化を行い、前記水平予測ブロック情報と前記垂直予測ブロック情報を取得し、
前記予測動きベクトル情報設定部は、前記水平予測ブロック情報と前記垂直予測ブロック情報に基づき、前記水平予測動きベクトルと前記垂直予測動きベクトル情報の設定を行う
請求項14記載の画像復号化装置。 - 対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する工程と、
前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する工程と、
前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する工程とを
設けた動きベクトル情報復号化方法。 - 対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する手順と、
前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する手順と、
前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する手順と
をコンピュータで実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010271769A JP2012124591A (ja) | 2010-12-06 | 2010-12-06 | 画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラム |
PCT/JP2011/077510 WO2012077533A1 (ja) | 2010-12-06 | 2011-11-29 | 画像復号化装置と動きベクトル復号化方法、画像符号化装置と動きベクトル符号化方法 |
CN2011800576190A CN103238329A (zh) | 2010-12-06 | 2011-11-29 | 图像解码装置、运动矢量解码方法、图像编码装置和运动矢量编码方法 |
US13/990,506 US20130259134A1 (en) | 2010-12-06 | 2011-11-29 | Image decoding device and motion vector decoding method, and image encoding device and motion vector encoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010271769A JP2012124591A (ja) | 2010-12-06 | 2010-12-06 | 画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012124591A true JP2012124591A (ja) | 2012-06-28 |
Family
ID=46207024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010271769A Withdrawn JP2012124591A (ja) | 2010-12-06 | 2010-12-06 | 画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130259134A1 (ja) |
JP (1) | JP2012124591A (ja) |
CN (1) | CN103238329A (ja) |
WO (1) | WO2012077533A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117834906A (zh) * | 2019-03-08 | 2024-04-05 | 华为技术有限公司 | 运动矢量细化的搜索区域 |
KR20220157765A (ko) * | 2021-05-21 | 2022-11-29 | 삼성전자주식회사 | 영상 부호화 장치 및 이의 동작 방법 |
EP4542987A1 (en) * | 2023-10-19 | 2025-04-23 | INTEL Corporation | Separable motion vector predictor components in video encoding |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983018B1 (en) * | 1998-11-30 | 2006-01-03 | Microsoft Corporation | Efficient motion vector coding for video compression |
KR100680452B1 (ko) * | 2000-02-22 | 2007-02-08 | 주식회사 팬택앤큐리텔 | 움직임 벡터 메모리의 갱신방법 및 장치 |
US6687384B1 (en) * | 2000-03-27 | 2004-02-03 | Sarnoff Corporation | Method and apparatus for embedding data in encoded digital bitstreams |
US7643559B2 (en) * | 2001-09-14 | 2010-01-05 | Ntt Docomo, Inc. | Coding method, decoding method, coding apparatus, decoding apparatus, image processing system, coding program, and decoding program |
CN100581245C (zh) * | 2004-07-08 | 2010-01-13 | 高通股份有限公司 | 用于视频编码的有效速率控制技术 |
US7606427B2 (en) * | 2004-07-08 | 2009-10-20 | Qualcomm Incorporated | Efficient rate control techniques for video encoding |
CN101001383A (zh) * | 2006-01-12 | 2007-07-18 | 三星电子株式会社 | 基于多层的视频编码/解码方法和编码器/解码器 |
JP5025286B2 (ja) * | 2007-02-28 | 2012-09-12 | シャープ株式会社 | 符号化装置及び復号装置 |
JP4325708B2 (ja) * | 2007-07-05 | 2009-09-02 | ソニー株式会社 | データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム |
JP4990927B2 (ja) * | 2008-03-28 | 2012-08-01 | 三星電子株式会社 | 動きベクトル情報の符号化/復号化方法及び装置 |
-
2010
- 2010-12-06 JP JP2010271769A patent/JP2012124591A/ja not_active Withdrawn
-
2011
- 2011-11-29 US US13/990,506 patent/US20130259134A1/en not_active Abandoned
- 2011-11-29 WO PCT/JP2011/077510 patent/WO2012077533A1/ja active Application Filing
- 2011-11-29 CN CN2011800576190A patent/CN103238329A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20130259134A1 (en) | 2013-10-03 |
WO2012077533A1 (ja) | 2012-06-14 |
CN103238329A (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6477939B2 (ja) | テレビジョン装置、携帯電話機、再生装置、カメラ、および画像処理方法 | |
JP6057140B2 (ja) | 画像処理装置および方法、プログラム、並びに、記録媒体 | |
WO2012017858A1 (ja) | 画像処理装置と画像処理方法 | |
WO2011155364A1 (ja) | 画像復号化装置と画像符号化装置およびその方法とプログラム | |
JP2011050001A (ja) | 画像処理装置および方法 | |
JPWO2010101064A1 (ja) | 画像処理装置および方法 | |
JPWO2010035734A1 (ja) | 画像処理装置および方法 | |
WO2012063878A1 (ja) | 画像処理装置と画像処理方法 | |
WO2012063604A1 (ja) | 画像処理装置と画像処理方法 | |
JP2011151683A (ja) | 画像処理装置および方法 | |
JP2011146980A (ja) | 画像処理装置および方法 | |
WO2012056924A1 (ja) | 画像処理装置と画像処理方法 | |
WO2012077533A1 (ja) | 画像復号化装置と動きベクトル復号化方法、画像符号化装置と動きベクトル符号化方法 | |
JP5387520B2 (ja) | 情報処理装置と情報処理方法 | |
JP6268556B2 (ja) | 画像処理装置および方法、プログラム、並びに、記録媒体 | |
JP2011223176A (ja) | 画像処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140304 |