以下、図を参照して本発明の実施の形態について説明する。
[画像符号化装置の構成例]
図4は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
この画像符号化装置51は、例えば、4:2:0フォーマットの入力信号の画像が入力され、H.264及びMPEG-4 Part10(Advanced Video Coding)(以下H.264/AVCと記す)方式をベースに、入力された画像を圧縮符号化する。
図4の例において、画像符号化装置51は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部75、色差ブロック判別部76、色差動きベクトル決定部77、予測画像選択部78、およびレート制御部79により構成されている。
A/D変換部61は、入力された画像をA/D変換し、画面並べ替えバッファ62に出力し、記憶させる。画面並べ替えバッファ62は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)に応じて、符号化のためのフレームの順番に並べ替える。
演算部63は、画面並べ替えバッファ62から読み出された画像から、予測画像選択部78により選択されたイントラ予測部74からの予測画像または動き予測・補償部75からの予測画像を減算し、その差分情報を直交変換部64に出力する。直交変換部64は、演算部63からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部65は直交変換部64が出力する変換係数を量子化する。
量子化部65の出力となる、量子化された変換係数は、可逆符号化部66に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
可逆符号化部66は、イントラ予測を示す情報をイントラ予測部74から取得し、インター予測モードを示す情報などを動き予測・補償部75から取得する。なお、イントラ予測を示す情報およびインター予測を示す情報は、以下、それぞれ、イントラ予測モード情報およびインター予測モード情報とも称する。
可逆符号化部66は、量子化された変換係数を符号化するとともに、イントラ予測を示す情報、インター予測モードを示す情報などを符号化し、圧縮画像におけるヘッダ情報の一部とする。可逆符号化部66は、符号化したデータを蓄積バッファ67に供給して蓄積させる。
例えば、可逆符号化部66においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ67は、可逆符号化部66から供給されたデータを、H.264/AVC方式で符号化された圧縮画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部65より出力された、量子化された変換係数は、逆量子化部68にも入力され、逆量子化された後、さらに逆直交変換部69において逆直交変換される。逆直交変換された出力は演算部70により予測画像選択部78から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ71は、復号された画像のブロック歪を除去した後、フレームメモリ72に供給し、蓄積させる。フレームメモリ72には、デブロックフィルタ71によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
スイッチ73はフレームメモリ72に蓄積された参照画像を動き予測・補償部75またはイントラ予測部74に出力する。
この画像符号化装置51においては、例えば、画面並べ替えバッファ62からのIピクチャ、Bピクチャ、およびPピクチャが、イントラ予測(イントラ処理とも称する)する画像として、イントラ予測部74に供給される。また、画面並べ替えバッファ62から読み出されたBピクチャおよびPピクチャが、インター予測(インター処理とも称する)する画像として、動き予測・補償部75に供給される。
イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像とフレームメモリ72から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
その際、イントラ予測部74は、候補となる全てのイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。このコスト関数値についての詳細は、図12を参照して後述される。
イントラ予測部74は、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部78に供給する。イントラ予測部74は、予測画像選択部78により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。可逆符号化部66は、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
動き予測・補償部75には、画面並べ替えバッファ62から読み出されたインター処理する画像と、スイッチ73を介してフレームメモリ72から参照画像が供給される。動き予測・補償部75は、輝度信号を用いて、候補となる全てのインター予測モードのブロックの動き予測を行い、各ブロックの動きベクトルを生成し、蓄積する。
動き予測・補償部75は、予測した各ブロックの動きベクトルを用いて、候補となる全てのインター予測モードに対してコスト関数値を算出する。動き予測・補償部75は、算出したコスト関数値のうち、最小値を与えるブロックの予測モードを、最適インター予測モードとして決定し、決定した予測モードの情報を色差ブロック判別部76に供給する。
動き予測・補償部75は、最適インター予測モードの動きベクトルに基づいて参照画像に補償処理を施し、対象となる輝度信号のブロック(以下、輝度ブロックまたは輝度信号ブロックとも適宜称する)の予測画像を生成する。動き予測・補償部75は、色差動きベクトル決定部77から制御信号が供給された場合、H.264/AVC方式により、対象となる色差信号のブロック(以下、色差ブロックまたは色差信号ブロックとも適宜称する)の動きベクトルを生成する。そして、動き予測・補償部75は、生成した動きベクトルを用いて、色差信号ブロックの予測画像を生成する。また、動き予測・補償部75は、色差動きベクトル決定部77から色差動きベクトル情報が供給された場合、その情報が示す色差信号の動きベクトルを用いて、色差信号ブロックの予測画像を生成する。
動き予測・補償部75は、生成された最適インター予測モードの対象ブロック(輝度信号および色差信号ブロック)の予測画像とそのコスト関数値を、予測画像選択部78に供給する。動き予測・補償部75は、予測画像選択部78により最適インター予測モードの対象ブロックの予測画像が選択された場合、最適インター予測モードを示す情報(インター予測モード情報)を可逆符号化部66に出力する。
このとき、動きベクトル情報、参照フレーム情報なども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部75からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
色差ブロック判別部76は、動き予測・補償部75からの予測モードの情報が示す輝度信号ブロックのブロックサイズに応じて、色差信号ブロックのブロックサイズを判別する。色差ブロック判別部76は、判別した色差ブロックサイズの情報を、色差動きベクトル決定部77に供給する。
図4の例においては、入力信号が4:2:0であるので、色差ブロック判別部76においては、輝度信号ブロックのブロックサイズが8×8画素である場合、対応する色差信号ブロックのブロックサイズが、4×4画素であると判別される。
色差動きベクトル決定部77は、色差ブロック判別部76からの色差ブロックサイズの情報に基づいて、色差信号ブロックが、2つのカテゴリのうちのどちらに属するかを分類する。例えば、第1のカテゴリは、色差信号ブロックのうち、4×4画素以上のブロックサイズのブロックが属する。第2のカテゴリは、色差信号ブロックのうち、4×4画素より小さいブロックサイズのブロックが属する。
色差動きベクトル決定部77は、色差信号ブロックを第1のカテゴリに分類した場合、動き予測・補償部75に制御信号を供給し、H.264/AVC方式による色差信号の動き予測を行わせる。これに対して、色差動きベクトル決定部77は、色差信号ブロックを第2のカテゴリに分類した場合、複数の輝度信号ブロックに対して単一の色差信号ブロックを対応させ、その単位で、色差信号の動きベクトルを生成する。例えば、複数の輝度信号ブロックに対応させた単一の色差信号ブロックの動きベクトルは、動き予測・補償部75により生成され、蓄積されている複数の輝度信号ブロックの動きベクトルの少なくとも1つを用いて生成される。生成された色差動きベクトルの情報は、動き予測・補償部75に供給される。
なお、複数の輝度信号ブロックに対応させた単一の色差信号ブロックに対して、動き探索を行い、上述したように複数の輝度信号ブロックの動きベクトルを用いて生成された動きベクトルとの差分情報を生成して、それを復号側に送るようにしてもよい。この場合、生成された差分情報は、点線に示されるように、可逆符号化部66に供給される。
予測画像選択部78は、イントラ予測部74または動き予測・補償部75より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部78は、決定された最適予測モードの予測画像を選択し、演算部63,70に供給する。このとき、予測画像選択部78は、予測画像の選択情報を、イントラ予測部74または動き予測・補償部75に供給する。
レート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
なお、以下、単に、ブロック、輝度信号ブロック、色差信号ブロックなどと記載する場合には、動き予測・補償のブロックを表すものとする。
[H.264/AVC方式の説明]
図5は、H.264/AVC方式における動き予測・補償のブロックサイズの例を示す図である。H.264/AVC方式においては、ブロックサイズを可変にして、動き予測・補償が行われる。
図5の上段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のパーティションに分割された16×16画素で構成されるマクロブロックが順に示されている。また、図5の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のサブパーティションに分割された8×8画素のパーティションが順に示されている。
すなわち、H.264/AVC方式においては、1つのマクロブロックを、16×16画素、16×8画素、8×16画素、あるいは8×8画素のいずれかのパーティションに分割して、それぞれ独立した動きベクトル情報を持つことが可能である。また、8×8画素のパーティションに関しては、8×8画素、8×4画素、4×8画素、あるいは4×4画素のいずれかのサブパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
図6は、H.264/AVC方式におけるマルチ参照フレームの予測・補償処理を説明する図である。H.264/AVC方式においては、マルチ参照フレーム(Multi-Reference Frame) の動き予測・補償方式が定められている。
図6の例においては、いまから符号化される対象フレームFnと、符号化済みのフレームFn-5,…,Fn-1が示されている。フレームFn-1は、時間軸上、対象フレームFnの1つ前のフレームであり、フレームFn-2は、対象フレームFnの2つ前のフレームであり、フレームFn-3は、対象フレームFnの3つ前のフレームである。また、フレームFn-4は、対象フレームFnの4つ前のフレームであり、フレームFn-5は、対象フレームFnの5つ前のフレームである。一般的には、対象フレームFnに対して時間軸上に近いフレームほど、小さい参照ピクチャ番号(ref_id)が付加される。すなわち、フレームFn-1が一番参照ピクチャ番号が小さく、以降、Fn-2,…, Fn-5の順に参照ピクチャ番号が小さい。
対象フレームFnには、ブロックA1とブロックA2が示されており、ブロックA1は、2つ前のフレームFn-2のブロックA1’と相関があるとされて、動きベクトルV1が探索されている。また、ブロックA2は、4つ前のフレームFn-4のブロックA1’と相関があるとされて、動きベクトルV2が探索されている。
以上のように、H.264/AVC方式においては、複数の参照フレームをメモリに格納しておき、1枚のフレーム(ピクチャ)において、異なる参照フレームを参照することが可能である。すなわち、例えば、ブロックA1がフレームFn-2を参照し、ブロックA2がフレームFn-4を参照しているというように、1枚のピクチャにおいて、ブロック毎にそれぞれ独立した参照フレーム情報(参照ピクチャ番号(ref_id))を持つことができる。
ここで、ブロックとは、図5を参照して上述した16×16画素、16×8画素、8×16画素、および8×8画素のパーティションのいずれかを示す。8×8サブブロック内における参照フレームは同一でなければならない。
H.264/AVC方式においては、図1を参照して上述した1/4画素精度の動き予測・補償処理、および図5および図6を参照して上述したような動き予測・補償処理が行われることにより、膨大な動きベクトル情報が生成される。この膨大な動きベクトル情報をこのまま符号化することは、符号化効率の低下を招いてしまう。これに対して、H.264/AVC方式においては、図7に示す方法により、動きベクトルの符号化情報の低減が実現されている。
図7は、H.264/AVC方式による動きベクトル情報の生成方法について説明する図である。
図7の例において、これから符号化される対象ブロックE(例えば、16×16画素)と、既に符号化済みであり、対象ブロックEに隣接するブロックA乃至Dが示されている。
すなわち、ブロックDは、対象ブロックEの左上に隣接しており、ブロックBは、対象ブロックEの上に隣接しており、ブロックCは、対象ブロックEの右上に隣接しており、ブロックAは、対象ブロックEの左に隣接している。なお、ブロックA乃至Dが区切られていないのは、それぞれ、図4で上述した16×16画素乃至4×4画素のうちのいずれかの構成のブロックであることを表している。
例えば、X(=A,B,C,D,E)に対する動きベクトル情報を、mvXで表す。まず、対象ブロックEに対する予測動きベクトル情報pmvEは、ブロックA,B,Cに関する動きベクトル情報を用いて、メディアン予測により次の式(6)のように生成される。
pmvE = med(mvA,mvB,mvC) ・・・(6)
ブロックCに関する動きベクトル情報が、画枠の端であったり、あるいは、まだ符号化されていないなどの理由により、利用可能でない(unavailableである)場合がある。この場合には、ブロックCに関する動きベクトル情報は、ブロックDに関する動きベクトル情報で代用される。
対象ブロックEに対する動きベクトル情報として、圧縮画像のヘッダ部に付加されるデータmvdEは、pmvEを用いて、次の式(7)のように生成される。
mvdE = mvE - pmvE ・・・(7)
なお、実際には、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
このように、予測動きベクトル情報を生成し、隣接するブロックとの相関で生成された予測動きベクトル情報と動きベクトル情報との差分を、圧縮画像のヘッダ部に付加することにより、動きベクトル情報が低減される。
[動き予測・補償部および色差動きベクトル決定部の構成例]
図8は、動き予測・補償部75および色差動きベクトル決定部77の詳細な構成例を示すブロック図である。なお、図8においては、図4のスイッチ73が省略されている。
図8の例において、動き予測・補償部75は、動き探索部81、モード判定部82、および動き補償部83により構成されている。
色差動きベクトル決定部77は、ブロックカテゴライズ部91、および色差動きベクトル生成部92により構成されている。
フレームメモリ72からの参照画像画素値は、動き探索部81、モード判定部82、および動き補償部83に供給されている。また、画面並べ替えバッファ62からのインター処理する画像(入力画像)画素値が、動き探索部81およびモード判定部82に供給されている。
動き探索部81は、インター処理する画像および整数画素精度の参照画像画素値を用いて、候補となる全てのインター予測モードについての輝度信号の各対象ブロックの動き探索を行う。なお、動き探索部81においては、図3を参照して上述したJM(Joint Model)に実装されている動き探索方法に基づき、整数画素精度の動きベクトルが求められて、小数画素精度の動きベクトルが求められる。動き探索部81により輝度信号の各対象ブロックについて求められた各動きベクトル情報は、モード判定部82に供給される。
モード判定部82は、インター処理する画像および整数画素精度の参照画像画素値を用いて、動き探索部81により動きベクトルが求められた候補となる全てのインター予測モードについて、図12を参照して後述するコスト関数値を算出する。モード判定部82は、算出したコスト関数値が最小値を与えるインター予測モードを、その対象ブロックの最適インター予測モードとして決定する。
モード判定部82は、決定した最適インター予測モードの情報と、それに対応する動きベクトル情報を、動き補償部83に供給する。モード判定部82は、決定した最適インター予測モードの情報を、色差ブロック判別部76にも供給する。
さらに、モード判定部82は、予測画像選択部78により最適インター予測モードの予測画像が選択された場合、最適インター予測モードの情報、コスト関数値の算出の際に得られた最適インター予測モードに対応する動きベクトルの差分情報、および参照フレーム情報などを、可逆符号化部66に供給する。
動き補償部83は、モード判定部82からの最適インター予測モードの動きベクトルに基づいて参照画像に補償処理を施し、対象となる輝度信号ブロックの予測画像を生成する。また、動き補償部83は、ブロックカテゴライズ部91から制御信号が供給された場合、H.264/AVC方式により、色差信号の動きベクトルを生成し、生成した動きベクトルを用いて、補償処理を行い、対象となる色差信号ブロックの予測画像を生成する。動き補償部83は、色差動きベクトル生成部92から色差動きベクトル情報が供給された場合、その情報が示す色差信号の動きベクトルを用いて、補償処理を行い、対象となる色差信号ブロックの予測画像を生成する。
動き補償部83は、生成された最適インター予測モードの対象ブロックの予測画像とそのコスト関数値を、予測画像選択部78に供給する。なお、このコスト関数値は、モード判定部82より算出されたものを供給するようにしてもよいし、動き補償部83において再度求めなおしてそれを予測画像選択部78に供給するようにしてもよい。
ブロックカテゴライズ部91は、色差ブロック判別部76からの色差ブロックサイズの情報に基づいて、色差信号ブロックが、2つのカテゴリのうちのどちらに属するかを分類する。ブロックカテゴライズ部91は、色差信号ブロックを第1のカテゴリに分類した場合、動き補償部83に制御信号を供給し、H.264/AVC方式による色差信号の動き予測を行わせる。また、ブロックカテゴライズ部91は、色差信号ブロックを第2のカテゴリに分類した場合、色差動きベクトル生成部92に制御信号を供給し、色差信号の動き予測を行わせる。
色差動きベクトル生成部92は、ブロックカテゴライズ部91からの制御信号に基づいて、複数の輝度信号ブロックに対して単一の色差信号ブロックを対応させる。そして、色差動きベクトル生成部92は、モード判定部82から取得される複数の輝度信号ブロックの動きベクトル情報を用いて、その対応させた単一の色差信号ブロックの動きベクトルを生成する。色差動きベクトル生成部92は、生成した色差信号の動きベクトル情報を、動き補償部83に供給する。
[色差信号の動き予測処理の説明]
ここで、再度、図5を参照して、色差信号の動き予測処理について詳しく説明する。
動き予測・補償部75においては、図5に示されるいずれかの動きパーティション(ブロック)サイズ、あるいは、サブ動きパーティションサイズによって、動き予測・補償処理が行われる。なお、図5に示されるサイズは、輝度信号に関するもので、入力となる画像信号が4:2:0フォーマットの場合、色差信号に対するブロックの大きさは、水平も垂直も、それぞれ、輝度信号に対するブロックの大きさの1/2となる。
輝度信号が、どのブロックサイズにより動き予測が行われたかに関する情報、すなわち、予測モードの情報は、色差ブロック判別部76に供給される。色差ブロック判別部76においては、予測モードの情報が示す輝度信号の対象ブロックのブロックサイズに応じて、色差信号の対象ブロックのブロックサイズが判別され、判別した色差ブロックサイズの情報が、ブロックカテゴライズ部91に供給される。
ブロックカテゴライズ部91においては、対象ブロックが、上述した2つのカテゴリに分類される。すなわち、輝度信号におけるブロックサイズのうち、第1のカテゴリには、図5における16×16画素、16×8画素、8×16画素、8×8画素のいずれかのサイズのブロックが属している。また、輝度信号におけるブロックサイズのうち、第2のカテゴリには、それ以外のサイズのブロックが属している。
そして、入力信号が4:2:0の場合、色差信号におけるブロックサイズのうち、第1のカテゴリには、8×8画素、8×4画素、4×8画素、4×4画素のいずれかのサイズのブロックが属している。また、輝度信号におけるブロックサイズのうち、第2のカテゴリには、それ以外のサイズ(すなわち、4×2画素、2×4画素、2×2画素)のブロックが属している。
ここで、直交変換部64が施す直交変換のブロックサイズは、4×4画素である。すなわち、ブロックカテゴライズ部91は、色差信号のブロックを、直交変換のブロックサイズに応じたカテゴリに分類する。換言するに、第1のカテゴリは、直交変換のブロックサイズ以上のサイズのブロックが属するカテゴリであり、第2のカテゴリは、直交変換のブロックサイズより小さいサイズのブロックが属するカテゴリである。
ブロックカテゴライズ部91は、このように第1のカテゴリに分類された対象ブロックに関しては、H.264/AVC方式による色差信号の動き予測を行わせるための制御信号を、動き補償部83に供給する。
これに対して、ブロックカテゴライズ部91は、第2のカテゴリに分類された対象ブロックに関しては、次に図9を参照して説明される色差信号の動き予測を行わせるための制御信号を、色差動きベクトル生成部92に供給する。
図9は、色差動きベクトル生成部92における色差信号の動き予測処理を説明する図である。なお、図9Aは、輝度信号のマクロブロックが4つの4×4画素ブロックで構成される場合の色差信号の例を示している。図9Bは、輝度信号のマクロブロックが2つの8×4画素ブロックで構成される場合の色差信号の例を示している。図9Cは、輝度信号のマクロブロックが2つの4×8画素ブロックで構成される場合の色差信号の例を示している。
まず、輝度信号のマクロブロックが4つの0乃至1が付された4×4画素ブロックで構成される場合、それらの4つの輝度信号ブロックに、図9Aに示されるようにCが付された1つの色差信号の4×4ブロックを対応させる。
参考として、H.264/AVC方式の場合、色差信号は4つの2×2ブロックで構成される。すなわち、4つの輝度信号ブロックに対して、符号化規格において対応する4つの色差信号の2×2ブロックではなく、単一の色差信号の4×4ブロックを対応させなおす。さらに換言すると、4つの輝度信号のブロックに対して、単一の色差信号の4×4ブロックを新たに対応させる。
このとき、4つの輝度信号ブロックに対して、mv0,mv1,mv2,mv3と、4つの動きベクトル情報が存在する。これらの4つの動きベクトル情報を用いて、色差動きベクトル生成部92は、上述した1つの4×4ブロックの色差信号の動きベクトル情報mvcを、次の式(8)のように算出する。
mvc = f(mv0,mv1,mv2,mv3)
・・・(8)
式(8)において、f()としては、例えば、平均による処理が行われる。この場合、色差動きベクトル生成部92においては、水平成分、垂直成分毎に、次の式(9)のように動きベクトル情報mvcが算出される。
なお、入力信号が4:2:0フォーマットである場合、輝度信号に対し、色差信号は、半分の解像度しかもたないため、式(9)の右辺においては、4による除算(/4)ではなく、8による除算(/8)となる。
あるいは、次の式(10)のように算出される色差信号についての予測動きベクトル情報pmvcと、色差信号に対して行われた動き探索による動きベクトル情報mvcとを用いて、次の式(11)のように動きベクトル差分情報dmvcを求める。
pmvc= f(mv0,mv1,mv2,mv3)
・・・(10)
式(10)においても、f()として、例えば、式(9)に示されたような平均による処理が行われる。
dmvc = mvc - pmvc
・・・(11)
この動きベクトル差分情報を、復号側に送るようにしてもよい。なお、この詳細は、図15および図16を参照して後述される。
上述した色差信号の動き予測処理は、Cb/Crの両方に対して行ってもよいし、あるいは、Cb/Crそれぞれ独立に行ってもよい。すなわち、Cb/Crの両方に対して、単一の動きベクトル情報mvcを持つようにしてもよいし、あるいは、Cb/CRに対して、独立に、動きベクトル情報mvcbおよびmvcrを持つようにしてもよい。
なお、上記説明においては、輝度信号についての対象ブロックが4×4画素の場合(図9Aの場合)について説明したが、輝度信号についての対象ブロックが8×4画素の場合には、図9Bに示されるように、0および1が付された2つの輝度信号のブロックに、Cが付された1つの色差信号の4×4ブロックを対応させる。そして、2つの8×4ブロックの動きベクトル情報を用いて、1つの4×4ブロックの色差信号の動きベクトル情報mvcが算出される。
同様に、輝度信号についての対象ブロックが4×8画素の場合には、図9Cに示されるように、0および1が付された2つの輝度信号のブロックに、Cが付された1つの色差信号の4×4ブロックを対応させる。そして、2つの4×8ブロックの動きベクトル情報を用いて、1つの4×4ブロックの色差信号の動きベクトル情報mvcが算出される。
ちなみに、H.264/AVC方式の場合、輝度信号が2つの4×8画素で構成されるのに対して、色差信号は、2×4画素のブロック2つで構成される。輝度信号が2つの8×4画素で構成されるのに対して、色差信号は、4×2画素のブロック2つで構成される。
また、上述した式(8)におけるf()としては、平均による処理の他に、例えば、次の式(12)に示される処理を行ってもよい。なお、もちろん、式(10)においても、f()として、例えば、式(12)に示される処理を行ってもよい。
具体的には、色差動きベクトル生成部92は、4つの輝度信号ブロックに対する動きベクトル情報mv0,mv1,mv2,mv3を用いて、式(12)のように、mvciを算出し、i=0乃至3のうち、もっとも残差が小さく、もっとも高い符号化効率を実現するmvciを、mvcとして選択する。
すなわち、色差動きベクトル生成部92は、対応する輝度信号ブロックに対する動きベクトルのうち、色差信号に対して、もっとも高い符号化効率を与えるものを選択し、これを、例えば、4:2:0といった色差信号のフォーマットを考慮したスケーリングを行うことにより、色差信号ブロックに対する動きベクトルを生成する。その際、色差動きベクトル生成部92は、i=0乃至3のうち、どのiを用いたかに関するフラグを生成し、可逆符号化部66に供給して、復号側に送信する圧縮画像のヘッダに付加させる。
このフラグは、水平方向と垂直方向を別々に送信してもよく、あるいは水平方向と垂直方向の両方に対して単一のフラグを送信するようにしてもよい。後述する画像復号装置101においては、圧縮画像を復号し、このフラグを取得することで、mvcを再構築することができる。
以上のように、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号のブロックに対して対応させた単一の色差信号のブロックの動きベクトルを、複数の輝度信号のブロックの動きベクトルを用いて生成するようにした。
これにより、色差に関する4×4サイズの直交変換ブロック内に、動き予測(補償)のブロック境界が内在しないことになり、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。
さらにまた、動き予測の際、H.264/AVC方式においては、輝度信号の対象ブロックが4×4画素であったら、色差信号については、4つの2×2画素ブロックに対してアドレスの計算を行い、メモリアクセスを行う必要があった。これに対して、上述した処理を行うことにより、メモリアクセスの計算は1回で済むことになり、必要となるメモリバンド幅を減少させることができる。
[画像符号化装置の符号化処理の説明]
次に、図10のフローチャートを参照して、図4の画像符号化装置51の符号化処理について説明する。
ステップS11において、A/D変換部61は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ62は、A/D変換部61より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS13において、演算部63は、ステップS12で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部75から、イントラ予測する場合はイントラ予測部74から、それぞれ予測画像選択部78を介して演算部63に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS14において、直交変換部64は演算部63から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS15において、量子化部65は変換係数を量子化する。この量子化に際しては、後述するステップS25の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS16において、逆量子化部68は量子化部65により量子化された変換係数を量子化部65の特性に対応する特性で逆量子化する。ステップS17において、逆直交変換部69は逆量子化部68により逆量子化された変換係数を直交変換部64の特性に対応する特性で逆直交変換する。
ステップS18において、演算部70は、予測画像選択部78を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部63への入力に対応する画像)を生成する。ステップS19においてデブロックフィルタ71は、演算部70より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS20においてフレームメモリ72は、フィルタリングされた画像を記憶する。なお、フレームメモリ72にはデブロックフィルタ71によりフィルタ処理されていない画像も演算部70から供給され、記憶される。
ステップS21において、イントラ予測部74および動き予測・補償部75は、それぞれ画像の予測処理を行う。すなわち、ステップS21において、イントラ予測部74は、イントラ予測モードのイントラ予測処理を行う。動き予測・補償部75は、インター予測モードの動き予測・補償処理を行う。
ステップS21における予測処理の詳細は、図11を参照して後述するが、まず、この処理により、候補となる全てのイントラ予測モードでの予測処理がそれぞれ行われ、候補となる全てのイントラ予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。
また、この処理により、候補となる全てのインター予測モードでの予測処理がそれぞれ行われ、候補となる全てのインター予測モードでのコスト関数値がそれぞれ算出される。算出されたコスト関数値に基づいて、インター予測モードの中から、最適インター予測モードが決定される。
なお、具体的には、輝度信号について動き予測、コスト関数値の算出、最適インター予測モードの決定が行われる。最適インター予測モードに示されるブロックサイズにより、対象ブロックのカテゴリ分類が行われ、色差信号については、分類されたカテゴリに応じた動き予測が行われる。そして、最適インター予測モードでの予測画像が生成され、生成された予測画像とそのコスト関数値が、予測画像選択部78に供給される。
ステップS22において、予測画像選択部78は、イントラ予測部74および動き予測・補償部75より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部78は、決定した最適予測モードの予測画像を選択し、演算部63,70に供給する。この予測画像が、上述したように、ステップS13,S18の演算に利用される。
なお、この予測画像の選択情報は、イントラ予測部74または動き予測・補償部75に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部74は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部66に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部75は、最適インター予測モードを示す情報と、さらに、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部66に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。
ステップS23において、可逆符号化部66は量子化部65より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップS22において可逆符号化部66に入力された、イントラ予測部74からのイントラ予測モード情報、または、動き予測・補償部75からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
例えば、インター予測モードを示す情報は、マクロブロック毎に符号化される。動きベクトル情報や参照フレーム情報は、対象となるブロック毎に符号化される。
なお、ステップS21におけるインター動き予測により、色差信号の動きベクトル差分情報が生成された場合には、生成された色差信号の動きベクトル差分情報が色差動きベクトル決定部77から供給されるので、その情報も符号化される。これについて詳しくは図15および図16を参照して後述される。
ステップS24において蓄積バッファ67は差分画像を圧縮画像として蓄積する。蓄積バッファ67に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS25においてレート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[予測処理の説明]
次に、図11のフローチャートを参照して、図10のステップS21における予測処理を説明する。
画面並べ替えバッファ62から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ72から読み出され、スイッチ73を介してイントラ予測部74に供給される。これらの画像に基づいて、ステップS31において、イントラ予測部74は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
ステップS31におけるイントラ予測処理の詳細は、図12を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。
画面並べ替えバッファ62から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ72から読み出され、スイッチ73を介して動き探索部81に供給される。これらの画像に基づいて、ステップS32において、動き探索部81は、輝度信号を用いたインター動き予測処理を行う。すなわち、動き探索部81は、フレームメモリ72から供給される画像を参照して、輝度信号を用いて、候補となる全てのインター予測モードの動き予測処理を行う。
ステップS32におけるインター動き予測処理の詳細は、図13を参照して後述する。この処理により、輝度信号を用いて、候補となる全てのインター予測モードで動き予測処理が行われ、モード判定部82により、候補となる全てのインター予測モードに対してコスト関数値が算出される。
ステップS33において、モード判定部82は、候補となる全てのインター予測モードの中から、算出したコスト関数値に基づいて、最適インター予測モードを決定する。すなわち、モード判定部82は、コスト関数値の最小の予測モードを、最適イントラ予測モードに決定する。
モード判定部82は、決定した最適インター予測モードの情報と、それに対応する動きベクトル情報を、動き補償部83に供給する。また、モード判定部82は、決定した最適インター予測モードの情報を、色差ブロック判別部76にも供給する。
ステップS34において、色差ブロック判別部76、色差動きベクトル決定部77、および動き補償部83は、色差信号に対する動き予測処理を実行する。
ステップS34における色差信号に対する動き予測処理の詳細は、図14を参照して後述する。この処理により、最適イントラ予測モードのブロックサイズに応じて、色差信号の動き予測が行われる。
すなわち、最適イントラ予測モードが示すブロックサイズから判別される色差信号ブロックのサイズに基づいて、色差信号ブロックがカテゴリに分類され、分類されたカテゴリに応じて、色差信号ブロックの動きベクトルが生成される。
ステップS35において、動き補償部83は、モード判定部82からの最適インター予測モードの動きベクトルに基づいて参照画像に補償処理を施し、対象となるブロックの予測画像を生成する。
すなわち、動き補償部83は、モード判定部82からの最適インター予測モードの動きベクトルに基づいて参照画像に補償処理を施し、対象となる輝度信号ブロックの予測画像を生成する。そして、動き補償部83は、ブロックカテゴライズ部91から制御信号が供給された場合、H.264/AVC方式により、色差信号の動きベクトルを生成し、生成した動きベクトルを用いて、対象となる色差信号ブロックの予測画像を生成する。一方、動き補償部83は、色差動きベクトル生成部92から色差動きベクトル情報が供給された場合、その情報が示す色差信号の動きベクトルを用いて、補償処理を施し、対象となる色差信号ブロックの予測画像を生成する。
以上のようにして生成された最適インター予測モードの予測画像とそのコスト関数値が、予測画像選択部78に供給される。
[イントラ予測処理の説明]
次に、図12のフローチャートを参照して、図11のステップS31におけるイントラ予測処理を説明する。なお、図12の例においては、輝度信号の場合を例として説明する。
イントラ予測部74は、ステップS41において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対してイントラ予測を行う。
輝度信号のイントラ予測モードには、9種類の4×4画素および8×8画素のブロック単位、並びに4種類の16×16画素のマクロブロック単位の予測モードがあり、色差信号のイントラ予測モードには、4種類の8×8画素のブロック単位の予測モードがある。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。輝度信号の4×4画素および8×8画素のイントラ予測モードについては、4×4画素および8×8画素の輝度信号のブロック毎に1つのイントラ予測モードが定義される。輝度信号の16×16画素のイントラ予測モードと色差信号のイントラ予測モードについては、1つのマクロブロックに対して1つの予測モードが定義される。
具体的には、イントラ予測部74は、処理対象のブロックの画素を、フレームメモリ72から読み出され、スイッチ73を介して供給される復号済みの画像を参照して、イントラ予測する。このイントラ予測処理が、各イントラ予測モードで行われることで、各イントラ予測モードでの予測画像が生成される。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
イントラ予測部74は、ステップS42において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対するコスト関数値を算出する。ここで、コスト関数値としては、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて行う。これらのモードは、H.264/AVC方式における参照ソフトウエアであるJMで定められている。
すなわち、High Complexity モードにおいては、ステップS41の処理として、候補となる全ての予測モードに対して、仮に符号化処理までが行われる。そして、次の式(13)で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
Cost(Mode) = D + λ・R ・・・(13)
Dは、原画像と復号画像の差分(歪)、Rは、直交変換係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
一方、Low Complexity モードにおいては、ステップS41の処理として、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報、フラグ情報などのヘッダビットまでが算出される。そして、次の式(13)で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
Cost(Mode) = D + QPtoQuant(QP)・Header_Bit ・・・(14)
Dは、原画像と復号画像の差分(歪)、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
Low Complexity モードにおいては、全ての予測モードに対して、予測画像を生成するのみで、符号化処理および復号処理を行う必要がないため、演算量が少なくて済む。
イントラ予測部74は、ステップS43において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対して、それぞれ最適モードを決定する。すなわち、上述したように、イントラ4×4予測モードおよびイントラ8×8予測モードの場合には、予測モードの種類が9種類あり、イントラ16×16予測モードの場合には、予測モードの種類が4種類ある。したがって、イントラ予測部74は、ステップS42において算出されたコスト関数値に基づいて、それらの中から、最適イントラ4×4予測モード、最適イントラ8×8予測モード、最適イントラ16×16予測モードを決定する。
イントラ予測部74は、ステップS44において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対して決定された各最適モードの中から、ステップS42において算出されたコスト関数値に基づいて、最適イントラ予測モードを選択する。すなわち、4×4画素、8×8画素、および16×16画素に対して決定された各最適モードの中から、コスト関数値が最小値であるモードを、最適イントラ予測モードとして選択する。そして、イントラ予測部74は、最適イントラ予測モードで生成された予測画像とそのコスト関数値とを、予測画像選択部78に供給する。
[輝度信号を用いたインター動き予測処理の説明]
次に、図13のフローチャートを参照して、図11のステップS32の輝度信号を用いたインター動き予測処理について説明する。なお、動き探索部81においては、図3を参照して上述したJMに実装されている動き探索方法に基づき整数画素精度の動きベクトルが求められ、小数画素精度の動きベクトルが求められる。
ステップS61において、動き探索部81は、輝度信号を用いて、図5を参照して上述した16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。
すなわち、動き探索部81には、画面並べ替えバッファ62からのインター処理する画像と、フレームメモリ72からの整数画素精度の参照画像画素値が供給される。動き探索部81は、これらの画像の輝度信号を用いて、各インター予測モードに対して、候補の参照画像の所定の探索範囲内においてSADなどのコスト関数値を最小にする整数画素精度の動きベクトルと参照画像を求める。また、動き探索部81は、SADなどのコスト関数を最小にする1/2画素精度の小数画素精度の動きベクトル情報を求め、さらに、SADなどのコスト関数を最小にする1/4画素精度の小数画素精度の動きベクトル情報を求める。
以上により、輝度信号の、各インター予測モードの処理対象の対象ブロックについて、動きベクトルと参照画像がそれぞれ決定される。動き探索部81により輝度信号の各対象ブロックについて求められた各動きベクトル情報は、モード判定部82に供給される。
モード判定部82は、上述した式(13)または式(14)で示されるコスト関数値を算出するために、次のステップS62乃至S64の処理を行う。
すなわち、モード判定部82は、ステップS62において、動き探索部81からの動きベクトルに基づいて、参照画像に補償処理を行う。具体的には、モード判定部82には、フレームメモリ72からの整数画素精度の参照画像画素値、小数画素精度の動きベクトル情報、および内挿フィルタのフィルタ係数を用いて、小数画素精度の画素値を補間することで、対象ブロックの予測画像を生成する。
ステップS63において、モード判定部82は、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して決定された動きベクトルについて、差分動きベクトル情報mvdEを生成する。このとき、図7を参照して上述した動きベクトルの生成方法が用いられる。
具体的には、モード判定部82は、隣接ブロック動きベクトル情報を用いて、上述した式(6)のメディアン予測により対象ブロックEに対する予測動きベクトル情報pmvEを算出する。そして、モード判定部82は、上述した式(7)に示されるように、モード判定部82からの動きベクトル情報mvEと、算出された予測動きベクトル情報pmvEの差分により差分動きベクトル情報mvdEを求める。
求められた差分動きベクトル情報は、次のステップS64におけるコスト関数値算出の際に用いられ、最終的に予測画像選択部78により対応する予測画像が選択された場合には、予測モード情報、および参照フレーム情報などとともに可逆符号化部66へ供給される。
モード判定部82は、ステップS64において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して、上述した式(13)または式(14)で示されるコスト関数値を算出する。
具体的には、モード判定部82は、画面並べ替えバッファ62からのインター処理する画像、フレームメモリ72からの整数画素精度の参照画像画素値、小数画素精度の動きベクトル情報、および差分動きベクトル情報などの情報を適宜用いて、コスト関数値を算出する。ここで算出されたコスト関数値は、上述した図11のステップS33で最適インター予測モードを決定する際に用いられる。
[色差信号に対する動き予測処理の説明]
次に、図14のフローチャートを参照して、色差信号に対する動き予測処理について説明する。
色差ブロック判別部76には、最適インター予測モードの情報が、モード判定部82から供給される。色差ブロック判別部76は、最適インター予測モードの情報が示す輝度信号ブロックのブロックサイズに応じて、色差信号ブロックのブロックサイズを判別し、判別した色差ブロックサイズの情報を、ブロックカテゴライズ部91に供給する。
すなわち、色差ブロック判別部76は、輝度信号におけるブロックサイズが16×16画素、16×8画素、8×16画素、8×8画素の場合、色差信号におけるブロックサイズは、それぞれ、8×8画素、8×4画素、4×8画素、4×4画素であることを判別する。また、色差ブロック判別部76は、輝度信号におけるブロックサイズが8×4画素、4×8画素、4×4画素の場合、色差信号におけるブロックサイズは、それぞれ、4×2画素、2×4画素、2×2画素であることを判別する。
ブロックカテゴライズ部91は、ステップS71において、色差信号ブロックをカテゴリ分類する。例えば、ブロックカテゴライズ部91は、色差信号におけるブロックサイズが、8×8画素、8×4画素、4×8画素、4×4画素のいずれかのサイズであった場合、色差信号ブロックを、第1のカテゴリに分類する。一方、ブロックカテゴライズ部91は、色差信号におけるブロックサイズが、4×2画素、2×4画素、2×2画素のいずれかのサイズであった場合、色差信号ブロックを、第2のカテゴリに分類する。
そして、ブロックカテゴライズ部91は、ステップS72において、色差信号ブロックが第1のカテゴリに属するブロックであるか否かを判定する。
ステップS72において、第1のカテゴリに属するブロックではない、すなわち、第2のカテゴリに属するブロックであると判定された場合、処理は、ステップS73に進む。この場合、ブロックカテゴライズ部91から、色差信号の動き補償を行わせるための制御信号が、色差動きベクトル生成部92に供給される。
これに対応して、色差動きベクトル生成部92は、ステップS73において、色差動きベクトル情報を生成する。すなわち、色差動きベクトル生成部92は、図9Aを参照して上述したように、第2のカテゴリに属するとされた複数の輝度信号ブロック(例えば、4つの4×4ブロック)に単一の色差信号ブロック(例えば、1つの4×4ブロック)を対応させる。そして、色差動きベクトル生成部92は、モード判定部82より取得される動きベクトル情報を用いて、その単一の色差信号ブロックの動きベクトル情報を生成する。
生成された色差動きベクトル情報は、動き補償部83に供給され、図11のステップS35において、色差信号の予測画像生成に用いられる。
一方、ステップS72において、第1のカテゴリに属するブロックであると判定された場合、処理は、ステップS74に進む。この場合、ブロックカテゴライズ部91から、H.264/AVC方式による色差信号の動き予測を行わせるための制御信号が動き補償部83に供給される。
これに対応して、動き補償部83は、ステップS74において、H.264/AVC方式による色差動き予測処理を行う。例えば、動き補償部83は、輝度信号ブロックが8×8画素ブロックの場合、4×4画素ブロックの色差信号ブロックについて、図2を参照して上述した動き予測処理を行う。
生成された色差動きベクトル情報は、図11のステップS35において、色差信号の予測画像生成に用いられる。
以上のように、色差動きベクトル情報は、輝度信号ブロックの動きベクトル情報が用いられて生成されるので、復号側に送る必要がない。これに対して、次に説明するように、予測動きベクトル情報を求めて、色差信号ブロックの動きベクトルも探索し、それらの差分情報を復号側に送るようにしてもよい。
[動き予測・補償部および色差動きベクトル決定部の構成例]
図15は、色差動きベクトル差分情報を復号側に送る場合の動き予測・補償部75および色差動きベクトル決定部77の詳細な構成例を示すブロック図である。
なお、図15の動き予測・補償部75は、動き探索部81、モード判定部82、および動き補償部83を備える点が図8の動き予測・補償部75と共通する。図15の色差動きベクトル決定部77は、ブロックカテゴライズ部91を備える点が図8の動き予測・補償部75と共通する。一方、図15の色差動きベクトル決定部77は、色差動きベクトル生成部92が、色差予測動きベクトル生成部95に入れ替わった点と、色差動きベクトル探索部96が追加された点が異なっている。ただし、色差予測動きベクトル生成部95は、名前が異なるだけであり、図8の色差動きベクトル生成部92と基本的に同様な処理を行う。
すなわち、色差予測動きベクトル生成部95は、ブロックカテゴライズ部91からの制御信号に基づいて、複数の輝度信号ブロックに対して単一の色差信号ブロックを対応させる。そして、色差予測動きベクトル生成部95は、モード判定部82から取得される複数の輝度信号ブロックの動きベクトル情報を用いて、上述した式(10)のように、単一の色差信号のブロックの予測動きベクトル情報を生成する。
生成された色差信号の予測動きベクトル情報(色差予測動きベクトル情報)は、色差動きベクトル探索部96に供給される。
色差動きベクトル探索部96は、フレームメモリ72からの参照画像画素値を用いて、色差予測動きベクトル生成部95が複数の輝度信号に対応させた色差信号ブロックについて、動きベクトル情報を求める。このとき、色差動きベクトル探索部96は、色差予測動きベクトル生成部95により生成された色差予測動きベクトルを中心として、予め定められた探索範囲で、色差信号についての動きベクトルを求める。
なお、この場合も、図3を参照して上述したJMに実装されている動き探索方法に基づき、整数画素精度の動きベクトルが求められて、小数画素精度の動きベクトルが求められる。したがって、SADなどのコスト関数が求められ、最適な動きベクトルが求められるので、その図示は省略されているが、画面並べ替えバッファ62からのインターする画像も入力される。
色差動きベクトル探索部96は、色差信号ブロックについて求めた色差動きベクトル情報を動き補償部83に供給する。また、色差動きベクトル探索部96は、色差動きベクトル情報と、色差予測動きベクトル生成部95からの色差予測動きベクトル情報との差分を求め、求められた色差動きベクトル差分情報を、可逆符号化部66に供給する。
[輝度信号に対する動き予測処理の説明]
次に、図16のフローチャートを参照して、図15の例の場合の図11のステップS34の色差信号に対する動き予測処理について説明する。なお、それ以外の処理は、図10を参照して上述した図8の例の場合の処理と基本的に同様な処理であるのでその説明は繰り返しになるので省略する。また、図16のステップS91、S92、およびS95の処理は、図14のステップS71、S72、およびS74の処理と同じ処理である。
色差ブロック判別部76には、最適インター予測モードの情報が、モード判定部82から供給される。色差ブロック判別部76は、最適インター予測モードの情報が示す輝度信号ブロックのブロックサイズに応じて、色差信号ブロックのブロックサイズを判別し、判別した色差ブロックサイズの情報を、ブロックカテゴライズ部91に供給する。
ブロックカテゴライズ部91は、ステップS91において、色差信号ブロックをカテゴリ分類する。例えば、ブロックカテゴライズ部91は、色差信号におけるブロックサイズが、8×8画素、8×4画素、4×8画素、4×4画素のいずれかのサイズであった場合、色差信号ブロックを、第1のカテゴリに分類する。一方、ブロックカテゴライズ部91は、色差信号におけるブロックサイズが、4×2画素、2×4画素、2×2画素のいずれかのサイズであった場合、色差信号ブロックを、第2のカテゴリに分類する。
そして、ブロックカテゴライズ部91は、ステップS92において、色差信号ブロックが第1のカテゴリに属するブロックであるか否かを判定する。
ステップS92において、第1のカテゴリに属するブロックではない、すなわち、第2のカテゴリに属するブロックであると判定された場合、処理は、ステップS93に進む。この場合、ブロックカテゴライズ部91から、色差信号の動き予測を行わせるための制御信号が、色差予測動きベクトル生成部95に供給される。
これに対応して、色差予測動きベクトル生成部95は、ステップS93において、色差予測動きベクトル情報を生成する。すなわち、色差予測動きベクトル生成部95は、図9Aを参照して上述したように、第2のカテゴリに属するとされた複数の輝度信号ブロックに単一の色差信号ブロックを対応させる。そして、色差予測動きベクトル生成部95は、モード判定部82より取得される動きベクトル情報を用いて、その単一の色差信号ブロックの動き予測ベクトル情報を生成する。
生成された色差予測動きベクトル情報は、色差動きベクトル探索部96に供給される。色差動きベクトル探索部96は、ステップS94において、色差動きベクトル差分を算出する。すなわち、色差動きベクトル探索部96は、フレームメモリ72からの参照画像画素値を用いて、色差予測動きベクトル生成部95により生成された予測動きベクトル情報を中心とした探索範囲で、色差信号ブロックについて、動きベクトル情報を求める。そして、色差動きベクトル探索部96は、色差動きベクトル情報と、色差予測動きベクトル生成部95からの色差予測動きベクトル情報との差分を算出する。
求められた色差動きベクトル情報は、動き補償部83に供給され、図11のステップS35において、色差信号の予測画像生成に用いられる。
また、算出された色差動きベクトル差分情報は、可逆符号化部66に供給され、図10のステップS22でインター予測による予測画像が選択された場合に、ステップS23において、符号化され、圧縮画像のヘッダに付加されて、復号側に送信される。
一方、ステップS92において、第1のカテゴリに属するブロックであると判定された場合、処理は、ステップS95に進む。この場合、ブロックカテゴライズ部91から、H.264/AVC方式による色差信号の動き予測を行わせるための制御信号が動き補償部83に供給される。
これに対応して、動き補償部83は、ステップS95において、H.264/AVC方式による色差動き予測処理を行う。例えば、動き補償部83は、輝度信号の対象ブロックが8×8画素ブロックの場合、4×4画素ブロックの色差信号の対象ブロックについて、図2を参照して上述した動き予測処理を行う。
生成された色差動きベクトル情報は、図11のステップS35において、色差信号の予測画像生成に用いられる。
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
[画像復号装置の構成例]
図17は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
画像復号装置101は、蓄積バッファ111、可逆復号部112、逆量子化部113、逆直交変換部114、演算部115、デブロックフィルタ116、画面並べ替えバッファ117、D/A変換部118、フレームメモリ119、スイッチ120、イントラ予測部121、動き予測・補償部122、色差動きベクトル決定部123、色差ブロック判別部124、およびスイッチ125により構成されている。
蓄積バッファ111は伝送されてきた圧縮画像を蓄積する。可逆復号部112は、蓄積バッファ111より供給された、図4の可逆符号化部66により符号化された情報を、可逆符号化部66の符号化方式に対応する方式で復号する。逆量子化部113は可逆復号部112により復号された画像を、図4の量子化部65の量子化方式に対応する方式で逆量子化する。逆直交変換部114は、図4の直交変換部64の直交変換方式に対応する方式で逆量子化部113の出力を逆直交変換する。
逆直交変換された出力は演算部115によりスイッチ125から供給される予測画像と加算されて復号される。デブロックフィルタ116は、復号された画像のブロック歪を除去した後、フレームメモリ119に供給し、蓄積させるとともに、画面並べ替えバッファ117に出力する。
画面並べ替えバッファ117は、画像の並べ替えを行う。すなわち、図4の画面並べ替えバッファ62により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部118は、画面並べ替えバッファ117から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
スイッチ120は、インター処理される画像と参照される画像をフレームメモリ119から読み出し、動き予測・補償部122に出力するとともに、イントラ予測に用いられる画像をフレームメモリ119から読み出し、イントラ予測部121に供給する。
イントラ予測部121には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部112から供給される。イントラ予測部121は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ125に出力する。
動き予測・補償部122には、ヘッダ情報を復号して得られた情報のうち、インター予測モード情報、動きベクトル情報、参照フレーム情報などが可逆復号部112から供給される。インター予測モード情報は、マクロブロック毎に送信されてくる。動きベクトル情報や参照フレーム情報は、対象ブロック毎に送信されてくる。
動き予測・補償部122は、可逆復号部112から供給されるインター予測モード情報が示す予測モードで、輝度信号について、対象ブロックに対する予測画像の画素値を生成する。
また、動き予測・補償部122は、色差ブロック判別部124からの制御信号が供給された場合、H.264/AVC方式により、色差信号の動きベクトルを生成し、生成した動きベクトルを用いて、対象となる色差信号ブロックの予測画像を生成する。動き予測・補償部122は、色差動きベクトル決定部123から色差動きベクトル情報が供給された場合、その情報が示す色差信号の動きベクトルを用いて、対象となる色差信号ブロックの予測画像を生成する。生成された予測画像の画素値は、スイッチ125を介して、演算部115に供給される。
色差動きベクトル決定部123は、図4の色差動きベクトル決定部77と同様に、色差ブロック判別部124からの色差ブロックサイズの情報に基づいて、色差信号ブロックが、2つのカテゴリのうちのどちらに属するかを分類する。
色差動きベクトル決定部123は、色差信号ブロックを第1のカテゴリに分類した場合、動き予測・補償部122に制御信号を供給し、H.264/AVC方式による色差信号の動き予測を行わせる。これに対して、色差動きベクトル決定部123は、色差信号ブロックを第2のカテゴリに分類した場合、複数の輝度信号ブロックに対して単一の色差信号ブロックを対応させ、その単位で、色差信号の動きベクトルを生成する。例えば、複数の輝度信号ブロックに対応させた単一の色差信号ブロックの動きベクトルは、複数の輝度信号ブロックの動きベクトルの少なくとも1つを用いて生成される。生成された色差動きベクトルの情報は、動き予測・補償部122に供給される。
なお、画像符号化装置51より色差動きベクトル差分情報が生成されて送られてくる場合(図16の場合)、点線に示されるように、色差動きベクトル差分情報が、可逆復号部112から色差動きベクトル決定部123に供給される。
この場合、色差動きベクトル決定部123は、複数の輝度信号ブロックに対応させた単一の色差信号ブロックの予測動きベクトルを算出し、算出した予測動きベクトルと、供給された色差動きベクトル差分情報を用いて、色差動きベクトルを求める。
色差ブロック判別部124は、図4の色差ブロック判別部124と同様に、動き予測・補償部122からの予測モードの情報が示す輝度信号ブロックのブロックサイズに応じて、色差信号ブロックのブロックサイズを判別する。色差ブロック判別部124は、判別した色差ブロックサイズの情報を、色差動きベクトル決定部7123に供給する。
スイッチ125は、動き予測・補償部122またはイントラ予測部121により生成された予測画像を選択し、演算部115に供給する。
なお、図4の画像符号化装置51においては、装置内部で、動きベクトル情報いよび符号化モード情報が、動き探索およびモード判定の結果求められるものである。これに対して、この画像復号装置101においては、これらの情報が、符号化されて送られてくる圧縮画像情報に付加されており、可逆復号処理の結果として得られるものである。この相違点以外の点において、図4の画像符号化装置51と画像復号装置101との動作原理は同じである。
[動き予測・補償部および色差動きベクトル決定部の構成例]
図18は、動き予測・補償部122および色差動きベクトル決定部123の詳細な構成例を示すブロック図である。なお、図18においては、図17のスイッチ120および125が省略されている。
図18の例においては、動き予測・補償部122は、動きベクトルバッファ131、モード情報バッファ132、および予測画像生成部133により構成される。
色差動きベクトル決定部123は、ブロックカテゴライズ部141、および色差動きベクトル生成部142により構成される。
動きベクトルバッファ131は、可逆復号部112からの対象ブロックの動きベクトル情報を蓄積する。モード情報バッファ132は、可逆復号部112からのマクロブロック毎のインター予測モード情報を蓄積する。
予測画像生成部133は、動きベクトルバッファ131から対象ブロックの動きベクトル情報を取得し、モード情報バッファ132から対応するインター予測モード情報を取得する。予測画像生成部133は、取得したこれらの情報と、フレームメモリ119から得られる参照画像画素値を用いて、対象となる輝度信号ブロックに対する予測画像の画素値を生成する。
また、予測画像生成部133は、ブロックカテゴライズ部141から制御信号が供給された場合、H.264/AVC方式により、色差信号の動きベクトルを生成し、生成した動きベクトルを用いて、補償処理を行い、対象となる色差信号ブロックの予測画像を生成する。これに対して、予測画像生成部133は、色差動きベクトル生成部142から色差動きベクトル情報が供給された場合、その情報が示す色差信号の動きベクトルを用いて、補償処理を行い、対象となる色差信号ブロックの予測画像を生成する。
ブロックカテゴライズ部141は、色差ブロック判別部124からの色差ブロックサイズの情報に基づいて、色差信号ブロックが、2つのカテゴリのうちのどちらに属するかを分類する。ブロックカテゴライズ部141は、色差信号ブロックを第1のカテゴリに分類した場合、予測画像生成部133に制御信号を供給し、H.264/AVC方式による色差信号の動き予測を行わせる。また、ブロックカテゴライズ部141は、色差信号ブロックを第2のカテゴリに分類した場合、色差動きベクトル生成部142に制御信号を供給し、色差信号の動き予測を行わせる。
色差動きベクトル生成部142は、ブロックカテゴライズ部141からの制御信号に基づいて、複数の輝度信号ブロックに対して単一の色差信号ブロックを対応させる。そして、色差動きベクトル生成部142は、動きベクトルバッファ131から取得される複数の輝度信号ブロックの動きベクトル情報を用いて、その対応させた単一の色差信号ブロックの動きベクトルを生成する。色差動きベクトル生成部142は、生成した色差信号の動きベクトル情報を、予測画像生成部133に供給する。
なお、画像符号化装置51より色差動きベクトル差分情報が生成されて送られてくる場合(図16の場合)、点線に示されるように、色差動きベクトル差分情報が、可逆復号部112から色差動きベクトル生成部142に供給される。
この場合、色差動きベクトル生成部142は、上述した式(10)のように、複数の輝度信号ブロックに対応させた単一の色差信号ブロックの予測動きベクトルを算出する。そして、色差動きベクトル生成部142は、算出した予測動きベクトルと、供給された色差動きベクトル差分情報を用いて、色差動きベクトルを求める。
[画像復号装置の復号処理の説明]
次に、図19のフローチャートを参照して、画像復号装置101が実行する復号処理について説明する。
ステップS131において、蓄積バッファ111は伝送されてきた画像を蓄積する。ステップS132において、可逆復号部112は、蓄積バッファ111から供給される圧縮画像を復号する。すなわち、図4の可逆符号化部66により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)なども復号される。
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部121に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き予測・補償部122に供給される。
また、図16の処理が行われて送信されてきた画像のヘッダには色差動きベクトル差分情報も付加されており、この場合、色差動きベクトル差分情報も復号され、色差動きベクトル決定部123に供給される。
ステップS133において、逆量子化部113は可逆復号部112により復号された変換係数を、図4の量子化部65の特性に対応する特性で逆量子化する。ステップS134において逆直交変換部114は逆量子化部113により逆量子化された変換係数を、図4の直交変換部64の特性に対応する特性で逆直交変換する。これにより図4の直交変換部64の入力(演算部63の出力)に対応する差分情報が復号されたことになる。
ステップS135において、演算部115は、後述するステップS139の処理で選択され、スイッチ125を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS136においてデブロックフィルタ116は、演算部115より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS137においてフレームメモリ119は、フィルタリングされた画像を記憶する。
ステップS138において、イントラ予測部121または動き予測・補償部122は、可逆復号部112から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
すなわち、可逆復号部112からイントラ予測モード情報が供給された場合、イントラ予測部121は、イントラ予測モードのイントラ予測処理を行う。可逆復号部112からインター予測モード情報が供給された場合、動き予測・補償部122は、インター予測モードの動き予測・補償処理を行う。このとき、動き予測・補償部122は、色差信号については、インター予測モードが示すブロックサイズにより分類されたカテゴリに応じて、対象ブロックに対する予測画像の画素値を生成する。
ステップS138における予測処理の詳細は、図20を参照して後述するが、この処理により、イントラ予測部121により生成された予測画像、または動き予測・補償部122により生成された予測画像がスイッチ125に供給される。
ステップS139において、スイッチ125は予測画像を選択する。すなわち、イントラ予測部121により生成された予測画像、または動き予測・補償部122により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部115に供給され、上述したように、ステップS134において逆直交変換部114の出力と加算される。
ステップS140において、画面並べ替えバッファ117は並べ替えを行う。すなわち画像符号化装置51の画面並べ替えバッファ62により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS141において、D/A変換部118は、画面並べ替えバッファ117からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
[画像復号装置の予測処理の説明]
次に、図20のフローチャートを参照して、図19のステップS138の予測処理を説明する。
イントラ予測部121は、ステップS171において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部112からイントラ予測モード情報がイントラ予測部121に供給されると、イントラ予測部121は、ステップS171において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS172に進む。
イントラ予測部121は、ステップS172において、イントラ予測モード情報を取得し、ステップS173において、イントラ予測を行う。
すなわち、処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ119から読み出され、スイッチ120を介してイントラ予測部121に供給される。ステップS173において、イントラ予測部121は、ステップS172で取得したイントラ予測モード情報に従ってイントラ予測し、予測画像を生成する。生成した予測画像は、スイッチ125に出力される。
一方、ステップS171において、イントラ符号化されていないと判定された場合、処理は、ステップS174に進む。
処理対象の画像がインター処理される画像である場合、可逆復号部112からインター予測モード情報、参照フレーム情報、動きベクトル情報が動き予測・補償部122に供給される。
ステップS174において、動き予測・補償部122は、可逆復号部112からの予測モード情報などを取得する。すなわち、インター予測モード情報、参照フレーム情報、動きベクトル情報が取得される。取得された動きベクトル情報は、動きベクトルバッファ131に蓄積され、インター予測モード情報は、モード情報バッファ132に蓄積される。
ステップS175において、予測画像生成部133は、輝度信号について予測画像を生成する。すなわち、予測画像生成部133は、動きベクトルバッファ131から対象ブロックの動きベクトル情報を取得し、モード情報バッファ132から対応するインター予測モード情報を取得する。予測画像生成部133は、取得したこれらの情報と、フレームメモリ119から得られる参照画像画素値を用いて、対象となる輝度信号ブロックに対する予測画像の画素値を生成する。
ステップS176において、色差信号に対する動き予測処理が行われる。この色差信号に対する動き予測処理の詳細は、図21を参照して後述される。ステップS176の処理により、インター予測モード情報が示すブロックサイズにより対象となる色差信号ブロックが第1または第2のカテゴリに分類され、分類されたカテゴリに応じて、色差信号ブロックの動きベクトルが求められる。
ステップS177において、予測画像生成部133は、ステップS176の処理により求められた色差信号の動きベクトルを用いて、補償処理を行い、対象となる色差信号ブロックに対する予測画像を生成する。
生成された予測画像は、スイッチ125を介して、演算部115に供給され、ステップS134において逆直交変換部114の出力と加算される。
次に、図21のフローチャートを参照して、図20のステップS176における色差信号に対する動き予測処理について説明する。
色差ブロック判別部124は、モード情報バッファ132からの予測モードの情報が示す輝度信号ブロックのブロックサイズに応じて、色差信号ブロックのブロックサイズを判別する。色差ブロック判別部124は、判別した色差ブロックサイズの情報を、ブロックカテゴライズ部141に供給する。
ステップS181において、ブロックカテゴライズ部141は、色差ブロック判別部124からの色差ブロックサイズの情報に基づいて、色差信号ブロックが、2つのカテゴリのうちのどちらに属するかを分類する。
例えば、ブロックカテゴライズ部141は、色差信号におけるブロックサイズが、8×8画素、8×4画素、4×8画素、4×4画素のいずれかのサイズであった場合、色差信号ブロックを、第1のカテゴリに分類する。一方、ブロックカテゴライズ部141は、色差信号におけるブロックサイズが、4×2画素、2×4画素、2×2画素のいずれかのサイズであった場合、色差信号ブロックを、第2のカテゴリに分類する。
そして、ブロックカテゴライズ部141は、ステップS182において、色差信号ブロックが第1のカテゴリに属するブロックであるか否かを判定する。ステップS182において、第1のカテゴリに属するブロックではない、すなわち、第2のカテゴリに属するブロックであると判定された場合、処理は、ステップS183に進む。この場合、ブロックカテゴライズ部141から、色差信号の動き補償を行わせるための制御信号が、色差動きベクトル生成部142に供給される。
これに対応して、色差動きベクトル生成部142は、ステップS183において、色差動きベクトル情報を生成する。すなわち、色差動きベクトル生成部142は、図9Aを参照して上述したように、第2のカテゴリに属するとされた複数の輝度信号ブロック(例えば、4つの4×4ブロック)に単一の色差信号ブロック(例えば、1つの4×4ブロック)を対応させる。そして、色差動きベクトル生成部142は、動きベクトルバッファ131より取得される動きベクトル情報を用いて、その単一の色差信号ブロックの動きベクトル情報を生成する。
生成された色差動きベクトル情報は、予測画像生成部133に供給され、図20のステップS177において、色差信号の予測画像生成に用いられる。
一方、ステップS182において、第1のカテゴリに属するブロックであると判定された場合、処理は、ステップS184に進む。この場合、ブロックカテゴライズ部141から、H.264/AVC方式による色差信号の動き予測を行わせるための制御信号が予測画像生成部133に供給される。
これに対応して、予測画像生成部133は、ステップS184において、H.264/AVC方式による色差動き予測処理を行う。例えば、予測画像生成部133は、輝度信号ブロックが8×8画素ブロックの場合、4×4画素ブロックの色差信号ブロックについて、図2を参照して上述した動き予測処理を行う。
生成された色差動きベクトル情報は、図20のステップS177において、色差信号ブロックの予測画像生成に用いられる。
以上のよう、色差動きベクトル情報は、輝度信号ブロックの動きベクトル情報が用いられて生成される。これに対して、次に説明するように、符号化側から色差動きベクトル差分情報が送られてくる場合には、差分情報から、輝度信号ブロックの動きベクトル情報が用いられて生成される色差動きベクトル予測情報が差分されて、色差動きベクトルが生成される。
次に、図22のフローチャートを参照して、符号化側から色差動きベクトル差分情報が送られてくる場合の色差信号に対する動き予測処理について説明する。なお、図22のステップS191、S192、およびS196の処理は、図21のステップS181、S182、およびS184の処理と同じ処理である。
色差ブロック判別部124は、モード情報バッファ132からの予測モードの情報が示す輝度信号ブロックのブロックサイズに応じて、色差信号ブロックのブロックサイズを判別する。色差ブロック判別部124は、判別した色差ブロックサイズの情報を、ブロックカテゴライズ部141に供給する。
ステップS191において、ブロックカテゴライズ部141は、色差ブロック判別部124からの色差ブロックサイズの情報に基づいて、色差信号ブロックが、2つのカテゴリのうちのどちらに属するかを分類する。
そして、ブロックカテゴライズ部141は、ステップS192において、色差信号ブロックが第1のカテゴリに属するブロックであるか否かを判定する。ステップS192において、第1のカテゴリに属するブロックではない、すなわち、第2のカテゴリに属するブロックであると判定された場合、処理は、ステップS193に進む。この場合、ブロックカテゴライズ部141から、色差信号の動き補償を行わせるための制御信号が、色差動きベクトル生成部142に供給される。
これに対応して、色差動きベクトル生成部142は、ステップS193において、色差予測動きベクトル情報を生成する。すなわち、色差動きベクトル生成部142は、図9Aを参照して上述したように、第2のカテゴリに属するとされた複数の輝度信号ブロックに単一の色差信号ブロックを対応させる。そして、色差動きベクトル生成部142は、動きベクトルバッファ131より取得される動きベクトル情報を用いて、その単一の色差信号ブロックの予測動きベクトル情報を生成する。
ステップS194において、色差動きベクトル生成部142は、可逆復号部112からの色差動きベクトル差分情報を取得する。
ステップS195において、色差動きベクトル生成部142は、生成した色差予測動きベクトル情報と、取得した色差動きベクトル差分情報を加算することで、色差動きベクトル情報を生成する。
生成された色差動きベクトル情報は、予測画像生成部133に供給され、図20のステップS177において、色差信号の予測画像生成に用いられる。
一方、ステップS192において、第1のカテゴリに属するブロックであると判定された場合、処理は、ステップS196に進む。この場合、ブロックカテゴライズ部141から、H.264/AVC方式による色差信号の動き予測を行わせるための制御信号が予測画像生成部133に供給される。
これに対応して、予測画像生成部133は、ステップS196において、H.264/AVC方式による色差動き予測処理を行う。生成された色差動きベクトル情報は、図20のステップS177において、色差信号の予測画像生成に用いられる。
以上のように、画像符号化装置51および画像復号装置101においては、色差信号の動き予測・補償のブロックサイズにより分類されたカテゴリに応じて色差信号の動き予測が行われる。すなわち、色差信号の動き予測・補償のブロックサイズが直交変換ブロックのサイズより小さい対象ブロックの場合、複数の輝度信号ブロックに対応させられた単一の色差信号ブロックの動きベクトルが、複数の輝度信号ブロックの動きベクトルを用いて生成される。
これにより、色差に関する4×4直交変換ブロック内に、動き補償のブロック境界が内在しないことになり、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。
さらにまた、動き補償の際、H.264/AVC方式においては、輝度信号ブロックが4×4画素であったら、色差信号については、4つの2×2画素ブロックに対してアドレスの計算を行い、メモリアクセスを行う必要があった。これに対して、上述した処理を行うことにより、メモリアクセスの計算は1回で済むことになり、必要となるメモリバンド幅を減少させることができる。
また、上記説明においては、マクロブロックの大きさが、16×16画素の場合について説明してきたが、本発明は、上述した非特許文献4に記載の拡張されたマクロブロックサイズに対しても適用することが可能である。
[拡張マクロブロックサイズへの適用の説明]
図23は、非特許文献4で提案されているブロックサイズの例を示す図である。非特許文献4では、マクロブロックサイズが32×32画素に拡張されている。
図23の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図23の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図23の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
すなわち、32×32画素のマクロブロックは、図23の上段に示される32×32画素、32×16画素、16×32画素、および16×16画素のブロックでの処理が可能である。
上段の右側に示される16×16画素のブロックは、H.264/AVC方式と同様に、中段に示される16×16画素、16×8画素、8×16画素、および8×8画素のブロックでの処理が可能である。
中段の右側に示される8×8画素のブロックは、H.264/AVC方式と同様に、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックでの処理が可能である。
これらのブロックは、以下の3階層に分類することができる。すなわち、図23の上段に示される32×32画素、32×16画素、および16×32画素のブロックを第1階層と呼ぶ。上段の右側に示される16×16画素のブロック、並びに、中段に示される16×16画素、16×8画素、および8×16画素のブロックを、第2階層と呼ぶ。中段の右側に示される8×8画素のブロック、並びに、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックを、第3階層と呼ぶ。
このような階層構造を採用することにより、非特許文献1の提案では、16×16画素のブロック以下に関しては、H.264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
以上のように提案される拡張されたマクロブロックサイズへの本発明の適用方法は、次の通りである。
例えば、上述した階層構造により、32×32マクロブロックが符号化される場合、輝度信号の符号化の最小単位は、H.264/AVC方式で定められているのと同様に、4×4画素、すなわち、色差信号の符号化の最小単位は、2×2画素となる。したがって、直交変換の最小単位が4×4画素である場合、図9Aに示された方法を適用することが可能になる。
また、拡張マクロブロックサイズにおいては、図23に示された階層構造のうち、8×8画素未満のブロックサイズが用いられず、直交変換の最小単位が、色差信号を含め、8×8画素である場合も考えられる。このような場合に、入力信号のフォーマットが4:2:0であるときには、色差信号ブロックの最小単位が4×4画素ということになり、直交変換の最小単位よりも小さくなってしまう。
このような場合には、図9Aの1乃至3、Cを付したブロックのサイズが8×8画素として、図9Aに示した方法を適用することにより、色差ブロックの最小単位が直交変換の最小単位よりも小さくなることを抑制することができる。
さらに、上記説明においては、入力信号のフォーマットが4:2:0の場合について説明したが、次に、図24を参照して、入力信号のフォーマットが4:2:2の場合について考える。
なお、入力信号のフォーマットが4:4:4の場合、輝度信号ブロックと色差信号ブロックは同一の大きさであるので、上述したように、色差ブロックの最小単位が直交変換の最小単位よりも小さくなることはない。
入力信号のフォーマットが4:2:2の場合で、輝度信号ブロックが、図9Bに示された8×4画素であるとき、これに対応する色差信号ブロックは、4×4画素となり、色差ブロックの最小単位が直交変換の最小単位よりも小さくなることはない。
これに対して、輝度信号ブロックが、図24に示されるように、4×4画素または4×8画素であるとき、本発明を適用することができる。
すなわち、図24Aの例においては、入力信号のフォーマットが4:2:2であり、輝度信号ブロックが4×4画素である場合が示されている。このとき、0および1が付された2つの輝度信号の4×4ブロックに、Cが付された1つの色差信号の4×4ブロックが対応することになる。
したがって、図24Aの場合、0および1が付された2つの輝度信号のブロックに対する動きベクトル情報mv0,mv1から、Cが付された色差信号のブロックに対する動きベクトル情報mvc、または予測動きベクトル情報pmvcが生成可能である。
また、図24Bの例においては、入力信号のフォーマットが4:2:2であり、輝度信号ブロックが4×8画素である場合が示されている。このとき、0および1が付された2つの輝度信号の4×8ブロックに、Cが付された1つの色差信号の4×8ブロックが対応することになる。
したがって、図24Bの場合も、0および1が付された2つの輝度信号のブロックに対する動きベクトル情報mv0,mv1から、Cが付された色差信号のブロックに対する動きベクトル情報mvc、または予測動きベクトル情報pmvcが生成可能である。
ただし、Cが付された色差信号のブロックのサイズが4×8となるが、図24Bに示されるように、直交変換の大きさは4×4である。
以上においては、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、本発明はこれに限らず、1つのマクロブロックを複数の動きパーティションに分割し、動き補償を行い、差分値に対して直交変換を行う、その他の符号化方式/復号方式を適用することができる。
なお、本発明は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータの構成例]
図25は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、およびドライブ210が接続されている。
入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを入出力インタフェース205及びバス204を介してRAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置51や画像復号装置101は、任意の電子機器に適用することができる。以下にその例について説明する。
[テレビジョン受像機の構成例]
図26は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図26に示されるテレビジョン受像機300は、地上波チューナ313、ビデオデコーダ315、映像信号処理回路318、グラフィック生成回路319、パネル駆動回路320、および表示パネル321を有する。
地上波チューナ313は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ315に供給する。ビデオデコーダ315は、地上波チューナ313から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路318に供給する。
映像信号処理回路318は、ビデオデコーダ315から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路319に供給する。
グラフィック生成回路319は、表示パネル321に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路320に供給する。また、グラフィック生成回路319は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路320に供給するといった処理も適宜行う。
パネル駆動回路320は、グラフィック生成回路319から供給されたデータに基づいて表示パネル321を駆動し、番組の映像や上述した各種の画面を表示パネル321に表示させる。
表示パネル321はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路320による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機300は、音声A/D(Analog/Digital)変換回路314、音声信号処理回路322、エコーキャンセル/音声合成回路323、音声増幅回路324、およびスピーカ325も有する。
地上波チューナ313は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ313は、取得した音声信号を音声A/D変換回路314に供給する。
音声A/D変換回路314は、地上波チューナ313から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路322に供給する。
音声信号処理回路322は、音声A/D変換回路314から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、音声信号処理回路322から供給された音声データを音声増幅回路324に供給する。
音声増幅回路324は、エコーキャンセル/音声合成回路323から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ325から出力させる。
さらに、テレビジョン受像機300は、デジタルチューナ316およびMPEGデコーダ317も有する。
デジタルチューナ316は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ317に供給する。
MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ317は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路322に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路318に供給する。また、MPEGデコーダ317は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU332に供給する。
テレビジョン受像機300は、このように映像パケットをデコードするMPEGデコーダ317として、上述した画像復号装置101を用いる。したがって、MPEGデコーダ317は、画像復号装置101の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
MPEGデコーダ317から供給された映像データは、ビデオデコーダ315から供給された映像データの場合と同様に、映像信号処理回路318において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路319において、生成された映像データ等が適宜重畳され、パネル駆動回路320を介して表示パネル321に供給され、その画像が表示される。
MPEGデコーダ317から供給された音声データは、音声A/D変換回路314から供給された音声データの場合と同様に、音声信号処理回路322において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路323を介して音声増幅回路324に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ325から出力される。
また、テレビジョン受像機300は、マイクロホン326、およびA/D変換回路327も有する。
A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、テレビジョン受像機300のユーザ(ユーザA)の音声のデータがA/D変換回路327から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路323は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
さらに、テレビジョン受像機300は、音声コーデック328、内部バス329、SDRAM(Synchronous Dynamic Random Access Memory)330、フラッシュメモリ331、CPU332、USB(Universal Serial Bus) I/F333、およびネットワークI/F334も有する。
A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック328に供給する。
音声コーデック328は、A/D変換回路327から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス329を介してネットワークI/F334に供給する。
ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続される。ネットワークI/F334は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック328から供給された音声データを送信する。また、ネットワークI/F334は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子335を介して受信し、それを、内部バス329を介して音声コーデック328に供給する。
音声コーデック328は、ネットワークI/F334から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、音声コーデック328から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
SDRAM330は、CPU332が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ331は、CPU332により実行されるプログラムを記憶する。フラッシュメモリ331に記憶されているプログラムは、テレビジョン受像機300の起動時などの所定のタイミングでCPU332により読み出される。フラッシュメモリ331には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ331には、CPU332の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ331は、例えばCPU332の制御により、そのMPEG-TSを、内部バス329を介してMPEGデコーダ317に供給する。
MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機300は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ317を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機300は、リモートコントローラ351から送信される赤外線信号を受光する受光部337も有する。
受光部337は、リモートコントローラ351からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU332に出力する。
CPU332は、フラッシュメモリ331に記憶されているプログラムを実行し、受光部337から供給される制御コードなどに応じてテレビジョン受像機300の全体の動作を制御する。CPU332とテレビジョン受像機300の各部は、図示せぬ経路を介して接続されている。
USB I/F333は、USB端子336に装着されたUSBケーブルを介して接続される、テレビジョン受像機300の外部の機器との間でデータの送受信を行う。ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機300は、MPEGデコーダ317として画像復号装置101を用いることにより、処理の高速化を実現するとともに、符号化効率を向上することができる。その結果として、テレビジョン受像機300は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高速に、より高精細な復号画像を得て、表示することができる。
[携帯電話機の構成例]
図31は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
図31に示される携帯電話機400は、各部を統括的に制御するようになされた主制御部450、電源回路部451、操作入力制御部452、画像エンコーダ453、カメラI/F部454、LCD制御部455、画像デコーダ456、多重分離部457、記録再生部462、変復調回路部458、および音声コーデック459を有する。これらは、バス460を介して互いに接続されている。
また、携帯電話機400は、操作キー419、CCD(Charge Coupled Devices)カメラ416、液晶ディスプレイ418、記憶部423、送受信回路部463、アンテナ414、マイクロホン(マイク)421、およびスピーカ417を有する。
電源回路部451は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機400を動作可能な状態に起動する。
携帯電話機400は、CPU、ROMおよびRAM等でなる主制御部450の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機400は、マイクロホン(マイク)421で集音した音声信号を、音声コーデック459によってデジタル音声データに変換し、これを変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機400は、アンテナ414で受信した受信信号を送受信回路部463で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部458でスペクトラム逆拡散処理し、音声コーデック459によってアナログ音声信号に変換する。携帯電話機400は、その変換して得られたアナログ音声信号をスピーカ417から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機400は、操作キー419の操作によって入力された電子メールのテキストデータを、操作入力制御部452において受け付ける。携帯電話機400は、そのテキストデータを主制御部450において処理し、LCD制御部455を介して、画像として液晶ディスプレイ418に表示させる。
また、携帯電話機400は、主制御部450において、操作入力制御部452が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機400は、その電子メールデータを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機400は、復元された電子メールデータを、LCD制御部455を介して液晶ディスプレイ418に表示する。
なお、携帯電話機400は、受信した電子メールデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
この記憶部423は、書き換え可能な任意の記憶媒体である。記憶部423は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機400は、撮像によりCCDカメラ416で画像データを生成する。CCDカメラ416は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部454を介して、画像エンコーダ453で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
携帯電話機400は、このような処理を行う画像エンコーダ453として、上述した画像符号化装置51を用いる。したがって、画像エンコーダ453は、画像符号化装置51の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
なお、携帯電話機400は、このとき同時に、CCDカメラ416で撮像中にマイクロホン(マイク)421で集音した音声を、音声コーデック459においてアナログデジタル変換し、さらに符号化する。
携帯電話機400は、多重分離部457において、画像エンコーダ453から供給された符号化画像データと、音声コーデック459から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機400は、その結果得られる多重化データを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機400は、CCDカメラ416で生成した画像データを、画像エンコーダ453を介さずに、LCD制御部455を介して液晶ディスプレイ418に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機400は、多重分離部457において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機400は、画像デコーダ456において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部455を介して液晶ディスプレイ418に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ418に表示される。
携帯電話機400は、このような処理を行う画像デコーダ456として、上述した画像復号装置101を用いる。したがって、画像デコーダ456は、画像復号装置101の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
このとき、携帯電話機400は、同時に、音声コーデック459において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ417より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機400は、受信した簡易ホームページ等にリンクされたデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
また、携帯電話機400は、主制御部450において、撮像されてCCDカメラ416で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機400は、赤外線通信部481で赤外線により外部の機器と通信することができる。
携帯電話機400は、画像エンコーダ453として画像符号化装置51を用いることにより、処理の高速化を実現するとともに、符号化効率を向上させることができる。結果として、携帯電話機400は、符号化効率のよい符号化データ(画像データ)を、より高速に、他の装置に提供することができる。
また、携帯電話機400は、画像デコーダ456として画像復号装置101を用いることにより、処理の高速化を実現するとともに、符号化効率を向上させることができる。その結果として、携帯電話機400は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高速に、より高精細な復号画像を得て、表示することができる。
なお、以上において、携帯電話機400が、CCDカメラ416を用いるように説明したが、このCCDカメラ416の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機400は、CCDカメラ416を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機400として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機400と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機400の場合と同様に、画像符号化装置51および画像復号装置101を適用することができる。
[ハードディスクレコーダの構成例]
図32は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図32に示されるハードディスクレコーダ(HDDレコーダ)500は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ500は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ500は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ500は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることができる。
ハードディスクレコーダ500は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図32に示されるように、ハードディスクレコーダ500は、受信部521、復調部522、デマルチプレクサ523、オーディオデコーダ524、ビデオデコーダ525、およびレコーダ制御部526を有する。ハードディスクレコーダ500は、さらに、EPGデータメモリ527、プログラムメモリ528、ワークメモリ529、ディスプレイコンバータ530、OSD(On Screen Display)制御部531、ディスプレイ制御部532、記録再生部533、D/Aコンバータ534、および通信部535を有する。
また、ディスプレイコンバータ530は、ビデオエンコーダ541を有する。記録再生部533は、エンコーダ551およびデコーダ552を有する。
受信部521は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部526に出力する。レコーダ制御部526は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ528に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部526は、このとき、ワークメモリ529を必要に応じて使用する。
通信部535は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部535は、レコーダ制御部526により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部522は、チューナより供給された信号を、復調し、デマルチプレクサ523に出力する。デマルチプレクサ523は、復調部522より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ524、ビデオデコーダ525、またはレコーダ制御部526に出力する。
オーディオデコーダ524は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部533に出力する。ビデオデコーダ525は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ530に出力する。レコーダ制御部526は、入力されたEPGデータをEPGデータメモリ527に供給し、記憶させる。
ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されたビデオデータを、ビデオエンコーダ541により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部533に出力する。また、ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されるビデオデータの画面のサイズを、モニタ560のサイズに対応するサイズに変換する。ディスプレイコンバータ530は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ541によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部532に出力する。
ディスプレイ制御部532は、レコーダ制御部526の制御のもと、OSD(On Screen Display)制御部531が出力したOSD信号を、ディスプレイコンバータ530より入力されたビデオ信号に重畳し、モニタ560のディスプレイに出力し、表示させる。
モニタ560にはまた、オーディオデコーダ524が出力したオーディオデータが、D/Aコンバータ534によりアナログ信号に変換されて供給されている。モニタ560は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部533は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部533は、例えば、オーディオデコーダ524より供給されるオーディオデータを、エンコーダ551によりMPEG方式でエンコードする。また、記録再生部533は、ディスプレイコンバータ530のビデオエンコーダ541より供給されるビデオデータを、エンコーダ551によりMPEG方式でエンコードする。記録再生部533は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部533は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部533は、再生ヘッドを介してハードディスクに記録されているデータを再
生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記
録再生部533は、デコーダ552によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部533は、復号したオーディオデータをD/A変換し、モニタ560のスピーカに出力する。また、記録再生部533は、復号したビデオデータをD/A変換し、モニタ560のディスプレイに出力する。
レコーダ制御部526は、受信部521を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ527から最新のEPGデータを読み出し、それをOSD制御部531に供給する。OSD制御部531は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部532に出力する。ディスプレイ制御部532は、OSD制御部531より入力されたビデオデータをモニタ560のディスプレイに出力し、表示させる。これにより、モニタ560のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ500は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部535は、レコーダ制御部526に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部526に供給する。レコーダ制御部526は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部533に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部526および記録再生部533が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部526は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ530に供給する。ディスプレイコンバータ530は、ビデオデコーダ525から供給されるビデオデータと同様に、レコーダ制御部526から供給されるビデオデータを処理し、ディスプレイ制御部532を介してモニタ560に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部526が、復号したオーディオデータを、D/Aコンバータ534を介してモニタ560に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部526は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ527に供給する。
以上のようなハードディスクレコーダ500は、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダとして画像復号装置101を用いる。したがって、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダは、画像復号装置101の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
したがって、ハードディスクレコーダ500は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ500は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部533のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高速に、より高精細な復号画像を得て、モニタ560に表示させることができる。
また、ハードディスクレコーダ500は、エンコーダ551として画像符号化装置51を用いる。したがって、エンコーダ551は、画像符号化装置51の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
したがって、ハードディスクレコーダ500は、例えば、処理の高速化を実現するとともに、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ500は、より高速に、ハードディスクの記憶領域をより効率よく使用することができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ500について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ500の場合と同様に、画像符号化装置51および画像復号装置101を適用することができる。
[カメラの構成例]
図33は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
図33に示されるカメラ600は、被写体を撮像し、被写体の画像をLCD616に表示させたり、それを画像データとして、記録メディア633に記録したりする。
レンズブロック611は、光(すなわち、被写体の映像)を、CCD/CMOS612に入射させる。CCD/CMOS612は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部613に供給する。
カメラ信号処理部613は、CCD/CMOS612から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部614に供給する。画像信号処理部614は、コントローラ621の制御の下、カメラ信号処理部613から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ641で例えばMPEG方式により符号化したりする。画像信号処理部614は、画像信号を符号化して生成した符号化データを、デコーダ615に供給する。さらに、画像信号処理部614は、オンスクリーンディスプレイ(OSD)620において生成された表示用データを取得し、それをデコーダ615に供給する。
以上の処理において、カメラ信号処理部613は、バス617を介して接続されるDRAM(Dynamic Random Access Memory)618を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM618に保持させる。
デコーダ615は、画像信号処理部614から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD616に供給する。また、デコーダ615は、画像信号処理部614から供給された表示用データをLCD616に供給する。LCD616は、デコーダ615から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ620は、コントローラ621の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス617を介して画像信号処理部614に出力する。
コントローラ621は、ユーザが操作部622を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス617を介して、画像信号処理部614、DRAM618、外部インタフェース619、オンスクリーンディスプレイ620、およびメディアドライブ623等を制御する。FLASH ROM624には、コントローラ621が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ621は、画像信号処理部614やデコーダ615に代わって、DRAM618に記憶されている画像データを符号化したり、DRAM618に記憶されている符号化データを復号したりすることができる。このとき、コントローラ621は、画像信号処理部614やデコーダ615の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部614やデコーダ615が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部622から画像印刷の開始が指示された場合、コントローラ621は、DRAM618から画像データを読み出し、それを、バス617を介して外部インタフェース619に接続されるプリンタ634に供給して印刷させる。
さらに、例えば、操作部622から画像記録が指示された場合、コントローラ621は、DRAM618から符号化データを読み出し、それを、バス617を介してメディアドライブ623に装着される記録メディア633に供給して記憶させる。
記録メディア633は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア633は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ623と記録メディア633を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース619は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ634と接続される。また、外部インタフェース619には、必要に応じてドライブ631が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア632が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM624にインストールされる。
さらに、外部インタフェース619は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ621は、例えば、操作部622からの指示に従って、DRAM618から符号化データを読み出し、それを外部インタフェース619から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ621は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース619を介して取得し、それをDRAM618に保持させたり、画像信号処理部614に供給したりすることができる。
以上のようなカメラ600は、デコーダ615として画像復号装置101を用いる。したがって、デコーダ615は、画像復号装置101の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
したがって、カメラ600は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、カメラ600は、例えば、CCD/CMOS612において生成された画像データや、DRAM618または記録メディア633から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高速に、より高精細な復号画像を得て、LCD616に表示させることができる。
また、カメラ600は、エンコーダ641として画像符号化装置51を用いる。したがって、エンコーダ641は、画像符号化装置51の場合と同様に、色差信号のブロックサイズが、直交変換のブロックサイズよりも小さい場合に、複数の輝度信号ブロックに対して対応させた単一の色差信号ブロックの動きベクトルを、複数の輝度信号ブロックの動きベクトルを用いて生成する。これにより、直交変換による非0係数の出現が減少されるので、符号化効率を改善することができる。また、メモリアクセスの計算が1回で済むので、必要となるメモリバンド幅を減少させることができる。
したがって、カメラ600は、例えば、処理の高速化を実現するとともに、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ600は、より高速に、DRAM618や記録メディア633の記憶領域をより効率よく使用することができる。
なお、コントローラ621が行う復号処理に画像復号装置101の復号方法を適用するようにしてもよい。同様に、コントローラ621が行う符号化処理に画像符号化装置51の符号化方法を適用するようにしてもよい。
また、カメラ600が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、画像符号化装置51および画像復号装置101は、上述した装置以外の装置やシステムにも適用可能である。