JP2011259093A - 画像復号化装置と画像符号化装置およびその方法とプログラム - Google Patents
画像復号化装置と画像符号化装置およびその方法とプログラム Download PDFInfo
- Publication number
- JP2011259093A JP2011259093A JP2010130287A JP2010130287A JP2011259093A JP 2011259093 A JP2011259093 A JP 2011259093A JP 2010130287 A JP2010130287 A JP 2010130287A JP 2010130287 A JP2010130287 A JP 2010130287A JP 2011259093 A JP2011259093 A JP 2011259093A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- unit
- block
- image
- resolution
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】画像の復号化や符号化を効率よく行うことができるようにする。
【解決手段】複数の可変長復号化部52によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。選択部522は、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する。予測動きベクトル設定部523は、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを予測動きベクトルに設定して、加算部525は、設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。
【選択図】 図14
【解決手段】複数の可変長復号化部52によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。選択部522は、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する。予測動きベクトル設定部523は、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを予測動きベクトルに設定して、加算部525は、設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。
【選択図】 図14
Description
この発明は、画像復号化装置と画像符号化装置およびその方法とプログラムに関する。詳しくは、画像の復号化や符号化を効率よく行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供する。
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEGなどの方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及しつつある。
特に、MPEG2(ISO/IEC 13818−2)は、汎用画像符号化方式として定義されており、飛び越し走査画像および順次走査画像の双方、並びに標準解像度画像および高精細画像を網羅する標準で、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4〜8Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。また、1920×1088画素を持つ高解像度の飛び越し走査画像であれば、18〜22Mbpsの符号量を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496−2としてその規格が国際標準に承認された。
さらに、近年、MPEG2やMPEG4といった符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されている。例えば、H.26Lをベースとして、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化が行われてH.264およびMPEG−4 Part10 (Advanced Video Coding、以下H.264/AVCと記す)という名で国際標準となっている。
また、H.264/AVCを用いて画像データをより効率的に符号化することが特許文献1等に開示されている。
ところで、従来の方法では、高い符号化効率の実現がはかられているが、さらに符号化効率の向上をより効率よく実現可能とすることが望まれている。
そこで、この発明では、画像の復号化や符号化を効率よく行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供することを目的とする。
この発明の第1の側面は、符号化されたストリームの復号化を行い差分動きベクトルを出力する可変長復号化部と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算部とを有する画像復号化装置にある。
この発明では、複数の可変長復号化部によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。また、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力が選択される。さらに、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルが予測動きベクトルに設定されて、この設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルが加算されて、復号化対象のブロックの動きベクトルが算出される。
この発明の第2の側面は、符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化工程と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算工程とを設けた画像復号化方法にある。
この発明の第3の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化手順と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算手順とを前記コンピュータで実行させるプログラムにある。
この発明の第4の側面は、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算部と、算出された差分動きベクトルの可変長符号化を行う可変長符号化部とを有する画像符号化装置にある。
この発明では、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルが、符号化対象のブロックの予測動きベクトルに設定される。また、符号化対象のブロックの動きベクトルと、設定された予測動きベクトルとの差分を示す差分動きベクトルが生成される。互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を行う複数の可変長符号化部で差分動きベクトルの符号化が行われて、符号化対象のブロックの階層に対応する可変長符号化部の出力が選択されて符号化ストリームに含められる。また、最上位階層のブロックサイズであるマクロブロックごとに、このマクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報が生成されて符号化ストリームに含められる。さらに、隣接する符号化済みのマクロブロックの動きベクトルが予測動きベクトルの候補とされて、この候補から符号化効率が最も高くなる動きベクトルが最上位階層の予測動きベクトルに設定される。
この発明の第5の側面は、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、前記符号化対象のブロックの動きベクトルと、前記動きベクトルとの差分を算出する差分演算工程と、前記算出された差分動きベクトルの符号化を行う可変長符号化工程とを設けた画像符号化方法にある。
この発明の第6の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、前記符号化対象のブロックの動きベクトルと、前記動きベクトルとの差分を算出する差分演算手順と、前記算出された差分動きベクトルの符号化を行う可変長符号化手順とを前記コンピュータで実行させるプログラムにある。
この発明の第7の側面は、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、前記参照画像の多重解像度解析結果を記憶するメモリと、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測部とを有する画像符号化装置にある。
この発明では、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築が行われる。また、動きベクトルの算出に用いる参照画像に対して多重解像度解析が行われて、参照画像の多重解像度解析結果が低解像度から高解像度の順に第1のメモリに記憶される。また、第1のメモリのメモリ容量を超える多重解像度解析結果は第2のメモリに記憶される。この第1のメモリに記憶されている多重解像度解析結果を用いて、画像の再構築が行われる。動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、第1のメモリに記憶されている多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出が行われる。さらに、高解像度符号化対象画像と、粗検出した動きベクトルに基づいて設定した選択領域の高解像度選択参照画像を用いて動きベクトルの詳細検出が行われる。また、画像の再構築に必要とする多重解像度解析結果が第1のメモリに記憶されていないとき、第2のメモリから必要とする多重解像度解析結果を読み出して高解像度選択参照画像の生成が行われる。
この発明の第8の側面は、符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築工程と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析工程と、前記多重解像度解析結果をメモリに記憶する記憶工程と、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築工程と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測工程とを設けた画像符号化方法にある。
この発明の第9の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築手順と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析手順と、前記多重解像度解析結果をメモリに記憶させる記憶手順と、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築手順と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測手順とを前記コンピュータで実行させるプログラム。
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
この発明によれば、符号化されたストリームの復号化を行い、差分動きベクトルが生成される。さらに、復号化対象のブロックを含む復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルが予測動きベクトルに設定されて、生成された差分動きベクトルと設定された予測動きベクトルが加算されて、復号化対象のブロックの動きベクトルが算出される。また、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルが、符号化対象のブロックの予測動きベクトルに設定されて、符号化対象のブロックの動きベクトルと設定された予測動きベクトルとの差分を示す差分動きベクトルの可変長符号化が行われる。このように、上位階層の動きベクトルを予測動きベクトルとして用いて予測精度を向上させることで、画像の符号化や復号化を効率よく行うことができる。
また、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築が行われる。さらに、参照画像に対して多重解像度解析が行われて、参照画像の多重解像度解析結果がメモリに記憶される。このメモリに記憶されている多重解像度解析結果を用いて、画像の再構築が行われて、動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、メモリに記憶されている多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出が行われる。また、高解像度符号化対象画像と、粗検出した動きベクトルに基づいて設定した選択領域の高解像度選択参照画像を用いて動きベクトルの詳細検出が行われる。このように低解像度の画像を用いて動きベクトルの粗検出を行い、高解像度符号化対象画像と粗検出結果を用いて設定した選択領域の高解像選択参照画像を用いて動きベクトルの詳細検出が行われるので、動きベクトルの検出のためにメモリから読み出すデータ量が少なく、効率よく動きベクトルを検出できることから画像の符号化を効率よく行うことができる
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.画像符号化装置の構成
2.可逆符号化部の構成
3.画像符号化装置の動作
4.画像復号化装置の構成
5.可逆復号化部の構成
6.画像復号化装置の動作
7.画像符号化装置の他の構成
8.動きベクトルの検出動作
9.ソフトウェア処理の場合
10.電子機器に適用した場合
1.画像符号化装置の構成
2.可逆符号化部の構成
3.画像符号化装置の動作
4.画像復号化装置の構成
5.可逆復号化部の構成
6.画像復号化装置の動作
7.画像符号化装置の他の構成
8.動きベクトルの検出動作
9.ソフトウェア処理の場合
10.電子機器に適用した場合
<1.画像符号化装置の構成>
画像データの符号化では、符号化対象のブロックの動きベクトルと予測動きベクトルとの差分を取り、その差分動きベクトルを符号化してストリームに含めることで、符号量の削減が行われている。ここで、H.264/AVC方式のように隣接ブロックの動きベクトルの中央値(メディアン)を予測動きベクトルとして用いる場合、必ずしも中央値が最適な予測動きベクトルとは限らない。
画像データの符号化では、符号化対象のブロックの動きベクトルと予測動きベクトルとの差分を取り、その差分動きベクトルを符号化してストリームに含めることで、符号量の削減が行われている。ここで、H.264/AVC方式のように隣接ブロックの動きベクトルの中央値(メディアン)を予測動きベクトルとして用いる場合、必ずしも中央値が最適な予測動きベクトルとは限らない。
図1は、予測動きベクトルの従来の設定方法を説明するための図である。例えば、図1の(A)に示すように、予測ブロックサイズ(動き補償ブロックサイズ)が小さいとき、隣接ブロックの動きベクトルMV_A,MV_B,MV_Cは符号化対象のブロックと近接した領域の動きベクトルとなり予測精度が高い。すなわち、中央値MV_mdと符号化対象のブロックの動きベクトルMVobとの差が少ない。しかし、図1の(B)に示すように、予測ブロックサイズが大きいとき、隣接ブロックでは符号化対象のブロックから離れている領域も含まれることになる。このため、中央値MV_mdと符号化対象のブロックの動きベクトルMVobとの差が大きい場合が生じて、予測ブロックサイズが小さい場合に比べて、予測精度が低下するおそれがある。
また、大きなサイズのブロック(上位階層のブロック)について検出した動きベクトルと、この上位階層のブロック内に含まれるサイズの小さいブロック(下位階層のブロック)について検出した動きベクトルは、下位階層のブロックが上位階層のブロックに含まれているため、下位階層の動きベクトルは、上位階層の動きベクトルと近似している場合が多い。
そこで、本発明の画像符号化装置では、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを予測動きベクトルとして用いることで、予測精度の向上をはかり、画像の符号化を効率よく行うことができるようにする。
図2は、画像符号化装置の構成を示している。画像符号化装置10は、アナログ/ディジタル変換部(A/D変換部)11、画面並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。さらに、画像符号化装置10は、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ24、フレームメモリ27、イントラ予測部31、動き予測・補償部32、予測画像・最適モード選択部33を備えている。
A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。
画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部13とイントラ予測部31と動き予測・補償部32に出力する。
減算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部33で選択された予測画像データが供給される。減算部13は、画面並べ替えバッファ12から出力された画像データと予測画像・最適モード選択部33から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部14に出力する。
直交変換部14は、減算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことにより得られた変換係数データを量子化部15に出力する。
量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18からレート制御信号が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づき量子化パラメータ(量子化スケール)を切り替えて、量子化データのビットレートを変化させる。
可逆符号化部16には、量子化部15から出力された量子化データと、後述するイントラ予測部31と動き予測・補償部32および予測画像・最適モード選択部33から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを示すマクロブロックタイプ、予測モード、参照ピクチャ情報等が含まれる。可逆符号化部16は、量子化データに対して例えば可変長符号化または算術符号化等により符号化処理を行い、符号化ストリームを生成して蓄積バッファ17に出力する。また、可逆符号化部16は、予測モード情報を可逆符号化して、符号化ストリームの例えばヘッダ情報に付加する。さらに、可逆符号化部16は、符号化対象の画像のブロックである最適モードの予測ブロックに対して、この予測ブロックを含む1つ上の階層のブロックについて検出した動きベクトルを予測動きベクトルとして設定して、予測動きベクトルと符号化対象のブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行って、符号化ストリームに付加する。また、可逆符号化部16は、後述するコスト関数値の算出においても、各予測ブロックに対して予測動きベクトルを設定して、予測ブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行うことで、差分動きベクトルの符号化データを含めた発生符号量を算出できるようにする。
蓄積バッファ17は、可逆符号化部16からの符号化ストリームを蓄積する。また、蓄積バッファ17は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部15に出力する。レート制御部18は、例えば蓄積バッファ17から空き容量を示す情報を取得する。レート制御部18は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部18は蓄積バッファ17の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部23に出力する。
加算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部33から供給された予測画像データを加算して参照画像データを生成して、この参照画像データをデブロッキングフィルタ24とイントラ予測部31に出力する。
デブロッキングフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ24は、加算部23から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データをフレームメモリ27に出力する。
フレームメモリ27は、デブロッキングフィルタ24から供給されたフィルタ処理後の参照画像データとを保持する。
イントラ予測部31は、画面並べ替えバッファ12から出力された符号化対象画像の画像データと加算部23から供給された参照画像データを用いて、候補となるすべてのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部31は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、イントラ予測部31は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部16に出力する。
動き予測・補償部32は、マクロブロックに対応するすべての予測ブロックサイズ(動き補償ブロックサイズ)で動き予測・補償処理を行う。動き予測・補償部32は、画面並べ替えバッファ12から読み出されたマクロブロックの画像における各予測ブロックサイズの画像ごとに、フレームメモリ27から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部32は、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像の生成を行う。
また、動き予測・補償部32は、予測動きベクトルの候補ごとにコスト関数値を算出して可逆符号化部16に通知する。動き予測・補償部32は、各予測ブロックサイズで算出したコスト関数値に基づき、コスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部32は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、動き予測・補償部32は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部16に出力する。なお、動き予測・補償部32は、インター予測モードとして、スキップドマクロブロックやダイレクトモードの予測も行う。
予測画像・最適モード選択部33は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部33は、最適モードで生成した予測画像データを減算部13と加算部23に出力する。さらに、予測画像・最適モード選択部33は、最適モードの予測モード情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部33は、スライス単位でイントラ予測またはインター予測を行う。
<2.可逆符号化部の構成>
図3は、可逆符号化部における動きベクトルに関する構成を示している。可逆符号化部16は、予測動きベクトル設定部161、差分演算部163、可変長符号化部164-1〜164-n、選択部165を備えている。また、予測動きベクトル設定部161は、動きベクトル記憶部161aと動きベクトル選択部161bを備えている。
図3は、可逆符号化部における動きベクトルに関する構成を示している。可逆符号化部16は、予測動きベクトル設定部161、差分演算部163、可変長符号化部164-1〜164-n、選択部165を備えている。また、予測動きベクトル設定部161は、動きベクトル記憶部161aと動きベクトル選択部161bを備えている。
動きベクトル記憶部161aは、予測ブロックサイズが最大である最上位階層において、予測ブロックサイズが最大であるときの符号化対象のブロック(マクロブロック)に隣接した符号化済みの隣接ブロックの動きベクトルを最上位階層の予測動きベクトルの候補として記憶する。なお、動きベクトル記憶部161aは、ダイレクトモードに対応するため、参照ピクチャにおける符号化対象と同一のブロックの動きベクトルも記憶してもよい。また、動きベクトル記憶部161aは、動き予測・補償部32から供給された各階層のブロックの動きベクトルを記憶する。
動きベクトル選択部161bは、予測画像・最適モード選択部33から供給された最適モードの予測モード情報に基づき、符号化対象のブロックである最適モードの予測ブロックがいずれの階層であるか判別する。動きベクトル選択部161bは、符号化対象のブロックが最上位階層であるとき、動き予測・補償部32から供給されたコスト関数値に基づき、予測動きベクトルの候補から符号化効率が最良となる予測動きベクトルを設定する。また、動きベクトル選択部161bは、符号化対象のブロックが最上位階層でないとき、判別した階層よりも1つサイズが上の階層であって、符号化対象のブロックを含むブロックについて検出されている動きベクトルを予測動きベクトルとして設定する。
差分演算部163は、符号化対象のブロックの動きベクトルと予測動きベクトル設定部161で設定された予測動きベクトルとの差分動きベクトルを算出する。
可変長符号化部164-1〜164-nは、差分演算部163で算出された差分動きベクトルの可変長符号化を行う。可変長符号化部164-1〜164-nは、互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を差分動きベクトルに対して行う。
ここで、動きベクトルは、図1を用いて上述のように、ブロックサイズが小さいときはブロックサイズが大きい場合に比べて動きベクトルのばらつきが小さくなると考えられる。このため、差分動きベクトルについても、差分動きベクトルの長さが短い発生確率は、ブロックサイズが大きいときよりも、ブロックサイズが小さい方が多くなる。すなわち、差分動きベクトルの長さと確率密度の関係は、例えば図4に示すようになる。
したがって、可変長符号化部164-1〜164-nは、上位階層のブロックサイズの可変長符号化に比べて、差分動きベクトルの長さが短い発生確率が多いため、差分動きベクトルの長さが短い場合に割り当てる符号量を少なくする。例えば、可変長符号化部164-1は、最上位階層に対して符号化効率が最も高くなるように最適化したVLCテーブル例えば図4における破線の特性に対して符号化効率が最も高くなるように最適化したVLCテーブルを用いて可変長符号化を行う。また、可変長符号化部164-nは最下位階層に対して符号化効率が最も高くなるように最適化したVLCテーブル例えば図4における実線の特性に対して符号化効率が最も高くなるように最適化したVLCテーブルを用いて可変長符号化を行う。このように、階層に応じて可変長符号化を行うことで、符号化効率を高くできる。
選択部165は、可変長符号化部164-1〜164-nから供給された符号化データから最適モードの予測ブロックサイズに応じた符号化データを選択して、符号化ストリームのヘッダ情報に付加する。
階層構造情報生成部166は、予測画像・最適モード選択部33から供給された最適モードの予測ブロックサイズに基づき、最上位階層のブロックサイズであるマクロブロックごとに、このマクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報を生成する。階層構造情報生成部166は、生成した階層構造情報を符号化ストリームのヘッダ情報に付加する。
また、図示せずも、可逆符号化部16は、画像復号化装置で予測動きベクトルを生成できるようにするため、最上位階層の予測動きベクトルとしていずれの候補が選択されたかを示す予測動きベクトル情報を符号化ストリームのヘッダ情報に付加する。なお、最上位階層については、予測動きベクトル情報と差分動きベクトルの符号化データに替えて、最上位階層のブロックの動きベクトルを符号化して符号化ストリームに含めるようにしてもよい。
<3.画像符号化装置の動作>
次に、画像符号化処理動作について説明する。図5は、画像符号化処理で用いる予測ブロックサイズを示している。H.264/AVC方式では、16×16画素のマクロブロックに対して、図5の(C)(D)に示すように16×16画素〜4×4画素の予測ブロックサイズが規定されている。また、H.264/AVC方式よりも拡張された大きさのマクロブロックを用いる場合、例えば32×32画素のマクロブロックを用いる場合、例えば図5の(B)に示す予測ブロックサイズが規定される。また、例えば64×64画素のマクロブロックを用いる場合、例えば図5の(A)に示す予測ブロックサイズが規定される。
次に、画像符号化処理動作について説明する。図5は、画像符号化処理で用いる予測ブロックサイズを示している。H.264/AVC方式では、16×16画素のマクロブロックに対して、図5の(C)(D)に示すように16×16画素〜4×4画素の予測ブロックサイズが規定されている。また、H.264/AVC方式よりも拡張された大きさのマクロブロックを用いる場合、例えば32×32画素のマクロブロックを用いる場合、例えば図5の(B)に示す予測ブロックサイズが規定される。また、例えば64×64画素のマクロブロックを用いる場合、例えば図5の(A)に示す予測ブロックサイズが規定される。
なお、図5において、「Skip/direct」は、動き予測・補償部32において、スキップドマクロブロックやダイレクトモードを選択したときの予測ブロックサイズであることを示している。また、「ME」は動き補償ブロックサイズであることを示している。また、「P8×8」は、マクロブロックのサイズを小さくした下位の階層でさらに分割できることを示している。
画像符号化装置では、動きベクトルの符号化においてブロックサイズに応じた階層化を行う。なお、説明を容易とするため、階層化では、例えば32×32画素のブロックサイズを最上位階層(第1階層)として、このブロックを上下左右に2分割して得られる16×16画素のブロックをさらに1つ下の階層(第2階層)のブロックとする。さらに、16×16画素のブロックを上下左右に2分割して得られる8×8画素のブロックをさらに1つ下の階層(第3階層)のブロック、8×8画素のブロックを上下左右に2分割して得られる4×4画素のブロックを最下位階層(第4階層)のブロックとした場合について例示する。
図6は、画像符号化処理動作を示すフローチャートである。ステップST11において、A/D変換部11は入力された画像信号をA/D変換する。
ステップST12において画面並べ替えバッファ12は、画像並べ替えを行う。画面並べ替えバッファ12は、A/D変換部11より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップST13において減算部13は、予測誤差データの生成を行う。減算部13は、ステップST12で並び替えられた画像の画像データと予測画像・最適モード選択部33で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップST14において直交変換部14は、直交変換処理を行う。直交変換部14は、減算部13から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
ステップST15において量子化部15は、量子化処理を行う。量子化部15は、変換係数データを量子化する。量子化に際しては、後述するステップST25の処理で説明されるように、レート制御が行われる。
ステップST16において逆量子化部21は、逆量子化処理を行う。逆量子化部21は、量子化部15により量子化された変換係数データを量子化部15の特性に対応する特性で逆量子化する。
ステップST17において逆直交変換部22は、逆直交変換処理を行う。逆直交変換部22は、逆量子化部21により逆量子化された変換係数データを直交変換部14の特性に対応する特性で逆直交変換する。
ステップST18において加算部23は、参照画像データの生成を行う。加算部23は、予測画像・最適モード選択部33から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、参照画像データを生成する。
ステップST19においてデブロッキングフィルタ24は、フィルタ処理を行う。デブロッキングフィルタ24は、加算部23より出力された参照画像データをフィルタリングしてブロック歪みを除去する。
ステップST20においてフレームメモリ27は、参照画像データを記憶する。フレームメモリ27は、フィルタ処理後の参照画像データを記憶する。
ステップST21においてイントラ予測部31と動き予測・補償部32は、それぞれ予測処理を行う。すなわち、イントラ予測部31は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部32は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図7を参照して後述するが、この処理により、候補となるすべての予測モードでの予測処理がそれぞれ行われ、候補となるすべての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部33に供給される。
ステップST22において予測画像・最適モード選択部33は、予測画像データの選択を行う。予測画像・最適モード選択部33は、イントラ予測部31および動き予測・補償部32より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部33は、決定した最適モードの予測画像データを選択して、減算部13と加算部23に供給する。この予測画像が、上述したように、ステップST13,ST18の演算に利用される。なお、選択した予測画像データに対応する予測モード情報は、可逆符号化部16に出力される。
ステップST23において可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、量子化部15より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップST22において可逆符号化部16に入力された予測モード情報(例えばマクロブロックタイプや予測モード、参照ピクチャ情報等を含む)や差分動きベクトルなども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報等の可逆符号化データが付加される。
ステップST24において蓄積バッファ17は、蓄積処理を行う。蓄積バッファ17は、可逆符号化部16から出力される符号化ストリームを蓄積する。この蓄積バッファ17に蓄積された符号化ストリームは、適宜読み出されて伝送路を介して復号側に伝送される。
ステップST25においてレート制御部18は、レート制御を行う。レート制御部18は、蓄積バッファ17で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ17で発生しないように、量子化部15の量子化動作のレートを制御する。
次に、図7のフローチャートを参照して、図6のステップST21における予測処理を説明する。
ステップST31において、イントラ予測部31はイントラ予測処理を行う。イントラ予測部31は処理対象のブロックの画像を、候補となるすべてのイントラ予測モードでイントラ予測する。なお、イントラ予測では、加算部23から供給された参照画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となるすべてのイントラ予測モードでイントラ予測が行われ、候補となるすべてのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、すべてのイントラ予測モードの中から、符号化効率が最良となる1つのイントラ予測モードが選択される。
ステップST32において、動き予測・補償部32はインター予測処理を行う。動き予測・補償部32は、フレームメモリ27に記憶されているフィルタ処理後の参照画像データを用いて、候補となるすべてのインター予測モード(すべての予測ブロックサイズ)のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となるすべてのインター予測モードで予測処理が行われ、候補となるすべてのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、すべてのインター予測モードの中から、符号化効率が最良となる1つのインター予測モードが選択される。
次に、図7のステップST31におけるイントラ予測処理について図8のフローチャートを参照して説明する。
ステップST41でイントラ予測部31は、各予測モードのイントラ予測を行う。イントラ予測部31は、加算部23から供給された参照画像データを用いて、イントラ予測モードごとに予測画像データを生成する。
ステップST42でイントラ予測部31は、各予測モードに対するコスト関数値を算出する。コスト関数値としては、H.264/AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているように、High Complexity モードか、Low Complexity モードのいずれの手法に基づいて行う。
すなわち、High Complexity モードにおいては、ステップST42の処理として、候補となるすべての予測モードに対して、仮に可逆符号化処理までを行い、次の式(1)で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=D+λ・R ・・・(1)
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー(歪み)を示している。Rは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
Cost(Mode∈Ω)=D+λ・R ・・・(1)
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー(歪み)を示している。Rは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータDおよびRを算出するため、候補となるすべての予測モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
一方、Low Complexity モードにおいては、ステップST42の処理として、候補となるすべての予測モードに対して、予測画像の生成、および予測モード情報などのヘッダビットまでを算出し、次の式(2)で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=D+QPtoQuant(QP)・Header_Bit ・・・(2)
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー(歪み)を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
Cost(Mode∈Ω)=D+QPtoQuant(QP)・Header_Bit ・・・(2)
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー(歪み)を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
すなわち、Low Complexity Modeにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexity Modeより低い演算量での実現が可能である。
ステップST43でイントラ予測部31は、最適イントラ予測モードを決定する。イントラ予測部31は、ステップST42において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
次に、図9のフローチャートを参照して、図7のステップST32のインター予測処理について説明する。
ステップST51で動き予測・補償部32は、各予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、動き予測・補償部32は、各予測モードの処理対象のブロックについて、動きベクトルと参照画像をそれぞれ決定する。
ステップST52で動き予測・補償部32は、各予測モードに対して動き補償を行う。動き予測・補償部32は、各予測モード(各予測ブロックサイズ)について、ステップST51で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
ステップST53で動き予測・補償部32は、各インター予測モードに対して、コスト関数値の算出を行う。動き予測・補償部32は、上述した式(1)または式(2)を用いてコスト関数値の算出を行う。コスト関数値の算出では、選択部165で選択された符号化情報等を含めた発生符号量を用いる。なお、インター予測モードに対するコスト関数値の算出には、H.264/AVC方式において定められているSkip ModeおよびDirect Modeのコスト関数値の評価も含まれる。
ステップST54で動き予測・補償部32は、最適インター予測モードを決定する。動き予測・補償部32は、ステップST53において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つの予測モードを選択して最適インター予測モードに決定する。
次に、可逆符号化部16で行われる動きベクトルに関する符号化処理について、図10のフローチャートを用いて説明する。なお、図10では、図5において、最も大きいブロックサイズ例えば32×32画素のサイズを第1階層(最上位階層)とする。また、16×16画素のサイズを第2階層、8×8画素のサイズを第3階層、最も小さいブロックサイズ例えば4×4画素のサイズを第4階層(最下位階層)とする。
ステップST61で可逆符号化部16は、最上位階層のブロックについて候補から予測動きベクトルを設定する。可逆符号化部16は、予測動きベクトルの候補、すなわち隣接ブロックの動きベクトルMV_A,MV_B,MV_C,MV_co,MV_0からコスト関数値が最小となる動きベクトルを、第1階層の予測動きベクトルに設定してステップST62に進む。
ステップST62で可逆符号化部16は、最上位階層のブロックについて差分動きベクトルを算出してステップST63に進む。
ステップST63で可逆符号化部16は、予測ブロックが第1階層であるか判別する。可逆符号化部16は、最適モードの予測ブロックが第1階層であるときステップST70に進み、第1階層よりも下層であるときステップST64に進む。
ステップST64で可逆符号化部16は、予測ブロックが第2階層であるか判別する。可逆符号化部16は、予測ブロックが第2階層であるときステップST65に進み、第2階層よりも下層であるときステップST66に進む。
ステップST65で可逆符号化部16は、第1階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST69に進む。
ステップST66で可逆符号化部16は、予測ブロックが第3階層であるか判別する。可逆符号化部16は、予測ブロックが第3階層であるときステップST67に進み、第3階層よりも下層すなわち最下位階層であるときステップST68に進む。
ステップST67で可逆符号化部16は、第2階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST69に進む。
ステップST67で可逆符号化部16は、第3階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST69に進む。
ステップST69で可逆符号化部16は、差分動きベクトルを算出する。可逆符号化部16は、各ブロックの動きベクトルと予測動きベクトルとの差分を示す差分動きベクトルを算出してステップST70に進む。
ステップST70で可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、VLCテーブルや算術符号化を用いて、差分動きベクトルの可逆符号化処理を行う。この可逆符号化処理では、例えば階層ごとに設けられているVLCテーブルを用いて符号化処理を行う。また、可逆符号化部16は、後述する階層構造情報を生成する。
図11は、図10の符号化処理を行ったときの動作を例示している。例えば、図11の(A)に示すように予測ブロックが32×32画素のサイズである第1階層のブロック(マクロブロック)である場合、隣接ブロックの動きベクトルから、コスト関数値が最小となる動きベクトルが予測動きベクトルとされる。
第1階層のブロックBK0を上下左右に2分割した図11の(B)に示す第2階層では、第1階層のブロックBK0で検出された動きベクトルMV0を予測動きベクトルとする。したがって、第2階層のブロックBK00の差分動きベクトルdMV00は、「MV00−MV0=dMV00」となる。同様に、第2階層のブロックBK01,BK02,BK03の差分動きベクトルdMV01,dMV02,dMV03は、「MV01−MV0=dMV01」「MV02−MV0=dMV02」「MV03−MV0=dMV03」となる。
第2階層のブロックを上下左右に2分割した図11の(C)に示す第3階層では、第2階層のブロックで検出された動きベクトルを予測動きベクトルとする。例えば、第2階層のブロックBK02を上下左右に2分割した第3階層のブロックでは、ブロックBK02について検出された動きベクトルMV02を予測動きベクトルとする。したがって、第3階層のブロックBK020の差分動きベクトルdMV020は、「MV020−MV02=dMV020」となる。同様に、第3階層のブロックBK021,BK022,BK023の差分動きベクトルdMV021,dMV022,dMV023は、「MV021−MV02=dMV021」「MV022−MV02=dMV022」「MV023−MV02=dMV023」となる。
第3階層を上下左右に2分割した図11の(D)(E)に示す第4階層では、第3階層のブロックで検出された動きベクトルを予測動きベクトルとする。例えば、第3階層のブロックBK021を上下左右に2分割した第4階層のブロックでは、ブロックBK021について検出された動きベクトルMV021を予測動きベクトルとする。したがって、第3階層のブロックBK0210の差分動きベクトルdMV0210は、「MV0210−MV021=dMV0210」となる。同様に、第4階層のブロックBK0211,BK0212,BK0213の差分動きベクトルdMV0211,dMV0212,dMV0213は、「MV0211−MV021=dMV0211」「MV0212−MV021=dMV0212」「MV0213−MV021=dMV0213」となる。
図12は、階層構造情報を説明するための図である。階層構造情報は、当該ブロックを分割した下位階層のブロックが存在するときは「1」、下位階層のブロックが存在しないときは「0」として情報の生成を行う。
例えば図11,12に示すようにブロックの階層化が行われている場合、第1階層であるマクロブロックに対して下位階層のブロックが生じていることから第1階層の構造を示す情報は「1」となる。第2階層では、左下のブロックに対して下位階層のブロックが生じている。したがって、ブロック順序を左上,右上,左下,右下の順序とすると、第2階層の構造を示す情報は「0010」となる。第3階層では、右上のブロックに対して下位階層のブロックが生じている。したがって、ブロック順序を左上,右上,左下,右下の順序とすると、第3階層の構造を示す情報は「0100」となる。さらに、第4階層では、下位階層のブロックが生じていないことから第4階層の構造を示す情報は「0000」となる。このように各階層で得られた情報を最上位階層から最下位階層まで順に並べることで、図12に示す階層構造を示す階層構造情報「1001001000000」を生成できる。
可逆符号化部16は、階層ごとに算出された差分動きベクトルの可逆符号化を行い、得られた符号化データを階層構造情報に対応するブロック順序として、階層構造情報や最上位階層における予測動きベクトル選択情報と共にストリーム情報に含める。また、可逆符号化部16では、階層ごとに最適化された例えばVLCテーブルを用いて可逆符号化を行う。
このように、本願発明の画像符号化装置および方法によれば、ブロックサイズの大きい1つ上の上位階層のブロックで検出された動きベクトルが予測動きベクトルに設定される。したがって、上位階層を分割した下位階層のブロックでは、差分動きベクトルの小さいブロックが多くなることから、符号化効率が向上されて、画像の符号化を効率よく行うことができる。また、動きベクトルの伝送に要する符号量の削減に伴い、量子化データのビットレートを高めることが可能となるので画質を改善できる。
<4.画像復号化装置の構成>
次に、符号化ストリームの復号化を行い、再生画像データを生成する場合について説明する。画像符号化装置10で生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
次に、符号化ストリームの復号化を行い、再生画像データを生成する場合について説明する。画像符号化装置10で生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
図13は、画像復号化装置の構成を示している。画像復号化装置50は、蓄積バッファ51、可逆復号化部52、逆量子化部53、逆直交変換部54、加算部55、デブロッキングフィルタ56、画面並べ替えバッファ57、ディジタル/アナログ変換部(D/A変換部)58を備えている。さらに、画像復号化装置50は、フレームメモリ61、イントラ予測部62、動き補償部63、セレクタ64を備えている。
蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。可逆復号化部52は、蓄積バッファ51より供給された符号化ストリームを、図2の可逆符号化部16の符号化方式に対応する方式で復号化する。
可逆復号化部52は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部62や動き補償部63、デブロッキングフィルタ56に出力する。また、可逆復号化部52は、復号化対象のブロックと復号化済みの隣接ブロックの動きベクトルを用いて予測動きベクトルの候補を設定する。可逆復号化部52は、符号化ストリームを可逆復号化して得られた予測動きベクトル選択情報に基づき、予測動きベクトルの候補から予測動きベクトルを選択して、選択した動きベクトルを最上位階層の予測動きベクトルとする。また、可逆復号化部52は、符号化ストリームを可逆復号化して得られた差分動きベクトルに予測動きベクトルを加算して復号化対象のブロックの動きベクトルを算出して、動き補償部63に出力する。また、可逆復号化部52は、最上位階層よりもサイズの小さい階層では、1つ上の階層の動きベクトルを予測動きベクトルとして用いる。
逆量子化部53は、可逆復号化部52で復号された量子化データを、図2の量子化部15の量子化方式に対応する方式で逆量子化する。逆直交変換部54は、図2の直交変換部14の直交変換方式に対応する方式で逆量子化部53の出力を逆直交変換して加算部55に出力する。
加算部55は、逆直交変換後のデータとセレクタ64から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ56とイントラ予測部62に出力する。
デブロッキングフィルタ56は、加算部55から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ61に供給し蓄積させるとともに、画面並べ替えバッファ57に出力する。
画面並べ替えバッファ57は、画像の並べ替えを行う。すなわち、図2の画面並べ替えバッファ12により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、D/A変換部58に出力される。
D/A変換部58は、画面並べ替えバッファ57から供給された画像データをD/A変換し、図示せぬディスプレイに出力することで画像を表示させる。
フレームメモリ61は、デブロッキングフィルタ24から供給されたフィルタ処理後の復号画像データを保持する。
イントラ予測部62は、可逆復号化部52から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ64に出力する。
動き補償部63は、可逆復号化部52から供給された予測モード情報や動きベクトルに基づいて動き補償を行い、予測画像データを生成してセレクタ64に出力する。すなわち、動き補償部63は、可逆復号化部52から供給された動きベクトルおよび参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して、動きベクトルに基づき動き補償を行い、予測ブロックサイズの予測画像データを生成する。
セレクタ64は、イントラ予測部62で生成された予測画像データを加算部55に供給する。また、セレクタ64は、動き補償部63で生成された予測画像データを加算部55に供給する。
<5.可逆復号化部の構成>
図14は、可逆復号化部における動きベクトルに関する構成を示している。可逆復号化部52は、可変長復号化部521-1〜521-n、選択部522、予測動きベクトル設定部523、加算部525を備えている。また、予測動きベクトル設定部523は、動きベクトル記憶部523aと動きベクトル選択部523bを備えている。
図14は、可逆復号化部における動きベクトルに関する構成を示している。可逆復号化部52は、可変長復号化部521-1〜521-n、選択部522、予測動きベクトル設定部523、加算部525を備えている。また、予測動きベクトル設定部523は、動きベクトル記憶部523aと動きベクトル選択部523bを備えている。
可変長復号化部521-1は、可変長符号化部164-1で行われた符号化に対応する可変長復号化を行う。同様に、可変長復号化部521-2〜521-nは、可変長符号化部164-2〜164-nで行われた符号化に対応する可変長復号化を行う。可変長復号化部521-1〜521-nは、VLCテーブルまたは算術符号を用いて符号化ストリームの可逆可変長復号化を行い、差分動きベクトルを生成する。
選択部522は、階層構造情報に基づき、階層に対応する復号化部から出力された差分動きベクトルを選択して加算部525に出力する。
動きベクトル記憶部523aは、予測ブロックサイズが最大である最上位階層において、予測ブロックサイズが最大であるときの復号化対象のブロックに隣接した復号化済みの隣接ブロックの動きベクトルを最上位階層の予測動きベクトルの候補として記憶する。なお、動きベクトル記憶部523aは、ダイレクトモードに対応するため、参照ピクチャにおける復号化対象と同一のブロックの動きベクトルも記憶してもよい。また、動きベクトル記憶部523aは、復号化対象のブロックを含む上位階層の動きベクトルを記憶する。
動きベクトル選択部523bは、階層構造情報に基づき階層に応じた予測動きベクトルを動きベクトル記憶部523aから読み出して加算部525に出力する。また、予測動きベクトル情報に基づき、予測動きベクトルの候補から動きベクトルを選択して、最上位階層のブロックに対する予測動きベクトルとして加算部525に出力する。
加算部525は、選択部522で選択された差分動きベクトルに、予測動きベクトル設定部523から出力された予測動きベクトルを加算することで、復号化対象のブロックの動きベクトルを算出して動き補償部63に出力する。また算出した動きベクトルを動きベクトル記憶部523aに記憶して、下位階層の予測動きベクトルとして用いることができるようにする。なお、符号化ストリームに最上位階層のブロックの動きベクトルを示す符号化データが含まれている場合には、可変長復号化によって得られた動きベクトルを動きベクトル記憶部523aに記憶して、下位階層の予測動きベクトルとして用いることができるようにする。
<6.画像復号化装置の動作>
次に、図15のフローチャートを参照して、画像復号化装置50で行われる画像復号処理動作について説明する。
次に、図15のフローチャートを参照して、画像復号化装置50で行われる画像復号処理動作について説明する。
ステップST81で蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。ステップST82で可逆復号化部52は、可逆復号化処理を行う。可逆復号化部52は、蓄積バッファ51から供給される符号化ストリームを復号化する。すなわち、図2の可逆符号化部16により符号化された各ピクチャの量子化データが得られる。また、可逆復号化部52、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報をデブロッキングフィルタ56やセレクタ64に供給する。さらに、可逆復号化部52は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部62に出力する。また、可逆復号化部52は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部63に出力する。また、可逆復号化部52は、復号化対象のブロックの動きベクトルを動き補償部63に出力する。
ステップST83において逆量子化部53は、逆量子化処理を行う。逆量子化部53は、可逆復号化部52により復号された量子化データを、図2の量子化部15の特性に対応する特性で逆量子化する。
ステップST84において逆直交変換部54は、逆直交変換処理を行う。逆直交変換部54は、逆量子化部53により逆量子化された変換係数データを、図2の直交変換部14の特性に対応する特性で逆直交変換する。
ステップST85において加算部55は、復号画像データの生成を行う。加算部55は、逆直交変換処理を行うことにより得られたデータと、後述するステップST89で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
ステップST86においてデブロッキングフィルタ56は、フィルタ処理を行う。デブロッキングフィルタ56は、加算部55より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
ステップST87においてフレームメモリ61は、復号画像データの記憶処理を行う。
ステップST88においてイントラ予測部62と動き補償部63は、予測処理を行う。イントラ予測部62と動き補償部63は、可逆復号化部52から供給される予測モード情報に対応してそれぞれ予測処理を行う。
すなわち、可逆復号化部52からイントラ予測の予測モード情報が供給された場合、イントラ予測部62は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号化部52からインター予測の予測モード情報が供給された場合、動き補償部63は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
ステップST89において、セレクタ64は予測画像データの選択を行う。すなわち、セレクタ64は、イントラ予測部62から供給された予測画像と動き補償部63で生成された予測画像データを選択して加算部55に供給して、上述したように、ステップST85において逆直交変換部54の出力と加算させる。
ステップST90において画面並べ替えバッファ57は、画像並べ替えを行う。すなわち画面並べ替えバッファ57は、図2の画像符号化装置10の画面並べ替えバッファ12により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップST91において、D/A変換部58は、画面並べ替えバッファ57からの画像データをD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
次に、可逆復号化部52で行われる動きベクトルに関する復号化処理について、図16のフローチャートを用いて説明する。ステップST101で可逆復号化部52は、階層構造情報を取得する。可逆復号化部52は、蓄積バッファ51から階層構造情報を取得して、第1階層のブロックサイズのブロックがどのような階層のブロックで構成されているか判別する。
ステップST102で可逆復号化部52は、可逆符号化部16に対応して構成されており、画像符号化装置と対応する複数のVLCテーブル等を用いて可逆復号化処理を行い、差分動きベクトルを生成する。
ステップST103で可逆復号化部52は、差分動きベクトルの選択を行う。可逆復号化部52は、複数のVLCテーブル等を用いて生成された差分動きベクトルから、復号対象のブロックの階層に対応した差分動きベクトルを選択する。
ステップST104で可逆復号化部52は、最上位階層の動きベクトルを算出する。可逆復号化部52は、最上位階層に対する予測動きベクトルの候補から、符号化ストリームに含まれている予測動きベクトル選択情報に基づき予測動きベクトルを設定する。さらに、可逆復号化部52は、設定した予測動きベクトルと最上位階層の差分動きベクトルを加算して、最上位階層のブロックの動きベクトルを算出してステップST105に進む。
ステップST105で可逆復号化部52は、復号対象のブロックが第1階層のブロックであるか否か判別する。可逆復号化部52は、復号対象のブロックが第1階層のブロックであるとき符号化対象のブロックについての動きベクトルの復号化処理を終了する。また、可逆復号化部52は、復号対象のブロックが第1階層のブロックでないときステップST106に進む。可逆復号化部52は、階層構造情報に基づき復号対象のブロックがいずれの階層のブロックであるか判別する。可逆復号化部52は、第1階層の構造を示す情報が「0」で第1階層の分割が行われていないことを示しているとき、符号化対象のブロックについての動きベクトルの復号化処理を終了する。可逆復号化部52は、第1階層の構造を示す情報が「1」で第1階層の分割が行われていることを示しているとき、ステップST106に進む。
ステップST106で可逆復号化部52は、復号対象のブロックが第2階層のブロックであるか否か判別する。可逆復号化部52は、復号対象のブロックが第2階層のブロックであるときステップST107に進み、第2階層のブロックでないときステップST108に進む。可逆復号化部52は、第2階層の構造を示す情報が「0」で第2階層の分割が行われていないことを示しているときはステップST107に進む。また、可逆復号化部52は、第2階層の構造を示す情報が「1」で第2階層の分割が行われていることを示しているときはステップST108に進む。
ステップST107で可逆復号化部52は、第1階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST111に進む。
ステップST108で可逆復号化部52は、復号対象のブロックが第3階層のブロックであるか否か判別する。可逆復号化部52は、復号対象のブロックが第3階層のブロックであるときステップST109に進み、第2階層のブロックでないときステップST110に進む。可逆復号化部52は、第3階層の構造を示す情報が「0」で第3階層の分割が行われていないことを示しているときはステップST109に進む。また、可逆復号化部52は、第3階層の構造を示す情報が「1」で第3階層の分割が行われていることを示しているときはステップST110に進む。
ステップST109で可逆復号化部52は、第2階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST111に進む。
ステップST110で可逆復号化部52は、第3階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST111に進む。
ステップST111で可逆復号化部52は、差分動きベクトルと予測動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。
次に、図17のフローチャートを参照して、図15のステップST88の予測処理について説明する。
ステップST121で可逆復号化部52は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部52は、可逆復号化を行うことにより得られた予測モード情報がイントラ予測モード情報であるとき、予測モード情報をイントラ予測部62に供給してステップST122に進む。また、可逆復号化部52は、予測モード情報がイントラ予測モード情報でないとき、予測モード情報を動き補償部63に供給してステップST123に進む。
ステップST122でイントラ予測部62は、イントラ予測処理を行う。イントラ予測部62は、加算部55から供給された復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。
ステップST123で動き補償部63は、インター予測処理を行う。動き補償部63は、可逆復号化部52からの予測モード情報や動きベクトルに基づいて、フレームメモリ61から供給された復号画像データの動き補償を行う。さらに、動き補償部63は、動き補償により生成した予測画像データをセレクタ64に出力する。
このように、本願発明の画像復号化装置および方法では、画像符号化において、上位階層のブロックで検出された動きベクトルを予測動きベクトルに設定して、符号化効率や画質の改善が行われても、符号化ストリームを正しく復号化することができる。
<7.画像符号化装置の他の構成>
次に、画像符号化装置の他の構成について説明する。画像符号化において、符号化対象のブロックの画像と参照画像を比較して動きベクトルの算出を行う場合、フレームメモリから参照画像の画像データを読み出す必要がある。また、参照画像の画像データは、データ量が大きいことからフレームメモリとしてDRAM(Dynamic Random Access Memory)が使用されることが多い。しかし、DRAMは大容量である一方、読み出しあるいは書き込みを行う際の遅延が大きく、不連続な読み出しあるいは書き込みには転送速度が遅くなる問題がある。このため、動きベクトルの算出に時間を要してしまう。
次に、画像符号化装置の他の構成について説明する。画像符号化において、符号化対象のブロックの画像と参照画像を比較して動きベクトルの算出を行う場合、フレームメモリから参照画像の画像データを読み出す必要がある。また、参照画像の画像データは、データ量が大きいことからフレームメモリとしてDRAM(Dynamic Random Access Memory)が使用されることが多い。しかし、DRAMは大容量である一方、読み出しあるいは書き込みを行う際の遅延が大きく、不連続な読み出しあるいは書き込みには転送速度が遅くなる問題がある。このため、動きベクトルの算出に時間を要してしまう。
そこで、画像符号化装置の他の構成では、参照画像の画像データに対して多重解像度解析を行い、多重解像度解析結果を、SRAM(Static Random Access Memory)等を用いたキャッシュメモリに記憶する。また、キャッシュメモリに記憶された多重解像度解析結果を利用して、データ量が少ない低解像度の画像を生成する。画像符号化装置は、低解像度の画像を用いて動き予測を行い、動きベクトルの粗検出を行う。さらに、画像符号化装置は、動きベクトルの粗検出の結果に基づき選択領域を設定して、この選択領域の高解像度画像を用いて動きベクトルの詳細検出を行う。このような動きベクトルの検出を繰り返すことで、メモリから読み出す画像データのデータ量を削減しても動きベクトルを高精度に検出できるようにする。
図18は、画像符号化装置の他の構成を示している。なお、図18において、図2と対応する部分については同一符号を付している。
画像符号化装置10aは、アナログ/ディジタル変換部(A/D変換部)11、画面並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。また、画像符号化装置10aは、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ24、多重解像度解析部25、キャッシュメモリ26、フレームメモリ27、多重解像度再構築部28、多重解像度解析・再構築部29を有している。さらに、画像符号化装置10aは、イントラ予測部31、動き予測・補償部32a、予測画像・最適モード選択部33を備えている。
A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。
画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部13とイントラ予測部31と動き予測・補償部32aに出力する。
減算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部33で選択された予測画像データが供給される。減算部13は、画面並べ替えバッファ12から出力された画像データと予測画像・最適モード選択部33から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部14に出力する。
直交変換部14は、減算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことにより得られた変換係数データを量子化部15に出力する。
量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18からレート制御信号が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づき量子化パラメータ(量子化スケール)を切り替えて、量子化データのビットレートを変化させる。
可逆符号化部16には、量子化部15から出力された量子化データと、後述するイントラ予測部31と動き予測・補償部32および予測画像・最適モード選択部33から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを示すマクロブロックタイプ、予測モード、参照ピクチャ情報等が含まれる。可逆符号化部16は、量子化データに対して例えば可変長符号化または算術符号化等により符号化処理を行い、符号化ストリームを生成して蓄積バッファ17に出力する。また、可逆符号化部16は、予測モード情報を可逆符号化して、符号化ストリームの例えばヘッダ情報に付加する。さらに、可逆符号化部16は、符号化対象の画像のブロックである最適モードの予測ブロックに対して、この予測ブロックを含む1つ上の階層のブロックについて検出した動きベクトルを予測動きベクトルとして設定して、予測動きベクトルと符号化対象のブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行って、符号化ストリームに付加する。また、可逆符号化部16は、後述するコスト関数値の算出においても、各予測ブロックについて予測動きベクトルを設定して、予測ブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行うことで、差分動きベクトルの符号化データを含めた発生符号量を算出できるようにする。
蓄積バッファ17は、可逆符号化部16からの符号化ストリームを蓄積する。また、蓄積バッファ17は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部15に出力する。レート制御部18は、例えば蓄積バッファ17から空き容量を示す情報を取得する。レート制御部18は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部18は蓄積バッファ17の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部23に出力する。
加算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部33から供給された予測画像データを加算して参照画像データを生成して、この参照画像データをデブロッキングフィルタ24とイントラ予測部31に出力する。
デブロッキングフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ24は、加算部23から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データを多重解像度解析部25に出力する。
多重解像度解析部25は、参照画像データに対して、多重解像度解析、例えば離散ウェーブレット変換を用いたサブバンド分解を行い、多重解像度解析結果をキャッシュメモリ26に出力する。多重解像度解析部25は、例えば5/3可逆フィルタを用いて画像のウェーブレット変換を行う。
図19は、1次元のサブバンド分解と再構築を説明するための図である。サブバンド分解では、図19の(A)に示すように、変換対象画像0Lに対して高域通過フィルタ(HPF)711によるフィルタ処理と間引き部(ダウンサンプラ)712による間引き処理を行い高域成分画像1Hを生成する。また、変換対象画像0Lに対して低域通過フィルタ(LPF)713によるフィルタ処理と間引き部714による間引き処理を行い、低域成分画像1Lを生成する。さらに、低域成分画像1Lに対して高域通過フィルタ715によるフィルタ処理と間引き部716による間引き処理を行い、高域成分画像2Hを生成する。また、低域成分画像1Lに対して低域通過フィルタ717によるフィルタ処理と間引き部718による間引き処理を行い、低域成分画像2Lを生成する。このように、フィルタ処理と間引き処理を行うことで、解像度の異なる画像を生成できる。さらに、図19の(A)に示す処理を水平方向および垂直方向に対して行うと、2次元空間のサブバンド分解結果は図20に示すようになる。
キャッシュメモリ26は、多重解像度解析結果を低解像度から高解像度の順に記憶する。また、キャッシュメモリは、メモリ容量を超える多重解像度解析結果をフレームメモリ27に記憶させる。
多重解像度再構築部28は、解像度の異なる参照画像を再構築して動き予測・補償部32aに出力する。多重解像度再構築部28は、例えば5/3可逆フィルタを用いて逆ウェーブレット変換を行う。多重解像度再構築部28は、低域成分画像と高域成分画像の合成によって画像の再構築を行う。画像の再構築では、図19の(B)に示すように、低域成分画像2Lに対して補間部(アップサンプラ)721による補間処理と低域通過フィルタ722によるフィルタ処理、高域成分画像2Hに対して補間部723による補間処理と高域通過フィルタ724によるフィルタ処理をそれぞれ行う。さらに、フィルタ処理後の画像を加算部725で加算して低域成分画像1Lを生成する。また、低域成分画像1Lに対して補間部726による補間処理と低域通過フィルタ727によるフィルタ処理、高域成分画像1Hに対して補間部728による補間処理と高域通過フィルタ729によるフィルタ処理をそれぞれ行う。さらに、フィルタ処理後の画像を加算部730で加算してサブバンド分割前の画像0Lを生成する。このように、補間処理とフィルタ処理を行うことで、解像度の異なる画像からサブバンド分解前の画像を再構築できる。さらに、図19の(B)に示す処理を水平方向および垂直方向に対して行うと、図20に示すサブバンド分解後の画像を分割前の画像に戻すことができる。例えば図20に示す画像2LL,2HL,2LH,2HHを合成して画像1LLを生成できる。また、画像1LL,1HL,1LH,1HHを合成して画像0LLを再構築できる。
多重解像度解析・再構築部29は、符号化対象画像に対して、多重解像度解析部25と同様な多重解像度解析例えば離散ウェーブレット変換を行う。また、多重解像度解析・再構築部29は、多重解像度再構築部28と同様に多重解像度解析結果を選択的に用いて画像の再構築を行い、解像度の異なる符号化対象画像を生成して動き予測・補償部32aに出力する。
イントラ予測部31は、画面並べ替えバッファ12から出力された符号化対象画像の画像データと加算部23から供給された参照画像データを用いて、候補となるすべてのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部31は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、イントラ予測部31は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部16に出力する。
動き予測・補償部32aは、マクロブロックに対応するすべての予測ブロックサイズ(動き補償ブロックサイズ)で動き予測・補償処理を行う。動き予測・補償部32aは、画面並べ替えバッファ12から読み出されたマクロブロックの画像における各予測ブロックサイズの画像ごとに、多重解像度再構築部28と多重解像度解析・再構築部29から供給された画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部32aは、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像の生成を行う。
また、動き予測・補償部32aは、予測動きベクトルの候補ごとにコスト関数値を算出して可逆符号化部16に通知する。動き予測・補償部32aは、各予測ブロックサイズで算出したコスト関数値に基づき、コスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部32aは、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、動き予測・補償部32aは、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部16に出力する。なお、動き予測・補償部32aは、インター予測モードとして、スキップドマクロブロックやダイレクトモードの予測も行う。
予測画像・最適モード選択部33は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32aから供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部33は、最適モードで生成した予測画像データを減算部13と加算部23に出力する。さらに、予測画像・最適モード選択部33は、最適モードの予測モード情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部33は、スライス単位でイントラ予測またはインター予測を行う。
<8.動きベクトルの検出動作>
図21は、動き予測・補償部32aにおける動きベクトルの検出動作を示すフローチャートである。なお、多重解像度解析では、図20に示すサブバンド分解が行われたとする。
図21は、動き予測・補償部32aにおける動きベクトルの検出動作を示すフローチャートである。なお、多重解像度解析では、図20に示すサブバンド分解が行われたとする。
ステップST131で動き予測・補償部32aは、低解像度符号化対象画像を取得する。動き予測・補償部32aは、例えば多重解像度解析・再構築部29から最も低解像度である画像2LLに相当する符号化対象のブロックの画像を低解像度符号化対象画像として取得する。
ステップST132で動き予測・補償部32aは、低解像度参照画像を取得する。動き予測・補償部32aは、例えば多重解像度再構築部28から符号化対象ブロックに対応する画像2LLの参照画像を取得する。
ステップST133で動き予測・補償部32aは、動きベクトルを検出する。動き予測・補償部32aは、符号化対象ブロックの画像と参照画像とでブロックマッチング等を行い、符号化対象ブロックの動きベクトルを検出する。
ステップST134で動き予測・補償部32aは、動きベクトルの検出に用いた画像が最も高解像度の画像であるか判別する。動き予測・補償部32aは、動きベクトルの検出に用いた画像が最も高解像度の画像であるとき、動きベクトルの検出動作を終了する。また、動き予測・補償部32aは、動きベクトルの検出に用いた画像が最も高解像度の画像ではないときステップST135に進む。
ステップST135で動き予測・補償部32aは、高解像度符号化対象画像を取得する。動き予測・補償部32aは、多重解像度解析・再構築部29から、前回の動きベクトルの検出で用いた画像よりも高解像度である符号化対象画像を取得する。例えば、前回の動きベクトルの検出で画像2LLが用いられている場合、画像2LLよりも高解像度である画像1LLに相当する符号化対象のブロックの画像を、高解像度符号化対象画像として取得する。
ステップST136で動き予測・補償部32aは、高解像度選択参照画像を取得する。動き予測・補償部32aは、前回の動きベクトルの検出で検出された動きベクトルに基づき選択領域を設定する。また、動き予測・補償部32aは、前回の動きベクトルの検出で用いた画像よりも高解像度である選択領域の参照画像を高解像度選択参照画像として取得する。例えば、前回の動きベクトルの検出で画像2LLが用いられている場合、画像2LLよりも高解像度である画像1LLに相当する選択領域の参照画像を高解像度選択参照画像として取得して、ステップST133に戻り、高解像度の画像を用いて動きベクトルをさらに精度よく検出する。
また、画像1LLは、最も高解像度の画像でないことから、さらに高解像度の画像すなわち符号化対象ブロックの画像0LLを取得する。また、画像1LLの解像度の画像を用いて検出した動きベクトルに基づき選択領域を設定する。さらに、動き予測・補償部32aは、前回の動きベクトルの検出で用いた画像よりも高解像度である選択領域の参照画像を取得する。この取得した画像を用いることで、動きベクトルをさらに精度よく検出できるようになる。
このように、図21の処理を行うと、多重解像度解析結果を選択的に用いて、最も低解像度の画像の取得や選択領域の高解像度の画像の再構築を行うことで、動きベクトルを精度よく検出できる。したがって、メモリから読み出す画像データのデータ量を削減しても動きベクトルを高精度に検出できるようになるので、データの読み出しの遅延や転送速度の遅れ等の影響を軽減して、画像の符号化を効率よく行うことができる。
また、キャッシュメモリ26は、多重解像度解析結果を低解像度から高解像度の順に記憶して、メモリ容量を超える多重解像度解析結果をフレームメモリ27に記憶させる。したがって、最も低解像度の画像の取得や選択領域の高解像度の画像の再構築を速やかに行うことが可能となり、動きベクトルの検出を効率よく行うことができる。
<9.ソフトウェア処理の場合>
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
<10.電子機器に適用した場合>
また、以上においては、符号化方式/復号方式としてH.264/AVC方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
また、以上においては、符号化方式/復号方式としてH.264/AVC方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
さらに、本発明は、例えば、MPEG,H.26x等のように、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV(テレビジョン)、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に、あるいは、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
上述した画像符号化装置10や画像復号化装置50は、任意の電子機器に適用することができる。以下にその例について説明する。
図22は、本発明を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置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に本願の画像復号化装置(画像復号化方法)の機能が設けられる。このため、放送局側で本願の画像符号化装置の機能を用いることにより、符号化効率や画質の改善がはかられて符号化ストリームの生成が行われても、テレビジョン装置で符号化ストリームの復号化を正しく行うことができる。
図23は、本発明を適用した携帯電話機の概略構成を例示している。携帯電話機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に本願の画像符号化装置(画像符号化方法)や画像復号化装置(画像復号化方法)の機能が設けられる。したがって、画像データの通信を行う際に、符号化効率や画質を改善することができる。
図24は、本発明を適用した記録再生装置の概略構成を例示している。記録再生装置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に画像復号化装置(画像復号化方法)の機能が設けられて、符号化効率や画質を改善して映像の記録再生を効率よく行うことができる。
図25は、本発明を適用した撮像装置の概略構成を例示している。撮像装置96は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置96は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
光学ブロック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に本願の画像符号化装置(画像符号化方法)や画像復号化装置(画像復号化方法)の機能が設けられる。したがって、撮像画像をメモリ部967や記録メディア等に記録する際に、符号化効率や画質の改善をはかり撮像画像の記録再生を効率よく行うことができる。
さらに、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
この発明の画像復号化装置と画像符号化装置およびその方法とプログラムでは、上位階層の動きベクトルを予測動きベクトルとして用いて予測精度を向上させることで、画像の復号化や符号化を効率よく行うことができる。また、動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、参照画像に対して多重解像度解析wを行うことにより得られた多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出を行い、高解像度符号化対象画像と粗検出結果を用いて設定した選択領域の高解像選択参照画像を用いて動きベクトルの詳細検出が行われるので、動きベクトルの検出のためにメモリから読み出すデータ量が少なく、効率よく動きベクトルを検出できることから画像の符号化を効率よく行うことができる
したがって、MPEG、H.26x等のように、ブロック単位で符号化を行うことにより得られた画像情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像復号化装置や画像符号化装置等に適している。
したがって、MPEG、H.26x等のように、ブロック単位で符号化を行うことにより得られた画像情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像復号化装置や画像符号化装置等に適している。
10,10a・・画像符号化装置、11・・・A/D変換部、12,57・・・画面並べ替えバッファ、13,166・・・減算部、14・・・直交変換部、15・・・量子化部、16・・・可逆符号化部、17,51・・・蓄積バッファ、18・・・レート制御部、21,53・・・逆量子化部、22,54・・・逆直交変換部、23,55,525・・・加算部、24,56・・・デブロッキングフィルタ、25・・・多重解像度解析部、26・・・キャッシュメモリ、27,61・・・フレームメモリ、28・・・多重解像度再構築部、29・・・多重解像度解析・再構築部、31,62・・・イントラ予測部、32,32a・・・動き予測・補償部、33・・・予測画像・最適モード選択部、50・・・画像復号化装置、52・・・可逆復号化部、58・・・D/A変換部、62・・・動き補償部、64,946・・・セレクタ、90・・・テレビジョン装置、92・・・携帯電話機、94・・・記録再生装置、96・・・撮像装置、161,523・・・予測動きベクトル設定部、161a,523a・・・動きベクトル記憶部、161b,523b・・・動きベクトル選択部、164-1〜164-n・・・可変長符号化部、165,522・・・選択部、166・・・階層構造情報生成部、521-1〜521-n・・・可変長復号化部、901、921・・・アンテナ、902、941・・・チューナ、903・・・デマルチプレクサ、904,947・・・デコーダ、905・・・映像信号処理部、906・・・表示部、907・・・音声信号処理部、908・・・スピーカ、909、942、966・・・外部インタフェース部、910、931,949,970・・・制御部、911,932,971・・・ユーザインタフェース部、912,933,972・・・バス、922・・・通信部、923・・・音声コーデック、924・・・スピーカ、925・・・マイクロホン、926・・・カメラ部、927・・・画像処理部、928・・・多重分離部、929・・・記録再生部、930・・・表示部、943・・・エンコーダ、944・・・HDD部、945・・・ディスクドライブ、948、969・・・OSD部、961・・・光学ブロック、962・・・撮像部、963・・・カメラ信号処理部、964・・・画像データ処理部、965・・・表示部、967・・・メモリ部、968・・・メディアドライブ
Claims (15)
- 符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化部と、
復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、
前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算部と
を有する画像復号化装置。 - 複数の前記可変長復号化部と、
前記可変長復号化部から出力される差分動きベクトルを選択する選択部をさらに有し、
前記複数の可変長復号化部は、互いに異なる階層に応じて可変長符号化に対応する可変長復号化を前記ストリームに対して行い、
前記選択部は、復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する請求項1記載の画像復号化装置。 - 符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化工程と、
復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、
前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算工程と
を設けた画像復号化方法。 - 画像符号化をコンピュータで実行させるプログラムであって、
符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化手順と、
復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、
前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算手順と
を前記コンピュータで実行させるプログラム。 - 符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、
前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算部と、
前記差分動きベクトルの可変長符号化を行う可変長符号化部と
を有する画像符号化装置。 - 最上位階層のブロックサイズであるマクロブロックごとに、該マクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報を生成する階層構造情報生成部をさらに有する請求項5記載の画像符号化装置。
- 複数の前記可変長符号化部と、
前記複数の可変長符号化部から出力される符号化データを選択する選択部をさらに有し、
前記複数の可変長符号化部は、互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を前記差分動きベクトルに対して行い、
前記選択部は、符号化対象のブロックの階層に対応する可変長符号化部の出力を選択する請求項6記載の画像符号化装置。 - 前記予測動きベクトル設定部は、隣接する符号化済みのマクロブロックの動きベクトルを用いて予測動きベクトルの候補として、該候補から符号化効率が最も高くなる動きベクトルを選択して前記最上位階層の予測動きベクトルに設定する請求項6記載の画像符号化装置。
- 符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、
前記参照画像の多重解像度解析結果を記憶するメモリと、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部とをさらに有し、
前記動きベクトルの検出を行う動き予測部は、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う請求項5記載の画像符号化装置。 - 符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、
前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算工程と、
前記差分動きベクトルの符号化を行う可変長符号化工程と
を設けた画像符号化方法。 - 画像符号化をコンピュータで実行させるプログラムであって、
符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、
前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算手順と、
前記差分動きベクトルの符号化を行う可変長符号化手順と
を前記コンピュータで実行させるプログラム。 - 符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、
前記参照画像の多重解像度解析結果を記憶するメモリと、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部と、
前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測部と
を有する画像符号化装置。 - 前記メモリは、第1のメモリと第2のメモリで構成して、
前記第1のメモリは、多重解像度解析結果を低解像度から高解像度の順に記憶して、該第1のメモリのメモリ容量を超える多重解像度解析結果を前記第2のメモリに記憶させて、
前記多重解像度再構築部は、前記第1のメモリに記憶されている前記多重解像度解析結果を用いて画像の再構築を行い、必要とする前記多重解像度解析結果が前記第1のメモリに記憶されていないとき、前記第2のメモリから必要とする前記多重解像度解析結果を読み出す請求項12記載の画像符号化装置。 - 符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築工程と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析工程と、
前記多重解像度解析結果をメモリに記憶する記憶工程と、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築工程と、
前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測工程と
を設けた画像符号化方法。 - 画像符号化をコンピュータで実行させるプログラムであって、
符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築手順と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析手順と、
前記多重解像度解析結果をメモリに記憶させる記憶手順と、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築手順と、
前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測手順と
を前記コンピュータで実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010130287A JP2011259093A (ja) | 2010-06-07 | 2010-06-07 | 画像復号化装置と画像符号化装置およびその方法とプログラム |
US13/701,318 US20130077886A1 (en) | 2010-06-07 | 2011-05-25 | Image decoding apparatus, image coding apparatus, image decoding method, image coding method, and program |
PCT/JP2011/061973 WO2011155331A1 (ja) | 2010-06-07 | 2011-05-25 | 画像復号化装置と画像符号化装置およびその方法とプログラム |
CN2011800272373A CN102948150A (zh) | 2010-06-07 | 2011-05-25 | 图像解码装置、图像编码装置、及其方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010130287A JP2011259093A (ja) | 2010-06-07 | 2010-06-07 | 画像復号化装置と画像符号化装置およびその方法とプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011259093A true JP2011259093A (ja) | 2011-12-22 |
Family
ID=45097939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010130287A Withdrawn JP2011259093A (ja) | 2010-06-07 | 2010-06-07 | 画像復号化装置と画像符号化装置およびその方法とプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130077886A1 (ja) |
JP (1) | JP2011259093A (ja) |
CN (1) | CN102948150A (ja) |
WO (1) | WO2011155331A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104768007A (zh) * | 2010-06-07 | 2015-07-08 | 数码士控股有限公司 | 编码/解码高分辨率图像的方法和执行该方法的装置 |
CN103152573A (zh) | 2013-03-15 | 2013-06-12 | 惠州Tcl移动通信有限公司 | 一种移动终端与智能电视间图像帧传输的方法及*** |
CN103338377A (zh) * | 2013-07-11 | 2013-10-02 | 青岛海信信芯科技有限公司 | 用于确定运动估计中最优运动矢量的方法 |
KR102216128B1 (ko) * | 2013-07-24 | 2021-02-16 | 삼성전자주식회사 | 움직임 벡터 결정 방법 및 그 장치 |
EP3413568A4 (en) * | 2016-02-01 | 2019-05-08 | Sharp Kabushiki Kaisha | PREDICTIVE IMAGE GENERATING DEVICE, MOVING IMAGE DECODING DEVICE, AND MOVING IMAGE ENCODING DEVICE |
CN107289951B (zh) * | 2017-07-31 | 2020-05-12 | 电子科技大学 | 一种基于惯性导航的室内移动机器人定位方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3189258B2 (ja) * | 1993-01-11 | 2001-07-16 | ソニー株式会社 | 画像信号符号化方法および画像信号符号化装置、並びに画像信号復号化方法および画像信号復号化装置 |
EP1018840A3 (en) * | 1998-12-08 | 2005-12-21 | Canon Kabushiki Kaisha | Digital receiving apparatus and method |
KR100631777B1 (ko) * | 2004-03-31 | 2006-10-12 | 삼성전자주식회사 | 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치 |
KR100587561B1 (ko) * | 2004-04-08 | 2006-06-08 | 삼성전자주식회사 | 모션 스케일러빌리티를 구현하는 방법 및 장치 |
CN101023672A (zh) * | 2004-07-12 | 2007-08-22 | 诺基亚公司 | 在可调整视频编码中用于运动预测的***和方法 |
US8374238B2 (en) * | 2004-07-13 | 2013-02-12 | Microsoft Corporation | Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video |
KR100678949B1 (ko) * | 2004-07-15 | 2007-02-06 | 삼성전자주식회사 | 비디오 코딩 및 디코딩 방법, 비디오 인코더 및 디코더 |
JP2006108795A (ja) * | 2004-09-30 | 2006-04-20 | Sanyo Electric Co Ltd | 画像符号化方法 |
FR2876860A1 (fr) * | 2004-10-20 | 2006-04-21 | Thomson Licensing Sa | Procede de codage hierarchique d'images video |
CN101204092B (zh) * | 2005-02-18 | 2010-11-03 | 汤姆森许可贸易公司 | 从低分辨率图像导出高分辨率图像的编码信息的方法以及实施所述方法的编码和解码设备 |
JP4401336B2 (ja) * | 2005-08-31 | 2010-01-20 | 三洋電機株式会社 | 符号化方法 |
FR2897213A1 (fr) * | 2006-02-08 | 2007-08-10 | Thomson Licensing Sas | Procede de codage par blocs d'images d'une sequence d'images video |
KR101356613B1 (ko) * | 2009-08-21 | 2014-02-06 | 에스케이텔레콤 주식회사 | 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치 |
CN106162171B (zh) * | 2010-04-13 | 2020-09-11 | Ge视频压缩有限责任公司 | 解码器及方法、编码方法 |
US20140218473A1 (en) * | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
-
2010
- 2010-06-07 JP JP2010130287A patent/JP2011259093A/ja not_active Withdrawn
-
2011
- 2011-05-25 WO PCT/JP2011/061973 patent/WO2011155331A1/ja active Application Filing
- 2011-05-25 US US13/701,318 patent/US20130077886A1/en not_active Abandoned
- 2011-05-25 CN CN2011800272373A patent/CN102948150A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20130077886A1 (en) | 2013-03-28 |
CN102948150A (zh) | 2013-02-27 |
WO2011155331A1 (ja) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6477939B2 (ja) | テレビジョン装置、携帯電話機、再生装置、カメラ、および画像処理方法 | |
WO2011155364A1 (ja) | 画像復号化装置と画像符号化装置およびその方法とプログラム | |
WO2012017858A1 (ja) | 画像処理装置と画像処理方法 | |
JP5831587B2 (ja) | 画像処理装置および方法 | |
US8208549B2 (en) | Decoder, encoder, decoding method and encoding method | |
WO2012063878A1 (ja) | 画像処理装置と画像処理方法 | |
WO2012063604A1 (ja) | 画像処理装置と画像処理方法 | |
WO2011155331A1 (ja) | 画像復号化装置と画像符号化装置およびその方法とプログラム | |
JPWO2010035734A1 (ja) | 画像処理装置および方法 | |
US20110229049A1 (en) | Image processing apparatus, image processing method, and program | |
JP2011259205A (ja) | 画像復号化装置と画像符号化装置およびその方法とプログラム | |
JP2011135326A (ja) | 画像処理装置および方法、並びにプログラム | |
JP2011151683A (ja) | 画像処理装置および方法 | |
JP2013150164A (ja) | 符号化装置および符号化方法、並びに、復号装置および復号方法 | |
WO2012056924A1 (ja) | 画像処理装置と画像処理方法 | |
JPWO2010035735A1 (ja) | 画像処理装置および方法 | |
JP5387520B2 (ja) | 情報処理装置と情報処理方法 | |
WO2012077533A1 (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: 20130903 |