以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像復号装置)
2.第2の実施の形態(画像符号化装置)
3.第3の実施の形態(パーソナルコンピュータ)
4.第4の実施の形態(テレビジョン受像機)
5.第5の実施の形態(携帯電話機)
6.第6の実施の形態(記録再生装置)
7.第7の実施の形態(撮像装置)
<1.第1の実施の形態>
[画像符号化装置]
図1は、画像符号化装置の主な構成例を示すブロック図である。
図1に示される画像符号化装置100は、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))符号化方式のように、予測処理を用いて画像データを符号化する。
図1に示されるように画像符号化装置100は、A/D変換部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)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部104は、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部117から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部117の制御の下で量子化されているので、この符号量は、レート制御部117が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部106は、イントラ予測のモードを示す情報などをイントラ予測部114から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部115から取得する。さらに、可逆符号化部106は、ループフィルタ111において使用されたフィルタ係数等を取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部105による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部104による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109から供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に再構成された画像(以下、再構成画像と称する)を得る。その再構成画像は、ループフィルタ111またはフレームメモリ112に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ112に供給する。
フレームメモリ112は、演算部110若しくはループフィルタ111から供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部113を介して、イントラ予測部114、若しくは、動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から出力される参照画像の供給先を示す。例えば、イントラ予測の場合、選択部113は、フレームメモリ112からフィルタ処理されていない画像(再構成画像)を読み出し、周辺画素として、イントラ予測部114に供給する。
また、例えば、インター予測の場合、選択部113は、フレームメモリ112からフィルタ処理された画像(復号画像)を読み出し、参照画像として、それを動き予測・補償部115に供給する。
イントラ予測部114は、フレームメモリ112から、処理対象領域の周辺に位置する周辺領域の再構成画像を周辺画像として取得する。イントラ予測部114は、この処理対象ピクチャ内の周辺画像の画素値を用いて、処理対象領域の予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
イントラ予測部114は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、イントラ予測部114は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部106に供給し、符号化させる。
動き予測・補償部115は、画面並べ替えバッファ102から供給される入力画像と、フレームメモリ112から供給される復号画像(参照画像)とを用いて、処理対象領域の動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、処理対象領域の予測画像(インター予測画像情報)を生成する。動き予測・補償部115は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。
動き予測・補償部115は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部115は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、動き予測・補償部115は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部106に供給し、符号化させる。
予測画像選択部116は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部116は、予測画像の供給元としてイントラ予測部114を選択し、そのイントラ予測部114から供給される予測画像を演算部103や演算部110に供給する。また、例えば、インター符号化の場合、予測画像選択部116は、予測画像の供給元として動き予測・補償部115を選択し、その動き予測・補償部115から供給される予測画像を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
重み付け予測部121は、動き予測・補償部115が行うインター予測モードにおいて、重み係数の決定や動き精度の調整など、重み付け予測に関する処理を行う。
動きベクトル精度判定部122は、動き予測・補償部115が行うインター予測モードにおいて、動きベクトルの精度である動き精度を判定し、その判定結果を重み付け予測部121に供給する。
[1/4画素精度動き予測]
図2は、AVC符号化方式において規定されている、1/4画素精度の動き予測・補償処理の様子の例を説明する図である。図2において、各四角は、画素を示している。その内、Aはフレームメモリ112に格納されている整数精度画素の位置を示し、b,c,dは、1/2画素精度の位置を示し、e1,e2,e3は1/4画素精度の位置を示している。
以下においては、関数Clip1()を以下の式(1)のように定義する。
例えば、入力画像が8ビット精度である場合、式(1)のmax_pixの値は255となる。
b及びdの位置における画素値は、6tapのFIRフィルタを用いて、以下の式(2)および式(3)のように生成される。
cの位置における画素値は、水平方向及び垂直方向に6tapのFIRフィルタを適用し、以下の式(4)乃至式(6)のように生成される。
なお、Clip処理は、水平方向及び垂直方向の積和処理の両方を行った後、最後に1度のみ行われる。
e1乃至e3は、以下の式(7)乃至式(9)のように、線形内挿により生成される。
[マクロブロック]
また、MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
これに対し、AVCにおいては、図3に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図3に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
しかしながら、AVC画像符号化方式において、MPEG2の場合と同様に、かかるような動き予測・補償処理が行なわれるようにすると、膨大な動きベクトル情報が生成されてしまう恐れがあった。そして、その生成された動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く恐れがあった。
[動きベクトルのメディアン予測]
かかる問題を解決する手法として、AVC画像符号化においては、以下のような手法により、動きベクトルの符号化情報の低減が実現されている。
図4に示される各直線は、動き補償ブロックの境界を示している。また、図4において、Eはこれから符号化されようとしている当該動き補償ブロックを示し、A乃至Dは、それぞれ、既に符号化済の、Eに隣接する動き補償ブロックを示す。
今、X=A,B,C,D,Eとして、Xに対する動きベクトル情報を、mvxとする。
まず、動き補償ブロックA,B、およびCに関する動きベクトル情報を用い、動き補償ブロックEに対する予測動きベクトル情報pmvEを、メディアンオペレーションにより、以下の式(10)のように生成する。
動き補償ブロックCに関する情報が、画枠の端である等の理由により利用不可能(unavailable)である場合、動き補償ブロックDに関する情報で代用される。
画像圧縮情報に、動き補償ブロックEに対する動きベクトル情報として符号化されるデータmvdEは、pmvEを用いて、以下の式(11)のように生成される。
なお、実際の処理は、動きベクトル情報の水平方向および垂直方向のそれぞれの成分に対して、独立に処理が行なわれる。
[マルチ参照フレーム]
また、AVCにおいては、Multi-Reference Frame(マルチ(複数)参照フレーム)という、MPEG2やH.263等、従来の画像符号化方式では規定されていなかった方式が規定されている。
図5を用いて、AVCにおいて規定されている、マルチ参照フレーム(Multi-Reference Frame)を説明する。
すなわち、MPEG-2やH.263においては、Pピクチャの場合、フレームメモリに格納された参照フレーム1枚のみを参照することにより動き予測・補償処理が行われていたが、AVCにおいては、図5に示されるように、複数の参照フレームがメモリに格納され、マクロブロック毎に、異なるメモリを参照することが可能である。
ところで、MPEG2やMPEG4においては、例えば、フェードシーンのように、動きが存在するが、明るさが変化するようなシーケンスにおいては、明るさの変化を吸収する符号化ツールが用意されていないため、符号化効率が低下する恐れがあった。
かかる問題を解決するため、AVC符号化方式においては、重み付け予測処理を行うことが可能である(非特許文献2参照)。すなわち、Pピクチャにおいては、Y0を動き補償予測信号すると、重み係数W0及びオフセット値をDとして、以下の式(12)のように予測信号が生成される。
W0×Y0+D ・・・(12)
また、Bピクチャにおいては、List0およびList1に対する動き補償予測信号をY0及びY1として、それぞれに対する重み係数をW0及びW1、及びオフセットをDとして、以下の式(13)のように予測信号が生成される。
W0×Y0+W1×Y1+D ・・・(13)
AVCにおいては、スライス単位で、上記の重み付け予測を用いる・用いないを指定することが可能である。
また、AVCにおいては、重み付け予測として、スライスヘッダに、WおよびDを伝送する、Explicit Mode、及び、当該ピクチャと、参照ピクチャにおける、時間軸上での距離から、Wを算出するImplicit Modeとが規定されている。
Pピクチャにおいては、Explicit Modeのみを用いることができる。
Bピクチャにおいては、Explicit ModeとImplicit Modeの両方を用いることができる。
図7に、Bピクチャにおける、Implicit Modeである場合の、W及びDの算出方法を示す。
なお、AVCの場合、時間距離情報であるtb及びtdに相当する情報が存在しないため、POC(Picture Order Count)を用いる。
また、AVCにおいて、重み付け予測(Weighted Prediction)は、スライス単位で適用することができる。さらに、非特許文献2には、ブロック単位で重み付け予測(Weighted Prediction)を適用する方法(Intensity Compensation)も提案されている。
[動きベクトルの選択]
ところで、図1に示した画像符号化装置100により、符号化効率の高い画像圧縮情報を得るためには、動きベクトル及びマクロブロックモードをどのような処理により選択するかが重要である。
処理の一例として、http://iphome.hhi.de/suehring/tml/index.htmにおいて公開されている、JM(Joint Model)と呼ばれるreference softwareに実装されている手法を挙げることが出来る。
以下では、図6を用いて、JMにおいて実装されている動き探索方式について説明する。図6において、A乃至Iは、整数画素精度の画素値、1乃至8は、E周りの1/2画素精度の画素値、a乃至hは、6周りの、1/4画素精度の画素値である。
第1のステップとして、所定の探索範囲内において、SAD(Sum of Absolute Difference)等のコスト関数を最小にする、整数画素精度の動きベクトルを求める。図6の例において、Eが、その整数画素精度の動きベクトルに対応する画素であるとする。
第2のステップとして、E及び、E周りの1/2画素精度1乃至8のうち、コスト関数を最小にする画素値を求め、これを1/2画素精度の最適動きベクトルとする。図6の例において、6が、その1/2画素精度の最適動きベクトルに対応する画素であるとする。
第3のステップとして、6及び、6周りの、1/4画素精度a乃至hのうち、コスト関数を最小にする画素値を求め、これを1/4画素精度の最適動きベクトルとする。
[予測モードの選択]
また、以下では、JMにおいて定められているモード判定方式について述べる。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することが可能である。どちらも、それぞれの予測モードに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(14)のように示される。
Cost(Mode∈Ω) = D + λ*R ・・・(14)
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(15)のように示される。
Cost(Mode∈Ω) = D + QP2Quant(QP) * HeaderBit ・・・(15)
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
[コーディングユニット]
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、AVCにおいては、図3に示されるように、マクロブロックとサブマクロブロックによる階層構造が規定されているが、例えば、HEVC(High Efficiency Video Coding)においては、図8に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図8の例では、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を単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図8に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
[丸め処理による演算精度の低下]
ところで、このような重み付け処理は、図9に示される通り、動き補償のために丸め処理を行って、更に、重み付け加算の後にも丸め処理を行うため、演算精度の低下により、符号化効率が低下する恐れがあった。
そこで、動き予測・補償部115、重み付け予測部121、および動きベクトル精度判定部122は、図10に示されるように、小数画素精度の動き補償処理を行い、重み付け加算を行った後で、各演算の丸め処理をまとめて行うようにする。
[動き予測・補償部、重み付け予測部、動きベクトル精度判定部]
図11は、図1の動き予測・補償部115、重み付け予測部121、および動きベクトル精度判定部122の主な構成例を示すブロック図である。
図11に示されるように、動き予測・補償部115は、動き探索部151、コスト関数値生成部152、モード判定部153、動き補償部154、および動き情報バッファ155を有する。
また、重み付け予測部121は、重み係数決定部161および動き精度調整部162を有する。
動き探索部151は、画面並べ替えバッファ102から取得した入力画像画素値と、フレームメモリ112から取得した参照画像画素値とを用いて、動き探索を行い、動き情報(動きベクトル)を求める。
動き探索部151は、画面並べ替えバッファ102から取得した入力画像画素値と、フレームメモリ112から取得した参照画像画素値とを重み付け予測部121の重み係数決定部161に供給する。
重み係数決定部161は、これらの画素値に基づいて、重み係数を決定し、その重み係数を動き探索部151に供給する。
なお、動き探索部151は、候補となる全てのインター予測モードで動き探索を行い、動き情報を生成する。探索された動き情報は、全て、動きベクトル精度判定部122に供給される。
動きベクトル精度判定部122は、L0及びL1の動きベクトル精度に関する情報を判別し、その精度情報(動き精度)を重み付け予測部121の動き精度調整部162に供給する。動きベクトル精度判定部122は、動き探索部151から供給される全てのインター予測モードの動き情報について動き精度を判別する。動き精度調整部162は、動きベクトル精度判定部122から供給される動き精度に基づいて、丸め処理をどのように行うかを決定し、その丸め処理の実行を制御する丸め制御情報を、動き探索部151に供給する。動き精度調整部162は、動きベクトル精度判定部122から供給される全てのインター予測モードの動き精度について、丸め制御情報を生成し、動き探索部151に供給する。
動き探索部151は、このように供給される重み係数や丸め制御情報を用いて動き補償を行い、予測画像を生成する。そして、動き探索部151は、生成した予測画像と入力画像との差分(差分画像)を求める。動き探索部151は、求めた差分画像の画素値(差分画素値)を、動き情報とともにコスト関数値生成部152に供給する。動き探索部151は、このような処理を全てのインター予測モードについて行う。
コスト関数値生成部152は、動き情報探索部151から供給される差分画素値を用いてコスト関数値を算出する。また、コスト関数値生成部152は、動き情報探索部151から供給される動き情報に対応する周辺動き情報を、動き情報バッファ155から取得する。周辺動き情報は、動き情報に対応する領域である処理対象の領域の周辺に位置する(例えば隣接する)領域の動き情報である。コスト関数値生成部152は、動き情報バッファ155から取得した周辺動き情報を用いて当該領域の動き情報を予測し、その予測動き情報と、動き探索部151において探索された動き情報との差分である差分動き情報を生成する。コスト関数値生成部152は、全てのインター予測モードについて、このような処理を行い、差分動き情報およびコスト関数値を求める。
コスト関数値生成部152は、各インター予測モードのコスト関数値と差分動き情報を、モード判定部153に供給する。
モード判定部153は、そのコスト関数値を最小にするインター予測モードを、当該領域に対する最適なインター予測モードと判定し、この最適なインター予測モードを示す最適モード情報と、その最適なインター予測モードの差分動き情報とを、動き補償部154に供給する。
動き補償部154は、それらの情報を取得すると、最適モード情報に基づいて、最適なインター予測モードの丸め制御情報と重み係数を動き探索部151から取得する。また、動き補償部154は、最適モード情報に基づいて、最適なインター予測モードに対応する周辺動き情報を動き情報バッファ155から取得する。動き補償部154は、差分動き情報と周辺動き情報とを用いて、最適なインター予測モードの動き情報を再構築する。
動き補償部154は、これらの情報を用いて動き補償を行い、予測画像を生成する。例えば重み付け予測を行う場合、動き補償部154は、重み係数を用いて重み付け加算を行い、丸め制御情報に基づいて、重み付け加算結果に対して、丸め処理を1度だけ行う。
動き補償部154は、生成した予測画像画素値を予測画像選択部116に供給する。また、動き補償部154は、重み係数、差分動き情報、および最適モード情報等を可逆符号化部106に供給し、ビットストリームに付加させ、復号側に伝送させる。
さらに、動き補償部154は、当該領域の動き情報を動き情報バッファ155に供給し、記憶させる。この動き情報は、当該領域より時間的に後に処理される他の領域に対するインター予測において、周辺動き情報として利用される。
[動き補償の詳細]
次に、動き補償の詳細について説明する。
上述したように、動き補償部154は、図9に示されるように、小数画素精度の動き補償処理を行って丸め処理を行い、重み付け加算を行った後、再び丸め処理を行うのではなく、図10に示されるように、小数画素精度の動き補償処理を行い、重み付け加算を行った後、一度だけ丸め処理を行う。
AVCのように1/4画素精度の動き補償を行う例について説明する。1/2画素精度の動き補償を行う場合、丸め処理として2Hの割り算が最後に行われる。また、1/4画素精度の動き補償精度を行う場合、丸め処理として2Qの割り算が最後に行われる。さらに、重み付け加算の丸め処理として、最後に、2wの割り算が行われる。これらのH,Q,Wの値は全て正の整数である。
これに対して、画像符号化装置100は、第1ステップとして、動き精度調整部162において、L0とL1の動きベクトル精度の調整を行う。例えば、LXとLY(X,Y={0,1})で、LXの方が、LYより、同等若しくはより細かい小数画素精度の動き補償が行われるものとする。LXとLYが同じ小数画素精度、つまり、どちらも整数画素精度であるか、どちらも1/2画素精度であるか、どちらも1/4画素精度である場合、LXとLYの精度を調整する必要はない。動き精度調整部162は、LXとLYの精度を調整しないように指示する丸め制御情報を生成する。
LXとLYが異なる小数画素精度である場合、動き精度調整部162は、以下のようにLXとLYの精度を調整させるように丸め制御情報を生成する。
例えば、LXが整数画素精度であり、LYが1/2画素精度である場合、LXに代えて、LX*2Hを用いるようにする。また、例えば、LXが整数画素精度であり、LYが1/4画素精度である場合、LXに代えて、LX*2Qを用いるようにする。さらに、例えば、LXが1/2画素精度であり、LYが1/4画素精度である場合、LXに代えて、LX*2(Q-H)を用いるようにする。
以上においては、説明を簡略化にするために、1次元の例で説明を行ったが、実際の動きベクトル情報は、2次元情報である。したがって、動き精度調整部162は、垂直成分および水平成分のそれぞれの精度に応じて、図12に示される表のようにLXとLYの精度を調整させる。図12の表は、L0およびL1のそれぞれの水平成分の精度と垂直成分の精度の組み合わせに応じた精度の調整量を示している。横方向(上から1行目の値の組み合わせ)が、L0およびL1のそれぞれの水平成分(若しくは垂直成分)の精度の組み合わせを示しており、縦(左から1列目の値の組み合わせ)が、L0およびL1のそれぞれの垂直成分(若しくは水平成分)の精度の組み合わせを示している。
図12の表に示される、L0およびL1のそれぞれの水平成分の精度と垂直成分の精度の組み合わせに対応する値が、より低い精度の動きベクトル情報に乗じられることにより、より高い精度の動きベクトル情報との調整が行われる。なお、図12の表において値「0」は、精度の調整を行わないことを示す(「0」は乗算しない)。
第2ステップとして、画像符号化装置100は、動き探索部151や動き補償部154において、以上のように調整が行われたLX及びLYについて、重み係数を用いて重み付け加算処理を行う。
第3ステップとして、画像符号化装置100は、動き探索部151や動き補償部154において、以下のような、丸め処理を行う。すなわち、上記の第1ステップで、L0、L1精度調整のため、2Xを乗じ、また、AVC方式による場合では、2Yの除算が重み付け予測処理のために必要であるとする。この場合、2X+Yによる除算が行われる。実際の処理としては、除算でなく、シフト演算により実現する。
以上のように、丸め処理を重み付け加算後の1回にまとめることにより、画像符号化装置100は、丸め誤差による画質劣化を抑制して演算精度を向上させることにより、符号化効率を向上させることができる。
尚、以上の方法は、Explicit Mode、Implicit Modeの両方に適用することが可能である。また、非特許文献3において提案されているような、Intensity Compensationにも適用することができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図13のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、イントラ予測部114は、イントラ予測処理を行う。ステップS104において、動き予測・補償部115、重み付け予測部121、および動きベクトル精度判定部122は、インター動き予測処理を行う。ステップS105において、予測画像選択部116は、イントラ予測により生成された予測画像、および、インター予測により生成された予測画像の内、いずれか一方を選択する。
ステップS106において、演算部103は、ステップS102の処理により並び替えられた画像と、ステップS105の処理により選択された予測画像との差分を演算する(差分画像を生成する)。生成された差分画像は元の画像に較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS107において、直交変換部104は、ステップS106の処理により生成された差分画像を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、直交変換係数が出力される。ステップS108において、量子化部105は、ステップS107の処理により得られた直交変換係数を量子化する。
ステップS108の処理により量子化された差分画像は、次のようにして局部的に復号される。すなわち、ステップS109において、逆量子化部108は、ステップS108の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。ステップS110において、逆直交変換部109は、ステップS109の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。これにより差分画像が復元される。
ステップS111において、演算部110は、ステップS105において選択された予測画像を、ステップS110において生成された差分画像に加算し、局部的に復号された復号画像(再構成画像)を生成する。ステップS112において、ループフィルタ111は、ステップS111の処理により得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行い、復号画像を生成する。
ステップS113において、フレームメモリ112は、ステップS112の処理により生成された復号画像、若しくは、ステップS111の処理により生成された再構成画像を記憶する。
ステップS114において、可逆符号化部106は、ステップS108の処理により量子化された直交変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。なお、可逆符号化部106は、予測に関する情報や、量子化に関する情報等を符号化し、ビットストリームに付加する。
ステップS115において、蓄積バッファ107は、ステップS114の処理により得られたビットストリームを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS116においてレート制御部117は、ステップS115の処理により蓄積バッファ107に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS116の処理が終了すると、符号化処理が終了される。
[インター動き予測処理の流れ]
次に、図14のフローチャートを参照して、図13のステップS104において実行されるインター動き予測処理の流れの例を説明する。
ステップS131において、重み係数決定部161は、当該スライスにおいて、重み付け予測を行うか否かを判定する。入力画像画素値と参照画像画素値とを比較し、輝度変化が発生しており、重み付け予測を行うと判定された場合、重み係数決定部161は、処理をステップS132に進める。ステップS132において、動き予測・補償部115、重み付け予測部121、および動きベクトル精度判定部122は、重み付け予測処理を行う。重み付け予測処理が終了すると、動き予測・補償部115、重み付け予測部121、および動きベクトル精度判定部122は、インター動き予測処理を終了し、処理を図13に戻す。
また、ステップS131において、重み付け予測を行わないと判定された場合、動き予測・補償部115、重み付け予測部121、および動きベクトル精度判定部122は、処理をステップS133に進める。
ステップS133において、動き探索部151は、各インター予測モードについて、動き探索を行う。ステップS134において、コスト関数値生成部152は、各インター予測モードについて、コスト関数値を算出する。
ステップS135において、モード判定部153は、最適インター予測モードを決定する。ステップS136において、動き補償部154は、動き補償を行い、最適インター予測モードで予測画像を生成する。
ステップS137において、動き補償部154は、生成した予測画像を予測画像選択部116に出力する。また、ステップS138において、動き補償部154は、最適モード情報および差分動き情報を可逆符号化部106に出力する。ステップS138の処理が終了すると、動き補償部154は、インター動き予測処理を終了し、処理を図13に戻す。
[重み付け予測処理の流れ]
次に、図15のフローチャートを参照して、図14のステップS132において実行される重み付け予測処理の流れの例を説明する。
ステップS151において、重み係数決定部161は、当該スライスについて重み係数を決定する。ステップS152において、動き探索部151は、各インター予測モードにちういて動き探索を行う。ステップS153において、動きベクトル精度判定部122は、ステップS152において生成された動き情報に基づいて、各インター予測モードについて動き精度を判定する。ステップS154において、動き精度調整部162は、各インター予測モードについて、動き精度を調整する。
ステップS155において、動き探索部151は、各インター予測モードについて、L0、L1それぞれの内挿処理を行う。ステップS156において、動き探索部151は、各インター予測モードについて、ステップS151において決定された重み係数を用いて、重み付け加算を行う。ステップS157において、動き探索部151は、各インター予測モードについて、丸め処理を行う。
ステップS158において、コスト関数値生成部152は、各インター予測モードについて、コスト関数値を算出する。ステップS159において、モード判定部153は、そのコスト関数値に基づいて、最適インター予測モードを決定する。
ステップS160において、動き補償部154は、最適インター予測モードについてL0、L1のそれぞれの内挿処理を行う。ステップS161において、動き補償部154は、最適インター予測モードについて重み付け加算を行う。ステップS162において、動き補償部154は、最適インター予測モードについて動き精度と重み付け加算に対する丸め処理を行う。
ステップS163において、動き補償部154は、生成した予測画像を予測画像選択部116に出力する。ステップS165において、動き補償部154は、最適モード情報、差分動き情報、および重み係数を可逆符号化部106に出力し、符号化させる。
ステップS165の処理が終了すると、動き補償部154は、重み付け予測処理を終了し、処理を図14に戻す。
以上のように各種処理を行うことにより、画像符号化装置100は、丸め処理を重み付け加算後に1回にまとめて行い、丸め誤差による画質劣化を抑制して演算精度を向上させることにより、符号化効率を向上させることができる。
<2.第2の実施の形態>
[画像復号装置]
次に、以上のように符号化された符号化データの復号について説明する。図16は、図1の画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。
図16に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
図16に示されるように画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、ループフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、重み付け予測部221および動きベクトル精度判定部222を有する。
蓄積バッファ201は伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部202に供給する。可逆復号部202は、蓄積バッファ201より供給された、図1の可逆符号化部106により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部202は、復号して得られた差分画像の量子化された係数データを、逆量子化部203に供給する。
また、可逆復号部202は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部211および動き予測・補償部212の内、選択されたと判定したモードの方に供給する。つまり、例えば、画像符号化装置100において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報であるイントラ予測情報がイントラ予測部211に供給される。また、例えば、画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報であるインター予測情報が動き予測・補償部212に供給される。
逆量子化部203は、可逆復号部202により復号されて得られた量子化された係数データを、図1の量子化部105の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部204に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で逆量子化部203から供給される係数データを逆直交変換する。逆直交変換部204は、この逆直交変換処理により、画像符号化装置100において直交変換される前の差分画像に対応する差分画像を得る。
逆直交変換されて得られた差分画像は、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、差分画像と予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像に対応する再構成画像を得る。演算部205は、その再構成画像をループフィルタ206に供給する。
ループフィルタ206は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ206は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ206は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ206が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ206が、図1の画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ206は、フィルタ処理結果である復号画像を画面並べ替えバッファ207およびフレームメモリ209に供給する。なお、このループフィルタ206によるフィルタ処理は省略することもできる。つまり、加算部205の出力が、フィルタ処理されずに、フレームメモリ209に格納されるようにすることもできる。例えば、イントラ予測部211は、この画像に含まれる画素の画素値を周辺画素の画素値として利用する。
画面並べ替えバッファ207は、供給された復号画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された復号画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ209は、供給される再構成画像や復号画像を記憶する。また、フレームメモリ209は、所定のタイミングにおいて、若しくは、イントラ予測部211や動き予測・補償部212等の外部の要求に基づいて、記憶している再構成画像や復号画像をイントラ予測部211や動き予測・補償部212に供給する。
イントラ予測部211は、図1のイントラ予測部114と基本的に同様の処理を行う。ただし、イントラ予測部211は、符号化の際にイントラ予測により予測画像が生成された領域に対してのみ、イントラ予測を行う。
動き予測・補償部212は、動き予測・補償部115と基本的に同様に、インター予測を行う。ただし、動き予測・補償部212は、可逆復号部202から供給されるインター予測情報に基づいて、符号化の際にインター予測が行われた領域に対してのみ、インター予測を行う。動き予測・補償部212は、生成した予測画像を選択部213に供給する。
選択部213は、イントラ予測部211から供給される予測画像、若しくは、動き予測・補償部212から供給される予測画像を演算部205に供給する。
[動き予測・補償部、重み付け予測部、および動きベクトル精度判定部]
図17は、図16の動き予測・補償部212、重み付け予測部221、および動きベクトル精度判定部222の主な構成例を示すブロック図である。
図17に示されるように、動き予測・補償部212は、重み係数バッファ251、差分動き情報バッファ252、動き情報再構築部253、動き情報バッファ254、および動き補償部255を有する。
また、重み付け予測部221は、重み係数決定部261および動き精度調整部262とを有する。
動き予測・補償部212は、基本的に、画像符号化装置100の動き予測・補償部115と同様の処理を行うが、動き予測・補償部212は、ビットストリームに含まれて符号化側から伝送された情報に基づいて、符号化の際にインター予測された領域についてのみインター予測を行う。
つまり、動き予測・補償部212は、可逆復号部202から供給される差分動き情報を用いて動き情報を再構築し、動き補償を行う。また、重み付け予測に用いられる重み係数もビットストリームに付加されて符号化側から供給される。
重み係数バッファ251は、可逆復号部202においてビットストリームより抽出された重み係数を取得して記憶し、所定のタイミングにおいて、若しくは、外部からの要求に基づいて、その記憶している重み係数を重み付け予測部221の重み係数決定部261に供給する。
差分動き情報バッファ252は、可逆復号部202においてビットストリームから抽出された差分動き情報を取得して記憶する。差分動き情報バッファ252は、所定のタイミングにおいて、若しくは、外部からの要求に基づいて、その記憶している差分動き情報を動き情報再構築部253に供給する。
動き情報再構築部253は、差分動き情報バッファ252から差分動き情報を取得すると、動き情報バッファ254から、その差分動き情報に対応する周辺動き情報を取得し、それらを用いて、当該領域の動き情報を再構築する。動き情報再構築部253は、再構築した動き情報を、動き補償部255および動きベクトル精度判定部222に供給する。
このように、動き情報は、符号化側から供給された差分動き情報を用いて再構築されるので、上述した丸め処理の省略は、動き補償部255による動き補償の際においてのみ行われる。
動きベクトル精度判定部222は、動きベクトル精度判定部122の場合と同様に、動き情報再構築部253から供給された動き情報の動き精度を判定する。動き精度調整部262は、動き精度調整部162の場合と同様に、その判定結果(動き精度)を取得し、その情報に基づいて、丸め制御情報を生成する。
また、重み係数決定部261は、重み係数バッファ251から取得した重み係数を動き補償部255に供給する。なお、この重み係数は、画像復号装置200において算出するようにしてもよい。例えば、Implicitモードの場合、重み係数決定部261は、当該スライスに対する重み係数を算出する。
動き情報バッファ254は、動き情報再構築部253において再構築された動き情報を取得し、記憶する。記憶した動き情報は、周辺領域の動き情報として、動き情報再構築部253に戻す。
動き補償部255は、動き情報再構築部253から供給される動き情報、重み係数決定部261から供給される重み係数、動き精度調整部262から供給される丸め制御情報、および、フレームメモリ209から供給される参照画像画素値を適宜用いて、動き補償を行い、予測画像を生成する。したがって、動き補償部255は、符号化時に重み付け予測された領域に対して重み付け予測を行い、予測画像を生成する。
動き補償における予測画像の生成は、図1の画像符号化装置100の場合と基本的に同様に行われる。つまり、動き補償部255は、重み付け予測において、丸め処理を重み付け加算後に1回にまとめて行う。このようにすることにより、動き補償部255は、丸め誤差による画質劣化を抑制して演算精度を向上させることができる。したがって、画像復号装置200は、符号化効率の向上を実現させることができる。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図18のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきたビットストリームを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給されるビットストリーム(符号化された差分画像情報)を復号する。
このとき、イントラ予測情報やインター予測情報等、ビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS203において、逆量子化部203は、ステップS202の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS204において逆直交変換部204は、ステップS203において逆量子化された直交変換係数を逆直交変換する。
ステップS205において、イントラ予測部211若しくは動き予測・補償部212は、供給された情報を用いて予測処理を行う。ステップS206において、選択部213は、ステップS205において生成された予測画像を選択する。ステップS207において、演算部205は、ステップS204において逆直交変換されて得られた差分画像情報に、ステップS206において選択された予測画像を加算する。これにより再構成画像が生成される。
ステップS208において、ループフィルタ206は、ステップS207において得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS209において、画面並べ替えバッファ207は、ステップS208においてフィルタ処理されて生成された復号画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS210において、D/A変換部208は、フレームの順序が並べ替えられた復号画像をD/A変換する。この復号画像が図示せぬディスプレイに出力され、表示される。
ステップS211において、フレームメモリ209は、ステップS209においてフィルタ処理されて得られた復号画像を記憶する。この復号画像は、インター予測処理において参照画像として利用される。
ステップS211の処理が終了すると、復号処理が終了される。
[予測処理の流れ]
次に、図19のフローチャートを参照して、図18のステップS205において実行される予測処理の流れの例を説明する。
予測処理が開始されると、イントラ予測部211は、ステップS231において、可逆復号部202から供給されるイントラ予測情報若しくはインター予測情報に基づいて、処理対象の領域が符号化の際にイントラ予測が行われたか否かを判定する。イントラ予測が行われたと判定された場合、イントラ予測部211は、処理をステップS332に進める。
この場合、イントラ予測部211は、ステップS232において、イントラ予測モード情報を取得し、ステップS233において、イントラ予測によって予測画像を生成する。予測画像が生成されると、イントラ予測部211は、予測処理を終了し、処理を図18に戻す。
また、ステップS231において、当該領域がインター予測が行われた領域であると判定した場合、処理をステップS234に進める。ステップS234において、動き予測・補償部212、重み付け予測部221、および動きベクトル精度判定部222は、インター動き予測処理を行う。インター動き予測処理が終了すると、動き予測・補償部212、重み付け予測部221、および動きベクトル精度判定部222は、予測処理を終了し、処理を図18に戻す。
[インター動き予測処理の流れ]
次に、図20のフローチャートを参照して、図19のステップS234において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、ステップS251において、重み係数決定部261は、当該スライスにおいて重み付け予測が行われたか否かを判定する。重み付け予測が行われたと判定した場合、重み係数決定部261は、処理をステップS252に進める。
ステップS252において、動き予測・補償部212、重み付け予測部221、および動きベクトル精度判定部222は、重み付け予測処理を行う。重み付け予測処理が終了すると、動き予測・補償部212、重み付け予測部221、および動きベクトル精度判定部222は、インター動き予測処理を終了し、処理を図19に戻す。
また、ステップS251において、重み付け予測が行われていないと判定した場合、重み係数決定部261は、処理をステップS253に進める。ステップS253において、差分動き情報バッファ252は、差分動き情報を取得する。
ステップS254において、動き情報再構築部253は、動き情報を再構築する。ステップS255において、動き補償部255は、再構築された動き情報を用いて、動き情報を再構築する。
ステップS256において、動き補償部255は、生成した予測画像を演算部205に出力する。また、ステップS257において、動き情報バッファ254は、再構築された動き情報を記憶する。ステップS257の処理が終了すると、動き情報バッファ254は、インター動き予測処理を終了し、処理を図19に戻す。
[重み付け予測処理の流れ]
次に、図21のフローチャートを参照して、図20のステップS252において実行される重み付け予測処理の流れの例を説明する。
ステップS271において、重み係数決定部261は、当該スライスに対する重み係数を決定する。ステップS272において、差分動き情報バッファ252は、差分動き情報を取得する。ステップS273において、動き情報再構築部253は、その差分動き情報を用いて、動き情報を再構築する。
ステップS274において、動き精度調整部262は、動きベクトル精度判定部222により判定された動き精度を調整する。
ステップS275において、動き補償部255は、L0、L1それぞれの内挿処理を行う。ステップS276において、動き補償部255は、L0とL1を、重み付け加算する。ステップS277において、動き補償部255は、丸め処理を行う。
ステップS278において、動き補償部255は、以上のように生成した予測画像を出力する。ステップS279において、動き情報バッファ254は、動き情報を記憶する。ステップS279の処理が終了すると、動き情報バッファ254は、重み付け予測処理を終了し、処理を図20に戻す。
以上のように各種処理を実行することにより、画像復号装置200は、丸め処理を重み付け加算後に1回にまとめて行い、丸め誤差による画質劣化を抑制して演算精度を向上させることができる。これにより、画像復号装置200は、符号化効率の向上を実現させることができる。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれるイントラ予測装置にも適用することができる。
<3.第3の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図22において、パーソナルコンピュータ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にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図22に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<4.第4の実施の形態>
[第1の応用例:テレビジョン受像機]
図23は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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の応用例:携帯電話機]
図24は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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の応用例:記録再生装置]
図25は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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の応用例:撮像装置]
図26は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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) L0とL1のそれぞれについて小数画素精度の動き補償を行う動き補償部と、
前記動き補償部による各演算結果を重み付け加算する重み付け加算部と、
前記重み付け加算部による演算結果に丸め処理を行う丸め処理部と
を備える画像処理装置。
(2) L0とL1の精度を判定する判定部と、
前記判定部の判定結果に基づいて、前記精度を調整する調整部と
をさらに備える前記(1)に記載の画像処理装置。
(3) 前記調整部は、L0とL1の一方に所定の係数を乗算することにより、一方の精度を他方の精度に合わせる
前記(2)に記載の画像処理装置。
(4) 前記調整部は、L0とL1の内、精度が大きい方を調整し、精度が小さい方に合わせる
前記(3)に記載の画像処理装置。
(5) 前記調整部は、L0の精度とL1の精度が互いに等しい場合、前記精度の調整を行わない
前記(3)または(4)に記載の画像処理装置。
(6) 前記調整部は、L0とL1の水平方向の精度および垂直方向の精度の両方に基づいて、前記精度を調整する
前記(3)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記丸め処理部は、動きベクトル精度調整のための乗算処理が2Xであり、重み付け予測処理のための除算処理が2Yであるとすると、前記重み付け加算部の演算処理後、2X+Yの除算処理を行う
前記(1)乃至(6)のいずれかに記載の画像処理装置。
(8) 前記重み付け加算部は、Explicit Weighted Predictionを行う
前記(1)乃至(7)に記載の画像処理装置。
(9) 前記重み付け加算部は、Implicit Weighted Predictionを行う
前記(1)乃至(8)に記載の画像処理装置。
(10) 前記重み付け加算部は、Intensity Compensationを行う
前記(1)乃至(9)に記載の画像処理装置。
(11) 画像処理装置の画像処理方法であって、
動き補償部が、L0とL1のそれぞれについて小数画素精度の動き補償を行い、
重み付け加算部が、各演算結果を重み付け加算し、
丸め処理部が、演算結果に丸め処理を行う
画像処理方法。