以下、図を参照して本発明の実施の形態について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(隣接画素内挿フィルタ切替:イントラ予測の例)
2.第2の実施の形態(隣接画素内挿フィルタ切替:2次予測の例)
3.第3の実施の形態(隣接画素内挿フィルタオンオフ制御:イントラ予測の例)
4.第4の実施の形態(隣接画素内挿フィルタオンオフ制御:2次予測の例)
<1.第1の実施の形態>
[画像符号化装置の構成例]
図1は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
この画像符号化装置51は、例えば、H.264及びMPEG-4 Part10(Advanced Video Coding)(以下H.264/AVCと記す)方式で画像を圧縮符号化する。
図1の例において、画像符号化装置51は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、隣接画素内挿フィルタ切替部75、動き予測・補償部76、予測画像選択部77、およびレート制御部78により構成されている。
A/D変換部61は、入力された画像をA/D変換し、画面並べ替えバッファ62に出力し、記憶させる。画面並べ替えバッファ62は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)に応じて、符号化のためのフレームの順番に並べ替える。
演算部63は、画面並べ替えバッファ62から読み出された画像から、予測画像選択部77により選択されたイントラ予測部74からの予測画像または動き予測・補償部76からの予測画像を減算し、その差分情報を直交変換部64に出力する。直交変換部64は、演算部63からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部65は直交変換部64が出力する変換係数を量子化する。
量子化部65の出力となる、量子化された変換係数は、可逆符号化部66に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
可逆符号化部66は、イントラ予測を示す情報などをイントラ予測部74から取得し、インター予測モードを示す情報などを動き予測・補償部76から取得する。なお、イントラ予測を示す情報は、以下、イントラ予測モード情報とも称する。また、インター予測を示す情報モードを示す情報は、以下、インター予測モード情報とも称する。
可逆符号化部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により予測画像選択部77から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ71は、復号された画像のブロック歪を除去した後、フレームメモリ72に供給し、蓄積させる。フレームメモリ72には、デブロックフィルタ71によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
スイッチ73はフレームメモリ72に蓄積された参照画像を動き予測・補償部76またはイントラ予測部74に出力する。
この画像符号化装置51においては、例えば、画面並べ替えバッファ62からのIピクチャ、Bピクチャ、およびPピクチャが、イントラ予測(イントラ処理とも称する)する画像として、イントラ予測部74に供給される。また、画面並べ替えバッファ62から読み出されたBピクチャおよびPピクチャが、インター予測(インター処理とも称する)する画像として、動き予測・補償部76に供給される。
イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像とフレームメモリ72から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
このイントラ予測処理に先立ち、イントラ予測部74は、各対象ブロックのイントラ予測に用いられる画素であって、対象ブロックに所定の位置関係で隣接する隣接画素に対して、フィルタ処理を施す。このフィルタ処理には、イントラ予測部74により供給されたイントラ予測モードなどに対応して、隣接画素内挿フィルタ切替部75により設定されたフィルタ係数が用いられる。すなわち、イントラ予測部74において、候補となる全てのイントラ予測モードのイントラ予測処理には、隣接画素内挿フィルタ切替部75により設定されたフィルタ係数で、フィルタ処理が施された隣接画素が用いられる。
イントラ予測部74は、予測画像を生成したイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部74は、最適イントラ予測モードで生成された予測画像と、対応する最適イントラ予測モードについて算出されたコスト関数値を、予測画像選択部77に供給する。
イントラ予測部74は、予測画像選択部77により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。可逆符号化部66は、イントラ予測部74から情報が送られてきた場合には、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
隣接画素内挿フィルタ切替部75は、後述する図28の学習装置251において、トレーニング画像が用いられて学習されることにより得られた、量子化パラメータおよびイントラ予測モードに対応したフィルタ係数を記憶している。
隣接画素内挿フィルタ切替部75には、レート制御部78からの量子化パラメータが供給され、イントラ予測部74からイントラ予測モードの情報が供給される。隣接画素内挿フィルタ切替部75は、レート制御部78からの量子化パラメータおよびイントラ予測部74からのイントラ予測モードに対応して、フィルタ係数を設定する。隣接画素内挿フィルタ切替部75は、設定したフィルタ係数を、イントラ予測部74に供給する。
なお、隣接画素内挿フィルタ切替部75においては、フィルタ係数を、量子化パラメータおよびイントラ予測モードの両方でなくても、どちらか一方に対応するように学習、記憶しておくことも可能である。
また、隣接画素内挿フィルタ切替部75においては、予めオフラインで学習されたフィルタ係数が記憶されているが、その代わりに、オンラインでフィルタ係数が算出されるようにすることも可能である。この場合、復号側に送るために、点線矢印に示されるように、隣接画素内挿フィルタ切替部75により設定されたフィルタ係数が、可逆符号化部66に出力される。
動き予測・補償部76は、候補となる全てのインター予測モードの動き予測・補償処理を行う。すなわち、動き予測・補償部76には、画面並べ替えバッファ62から読み出されたインター処理する画像と、スイッチ73を介してフレームメモリ72から参照画像が供給される。動き予測・補償部76は、インター処理する画像と参照画像に基づいて、候補となる全てのインター予測モードの動きベクトルを検出し、動きベクトルに基づいて参照画像に補償処理を施し、予測画像を生成する。
また、動き予測・補償部76は、候補となる全てのインター予測モードに対してコスト関数値を算出する。動き予測・補償部76は、算出したコスト関数値のうち、最小値を与える予測モードを、最適インター予測モードとして決定する。
動き予測・補償部76は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部77に供給する。動き予測・補償部76は、予測画像選択部77により最適インター予測モードで生成された予測画像が選択された場合、最適インター予測モードを示す情報(インター予測モード情報)を可逆符号化部66に出力する。
なお、必要であれば、動きベクトル情報、フラグ情報、参照フレーム情報なども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部76からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
予測画像選択部77は、イントラ予測部74または動き予測・補償部76より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部77は、決定された最適予測モードの予測画像を選択し、演算部63,70に供給する。このとき、予測画像選択部77は、予測画像の選択情報を、イントラ予測部74または動き予測・補償部76に供給する。
レート制御部78は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化パラメータにより、量子化部65の量子化動作のレートを制御する。
量子化部65のレートの制御に用いられた量子化パラメータは、可逆符号化部66に供給され、可逆符号化処理され、圧縮画像のヘッダ部に挿入される。また、この量子化パラメータは、隣接画素内挿フィルタ切替部75に供給され、隣接画素に施すフィルタ処理に用いられるフィルタ係数の設定に用いられる。
[H.264/AVC方式におけるイントラ予測処理の説明]
はじめに、H.264/AVC方式で定められているイントラ予測の各モードについて説明する。
まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、イントラ4×4予測モード、イントラ8×8予測モード、およびイントラ16×16予測モードの3通りの方式が定められている。これは、ブロック単位を定めるモードであり、マクロブロック毎に設定される。また、色差信号に対しては、マクロブロック毎に輝度信号とは独立したイントラ予測モードを設定することが可能である。
さらに、イントラ4×4予測モードの場合、4×4画素の対象ブロック毎に、9種類の予測モードから1つの予測モードを設定することができる。イントラ8×8予測モードの場合、8×8画素の対象ブロック毎に、9種類の予測モードから1つの予測モードを設定することができる。また、イントラ16×16予測モードの場合、16×16画素の対象マクロブロックに対して、4種類の予測モードから1つの予測モードを設定することができる。
なお、以下、イントラ4×4予測モード、イントラ8×8予測モード、およびイントラ16×16予測モードは、それぞれ、4×4画素のイントラ予測モード、8×8画素のイントラ予測モード、および16×16画素のイントラ予測モードとも適宜称する。
図2の例において、各ブロックに付されている数字−1乃至25は、その各ブロックのビットストリーム順(復号側における処理順)を表している。なお、輝度信号については、マクロブロックが4×4画素に分割されて、4×4画素のDCTが行われる。そして、イントラ16×16予測モードの場合のみ、−1のブロックに示されるように、各ブロックの直流成分を集めて、4×4行列が生成され、これに対して、さらに、直交変換が施される。
一方、色差信号については、マクロブロックが4×4画素に分割され、4×4画素のDCTが行われた後に、16および17の各ブロックに示されるように、各ブロックの直流成分を集めて、2×2行列が生成され、これに対して、さらに、直交変換が施される。
なお、このことは、イントラ8×8予測モードに関しては、ハイプロファイルまたはそれ以上のプロファイルで、対象マクロブロックに、8×8直交変換が施される場合についてのみ適用可能である。
図3および図4は、9種類の輝度信号の4×4画素のイントラ予測モード(Intra_4x4_pred_mode)を示す図である。平均値(DC)予測を示すモード2以外の8種類の各モードは、それぞれ、図5の番号0,1,3乃至8で示される方向に対応している。
9種類のIntra_4x4_pred_modeについて、図6を参照して説明する。図6の例において、画素a乃至pは、イントラ処理される対象ブロックの画素を表し、画素値A乃至Mは、隣接ブロックに属する画素の画素値を表している。すなわち、画素a乃至pは、画面並べ替えバッファ62から読み出された処理対象の画像であり、画素値A乃至Mは、フレームメモリ72から読み出され、参照される復号済みの画像の画素値である。
図3および図4に示す各イントラ予測モードの場合、画素a乃至pの予測画素値は、隣接ブロックに属する画素の画素値A乃至Mを用いて、以下のように生成される。なお、画素値が“available”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由がなく、利用可能であることを表す。これに対して、画素値が“unavailable”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由により利用可能ではないことを表す。
モード0はVertical Prediction modeであり、画素値A乃至Dが “available” の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(1)のように生成される。
画素a, e, i, mの予測画素値 = A
画素b, f, j, nの予測画素値 = B
画素c, g, k, oの予測画素値 = C
画素d, h, l, pの予測画素値 = D ・・・(1)
モード1はHorizontal Prediction modeであり、画素値I乃至Lが “available” の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(2)のように生成される。
画素a, b, c, dの予測画素値 = I
画素e, f, g, hの予測画素値 = J
画素i, j, k, lの予測画素値 = K
画素m, n, o, pの予測画素値 = L ・・・(2)
モード2はDC Prediction modeであり、画素値A,B,C,D,I,J,K,Lが全て “available” である時、予測画素値は式(3)のように生成される。
(A+B+C+D+I+J+K+L+4) >> 3 ・・・(3)
また、画素値A,B,C,Dが全て “unavailable” である時、予測画素値は式(4)のように生成される。
(I+J+K+L+2) >> 2 ・・・(4)
また、画素値I,J,K,Lが全て “unavailable” である時、予測画素値は式(5)のように生成される。
(A+B+C+D+2) >> 2 ・・・(5)
なお、画素値A,B,C,D,I,J,K,Lが全て“unavailable” である時、128を予測画素値として用いる。
モード3はDiagonal_Down_Left Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(6)のように生成される。
画素aの予測画素値 = (A+2B+C+2) >> 2
画素b,eの予測画素値 = (B+2C+D+2) >> 2
画素c,f,iの予測画素値 = (C+2D+E+2) >> 2
画素d,g,j,mの予測画素値 = (D+2E+F+2) >> 2
画素h,k,nの予測画素値 = (E+2F+G+2) >> 2
画素l,oの予測画素値 = (F+2G+H+2) >> 2
画素pの予測画素値 = (G+3H+2) >> 2
・・・(6)
モード4はDiagonal_Down_Right Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが “available” の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(7)のように生成される。
画素mの予測画素値 = (J+2K+L+2) >> 2
画素i,nの予測画素値 = (I+2J+K+2) >> 2
画素e,j,oの予測画素値 = (M+2I+J+2) >> 2
画素a,f,k,pの予測画素値 = (A+2M+I+2) >> 2
画素b,g,lの予測画素値 = (M+2A+B+2) >> 2
画素c,hの予測画素値 = (A+2B+C+2) >> 2
画素dの予測画素値 = (B+2C+D+2) >> 2
・・・(7)
モード5はDiagonal_Vertical_Right Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(8)のように生成される。
画素a,jの予測画素値 = (M+A+1) >> 1
画素b,kの予測画素値 = (A+B+1) >> 1
画素c,lの予測画素値 = (B+C+1) >> 1
画素dの予測画素値 = (C+D+1) >> 1
画素e,nの予測画素値 = (I+2M+A+2) >> 2
画素f,oの予測画素値 = (M+2A+B+2) >> 2
画素g,pの予測画素値 = (A+2B+C+2) >> 2
画素hの予測画素値 = (B+2C+D+2) >> 2
画素iの予測画素値 = (M+2I+J+2) >> 2
画素mの予測画素値 = (I+2J+K+2) >> 2
・・・(8)
モード6はHorizontal_Down Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(9)のように生成される。
画素a,gの予測画素値 = (M+I+1) >> 1
画素b,hの予測画素値 = (I+2M+A+2) >> 2
画素cの予測画素値 = (M+2A+B+2) >> 2
画素dの予測画素値 = (A+2B+C+2) >> 2
画素e,kの予測画素値 = (I+J+1) >> 1
画素f,lの予測画素値 = (M+2I+J+2) >> 2
画素i,oの予測画素値 = (J+K+1) >> 1
画素j,pの予測画素値 = (I+2J+K+2) >> 2
画素mの予測画素値 = (K+L+1) >> 1
画素nの予測画素値 = (J+2K+L+2) >> 2
・・・(9)
モード7は、Vertical_Left Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(10)のように生成される。
画素aの予測画素値 = (A+B+1) >> 1
画素b,iの予測画素値 = (B+C+1) >> 1
画素c,jの予測画素値 = (C+D+1) >> 1
画素d,kの予測画素値 = (D+E+1) >> 1
画素lの予測画素値 = (E+F+1) >> 1
画素eの予測画素値 = (A+2B+C+2) >> 2
画素f,mの予測画素値 = (B+2C+D+2) >> 2
画素g,nの予測画素値 = (C+2D+E+2) >> 2
画素h,oの予測画素値 = (D+2E+F+2) >> 2
画素pの予測画素値 = (E+2F+G+2) >> 2
・・・(10)
モード8は、Horizontal_Up Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(11)のように生成される。
画素aの予測画素値 = (I+J+1) >> 1
画素bの予測画素値 = (I+2J+K+2) >> 2
画素c,eの予測画素値 = (J+K+1) >> 1
画素d,fの予測画素値 = (J+2K+L+2) >> 2
画素g,iの予測画素値 = (K+L+1) >> 1
画素h,jの予測画素値 = (K+3L+2) >> 2
画素k,l,m,n,o,pの予測画素値 = L
・・・(11)
次に、図7を参照して、輝度信号の4×4画素のイントラ予測モード(Intra_4x4_pred_mode)の符号化方式について説明する。図7の例において、4×4画素からなり、符号化対象となる対象ブロックCが示されており、対象ブロックCに隣接する4×4画素からなるブロックAおよびブロックBが示されている。
この場合、対象ブロックCにおけるIntra_4x4_pred_modeと、ブロックAおよびブロックBにおけるIntra_4x4_pred_modeとは高い相関があると考えられる。この相関性を用いて、次のように符号化処理を行うことにより、より高い符号化効率を実現することができる。
すなわち、図7の例において、ブロックAおよびブロックBにおけるIntra_4x4_pred_modeを、それぞれ、Intra_4x4_pred_modeAおよびIntra_4x4_pred_modeBとして、MostProbableModeを次の式(12)と定義する。
MostProbableMode=Min(Intra_4x4_pred_modeA, Intra_4x4_pred_modeB)
・・・(12)
すなわち、ブロックAおよびブロックBのうち、より小さなmode_numberを割り当てられている方をMostProbableModeとする。
ビットストリーム中には、対象ブロックCに対するパラメータとして、prev_intra4x4_pred_mode_flag[luma4x4BlkIdx] および rem_intra4x4_pred_mode[luma4x4BlkIdx] という2つの値が定義されており、次の式(13)に示される擬似コードに基づく処理により、復号処理が行われ、対象ブロックCに対するIntra_4x4_pred_mode、Intra4x4PredMode[luma4x4BlkIdx] の値を得ることができる。
if(prev_intra4x4_pred_mode_flag[luma4x4BlkIdx])
Intra4x4PredMode[luma4x4BlkIdx] = MostProbableMode
else
if(rem_intra4x4_pred_mode[luma4x4BlkIdx] < MostProbableMode)
Intra4x4PredMode[luma4x4BlkIdx]=rem_intra4x4_pred_mode[luma4x4BlkIdx]
else
Intra4x4PredMode[luma4x4BlkIdx]=rem_intra4x4_pred_mode[luma4x4BlkIdx] + 1
・・・(13)
次に、8×8画素のイントラ予測モードについて説明する。図8および図9は、9種類の輝度信号の8×8画素のイントラ予測モード(Intra_8x8_pred_mode)を示す図である。
対象の8×8ブロックにおける画素値を、p[x,y](0≦x≦7;0≦y≦7)とし、隣接ブロックの画素値をp[-1,-1],…,p[-1,15],p[-1,0],…,[p-1,7]のように表すものとする。
8×8画素のイントラ予測モードについては、予測値を生成するに先立ち、隣接画素にローパスフィルタリング処理が施される。ここで、ローパスフィルタリング処理前の画素値を、p[-1,-1],…,p[-1,15],p[-1,0],…p[-1,7]、処理後の画素値をp’[-1,-1],…,p’[-1,15],p’[-1,0],…p’[-1,7]と表すとする。
まず、p’[0,-1]は、p[-1,-1] が “available” である場合には、次の式(14)のように算出され、“not available” である場合には、次の式(15)のように算出される。
p’[0,-1] = (p[-1,-1] + 2*p[0,-1] + p[1,-1] + 2) >> 2
・・・(14)
p’[0,-1] = (3*p[0,-1] + p[1,-1] + 2) >> 2
・・・(15)
p’[x,-1] (x=0,…,7)は、次の式(16)のように算出される。
p’[x,-1] = (p[x-1,-1] + 2*p[x,-1] + p[x+1,-1] + 2) >>2
・・・(16)
p’[x,-1] (x=8,…,15)は、p[x,-1] (x=8,…,15) が “available” である場合には、次の式(17)のように算出される。
p’[x,-1] = (p[x-1,-1] + 2*p[x,-1] + p[x+1,-1] + 2) >>2
p’[15,-1] = (p[14,-1] + 3*p[15,-1] + 2) >>2
・・・(17)
p’[-1,-1]は、p[-1,-1]が “available” である場合には、以下のように算出される。すなわち、p’[-1,-1]は、p[0,-1]及びp[-1,0]の双方がavailableである場合には、式(18)のように算出され、p[-1,0] が “unavailable” である場合には、式(19)のように算出される。また、p’[-1,-1]は、p[0,-1] が “unavailable” である場合には、式(20)のように算出される。
p’[-1,-1] = (p[0,-1] + 2*p[-1,-1] + p[-1,0] + 2) >>2
・・・(18)
p’[-1,-1] = (3*p[-1,-1] + p[0,-1] + 2) >>2
・・・(19)
p’[-1,-1] = (3*p[-1,-1] + p[-1,0] + 2) >>2
・・・(20)
p’[-1,y] (y=0, … ,7) は、p[-1,y] (y=0, … ,7) が “available” の時、以下のように算出される。すなわち、まず、p’[-1,0]は、p[-1,-1]が “available” である場合には、次の式(21)のように算出され、“unavailable” である場合には、式(22)のように算出される。
p’[-1,0] = (p[-1,-1] + 2*p[-1,0] + p[-1,1] + 2) >>2
・・・(21)
p’[-1,0] = (3*p[-1,0] + p[-1,1] + 2) >>2
・・・(22)
また、p’[-1,y] (y=1,…,6)は、次の式(23)のように算出され、p’[-1,7]は、式(24)のように算出される。
p[-1,y] = (p[-1,y-1] + 2*p[-1,y] + p[-1,y+1] + 2) >>2
・・・(23)
p’[-1,7] = (p[-1,6] + 3*p[-1,7] + 2) >>2
・・・(24)
このように算出されたp’を用いて、図8および図9に示される各イントラ予測モードにおける予測値は以下のように生成される。
モード0はVertical Prediction modeであり、p[x,-1] (x=0, … ,7) が “available” である時のみ適用される。予測値pred8x8L[x,y]は、次の式(25)のように生成される。
pred8x8L[x,y] = p’[x,-1] x,y=0,...,7
・・・(25)
モード1はHorizontal Prediction modeであり、p[-1,y] (y=0, … ,7) が “available” である時のみ適用される。予測値pred8x8L[x,y]は、次の式(26)のように生成される。
pred8x8L[x,y] = p’[-1,y] x,y=0,...,7
・・・(26)
モード2はDC Prediction modeであり、予測値pred8x8
L[x,y]は以下の通り生成される。すなわち、p[x,-1] (x=0, … ,7) および p[-1,y] (y=0, … ,7) の両方が “available” である場合には、予測値pred8x8
L[x,y]は、次の式(27)のように生成される。
p[x,-1] (x=0, … ,7) は “available” であるが、 p[-1,y] (y=0, … ,7) が “unavailable” である場合には、予測値pred8x8
L[x,y]は、次の式(28)のように生成される。
p[x,-1] (x=0, … ,7) は “unavailable” であるが、 p[-1,y] (y=0, … ,7) が “available” である場合には、予測値pred8x8
L[x,y]は、次の式(29)のように生成される。
p[x,-1] (x=0, … ,7) および p[-1,y] (y=0, … ,7) の両方が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式(30)のように生成される。
pred8x8L[x,y] = 128
・・・(30)
ただし、式(30)は、8ビット入力の場合を表している。
モード3はDiagonal_Down_Left_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Diagonal_Down_Left_prediction modeは、p[x,-1], x=0,…,15が “available” の時のみ適用され、x=7かつy=7である予測画素値は、次の式(31)のように生成され、その他の予測画素値は、次の式(32)のように生成される。
pred8x8L[x,y] = (p’[14,-1] + 3*p[15,-1] + 2) >> 2
・・・(31)
pred8x8L[x,y] = (p’[x+y,-1] + 2*p’[x+y+1,-1] + p’[x+y+2,-1] + 2) >> 2
・・・(32)
モード4はDiagonal_Down_Right_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Diagonal_Down_Right_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=0,…,7が “available”の時のみ適用され、x > y である予測画素値は、次の式(33)のように生成され、x < y である予測画素値は、次の式(34)のように生成される。また、x = y である予測画素値は、次の式(35)のように生成される。
pred8x8L[x,y] = (p’[x-y-2,-1] + 2*p’[x-y-1,-1] + p’[x-y,-1] + 2) >> 2
・・・(33)
pred8x8L[x,y] = (p’[-1,y-x-2] + 2*p’[-1,y-x-1] + p’[-1,y-x] + 2) >> 2
・・・(34)
pred8x8L[x,y] = (p’[0,-1] + 2*p’[-1,-1] + p’[-1,0] + 2) >> 2
・・・(35)
モード5はVertical_Right_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Vertical_Right_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=-1,…,7が “available”の時のみ適用される。今、zVRを、次の式(36)のように定義する。
zVR = 2*x - y
・・・(36)
この時、zVRが、0,2,4,6,8,10,12,14の場合には、画素予測値は、次の式(37)のように生成され、zVRが1,3,5,7,9,11,13の場合には、画素予測値は、次の式(38)のように生成される。
pred8x8L[x,y] = (p’[x-(y>>1)-1,-1] + p’[x-(y>>1),-1] + 1) >> 1
・・・(37)
pred8x8L[x,y]
= (p’[x-(y>>1)-2,-1] + 2*p’[x-(y>>1)-1,-1] + p’[x-(y>>1),-1] + 2) >> 2
・・・(38)
また、zVRが-1の場合には、画素予測値は、次の式(39)のように生成され、これ以外の場合、すなわち、zVRが-2,-3,-4,-5,-6,-7の場合には、画素予測値は、次の式(40)のように生成される。
pred8x8L[x,y] = (p’[-1,0] + 2*p’[-1,-1] + p’[0,-1] + 2) >> 2
・・・(39)
pred8x8L[x,y] = (p’[-1,y-2*x-1] + 2*p’[-1,y-2*x-2] + p’[-1,y-2*x-3] + 2) >> 2
・・・(40)
モード6はHorizontal_Down_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Horizontal_Down_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=-1,…,7が “available”の時のみ適用される。今、zVRを次の式(41)のように定義するものとする。
zHD = 2*y - x
・・・(41)
この時、zHDが0,2,4,6,8,10,12,14の場合には、予測画素値は、次の式(42)のように生成され、zHDが1,3,5,7,9,11,13の場合には、予測画素値は、次の式(43)のように生成される。
pred8x8L[x,y] = (p’[-1,y-(x>>1)-1] + p’[-1,y-(x>>1) + 1] >> 1
・・・(42)
pred8x8L[x,y]
= (p’[-1,y-(x>>1)-2] + 2*p’[-1,y-(x>>1)-1] + p’[-1,y-(x>>1)] + 2) >> 2
・・・(43)
また、zHDが-1の場合には、予測画素値は、次の式(44)のように生成され、zHDがこれ以外の値の場合、すなわち、-2,-3,-4,-5,-6,-7の場合には、予測画素値は、次の式(45)のように生成される。
pred8x8L[x,y] = (p’[-1,0] + 2*p[-1,-1] + p’[0,-1] + 2) >> 2
・・・(44)
pred8x8L[x,y] = (p’[x-2*y-1,-1] + 2*p’[x-2*y-2,-1] + p’[x-2*y-3,-1] + 2) >> 2
・・・(45)
モード7はVertical_Left_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Vertical_Left_prediction modeは、p[x,-1], x=0,…,15が “available” の時のみ適用され、y=0,2,4,6の場合、予測画素値は、次の式(46)のように生成され、それ以外の場合、すなわち、y=1,3,5,7の場合、予測画素値は、次の式(47)のように生成される。
pred8x8L[x,y] = (p’[x+(y>>1),-1] + p’[x+(y>>1)+1,-1] + 1) >> 1
・・・(46)
pred8x8L[x,y]
= (p’[x+(y>>1),-1] + 2*p’[x+(y>>1)+1,-1] + p’[x+(y>>1)+2,-1] + 2) >> 2
・・・(47)
モード8はHorizontal_Up_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Horizontal_Up_prediction modeは、p[-1,y], y=0,…,7 が “available” の時のみ適用される。以下では、zHUを次の式(48)のように定義する。
zHU = x + 2*y
・・・(48)
zHUの値が0,2,4,6,8,10,12の場合、予測画素値は、次の式(49)のように生成され、zHUの値が1,3,5,7,9,11の場合、予測画素値は、次の式(50)のように生成される。
pred8x8L[x,y] = (p’[-1,y+(x>>1)] + p’[-1,y+(x>>1)+1] + 1) >> 1
・・・(49)
pred8x8L[x,y] = (p’[-1,y+(x>>1)]
・・・(50)
また、zHUの値が13の場合、予測画素値は、次の式(51)のように生成され、それ以外の場合、すなわち、zHUの値が13より大きい場合、予測画素値は、次の式(52)のように生成される。
pred8x8L[x,y] = (p’[-1,6] + 3*p’[-1,7] + 2) >> 2
・・・(51)
pred8x8L[x,y] = p’[-1,7]
・・・(52)
次に、16×16画素のイントラ予測モードについて説明する。図10および図11は、4種類の輝度信号の16×16画素のイントラ予測モード(Intra_16x16_pred_mode)を示す図である。
4種類のイントラ予測モードについて、図12を参照して説明する。図12の例において、イントラ処理される対象マクロブロックAが示されており、P(x,y);x,y=-1,0,…,15は、対象マクロブロックAに隣接する画素の画素値を表している。
モード0は、Vertical Prediction modeであり、P(x,-1); x,y=-1,0,…,15が “available” である時のみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(53)のように生成される。
Pred(x,y) = P(x,-1);x,y=0,…,15
・・・(53)
モード1はHorizontal Prediction modeであり、P(-1,y); x,y=-1,0,…,15が “available” である時のみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(54)のように生成される。
Pred(x,y) = P(-1,y);x,y=0,…,15
・・・(54)
モード2はDC Prediction modeであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て “available” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(55)のように生成される。
また、P(x,-1); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(56)のように生成される。
P(-1,y); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(57)のように生成される。
P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て “unavailable” である場合には、予測画素値として128を用いる。
モード3はPlane Prediction modeであり、P(x,-1)及びP(-1,y); x,y=-1,0,…,15が全て “available” の場合のみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(58)のように生成される。
次に、色差信号に対するイントラ予測モードについて説明する。図13は、4種類の色差信号のイントラ予測モード(Intra_chroma_pred_mode)を示す図である。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。色差信号に対するイントラ予測モードは、上述した輝度信号の16×16画素のイントラ予測モードに順ずる。
ただし、輝度信号の16×16画素のイントラ予測モードが、16×16画素のブロックを対象としているのに対し、色差信号に対するイントラ予測モードは、8×8画素のブロックを対象としている。さらに、上述した図10と図13に示されるように、両者においてモード番号は対応していない。
ここで、図12を参照して上述した輝度信号の16×16画素のイントラ予測モードの対象マクロブロックAの画素値および隣接する画素値の定義に準じる。例えば、イントラ処理される対象マクロブロックA(色差信号の場合は、8×8画素)に隣接する画素の画素値をP(x,y);x,y=-1,0,…,7とする。
モード0はDC Prediction modeであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,7が全て “available” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(59)のように生成される。
また、P(-1,y) ; x,y=-1,0,…,7が “unavailable” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(60)のように生成される。
また、P(x,-1) ; x,y=-1,0,…,7が “unavailable”である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(61)のように生成される。
モード1はHorizontal Prediction modeであり、P(-1,y) ; x,y=-1,0,…,7が “available” の場合にのみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(62)のように生成される。
Pred(x,y) = P(-1,y);x,y=0,…,7
・・・(62)
モード2はVertical Prediction modeであり、P(x,-1) ; x,y=-1,0,…,7が “available” の場合にのみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(63)のように生成される。
Pred(x,y) = P(x,-1);x,y=0,…,7
・・・(63)
モード3はPlane Prediction modeであり、P(x,-1)及びP(-1,y) ; x,y=-1,0,…,7 が “available” の場合にのみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(64)のように生成される。
以上のように、輝度信号のイントラ予測モードには、9種類の4×4画素および8×8画素のブロック単位、並びに4種類の16×16画素のマクロブロック単位の予測モードがある。このブロック単位のモードは、マクロブロック単位毎に設定される。色差信号のイントラ予測モードには、4種類の8×8画素のブロック単位の予測モードがある。この色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。
また、輝度信号の4×4画素のイントラ予測モード(イントラ4×4予測モード)および8×8画素のイントラ予測モード(イントラ8×8予測モード)については、4×4画素および8×8画素の輝度信号のブロック毎に1つのイントラ予測モードが設定される。輝度信号の16×16画素のイントラ予測モード(イントラ16×16予測モード)と色差信号のイントラ予測モードについては、1つのマクロブロックに対して1つの予測モードが設定される。
なお、予測モードの種類は、上述した図5の番号0,1,3乃至8で示される方向に対応している。予測モード2は平均値予測である。
以上のようにH.264/AVC方式におけるイントラ予測においては、式(14)乃至式(24)で上述したように、8×8画素のブロック単位のイントラ予測を行うに先立ってのみ、定められたフィルタ係数で、隣接画素の画素値のフィルタ処理が行われている。これに対して、画像符号化装置51においては、すべてのイントラ予測モードのイントラ予測を行うに先立ち、予測対象のブロックに応じて設定されたフィルタ係数で隣接画素の画素値のフィルタ処理が行われる。
[イントラ予測部および隣接画素内挿フィルタ切替部の構成例]
図14は、図1のイントラ予測部74および隣接画素内挿フィルタ切替部75の詳細な構成例を示すブロック図である。
図14の例の場合、イントラ予測部74は、隣接画像設定部81、予測画像生成部82、および最適予測モード判定部83により構成されている。
隣接画素内挿フィルタ切替部75は、予測モードバッファ91、量子化パラメータバッファ92、およびローパスフィルタ設定部93により構成されている。なお、ローパスフィルタ設定部93には、フィルタ係数メモリ94が内蔵されている。
隣接画像設定部81には、フレームメモリ72からのイントラ予測の対象ブロックの隣接画素値が供給される。図14の場合、スイッチ73の図示は省略されているが、実際には、隣接画素値は、フレームメモリ72から、スイッチ73を介して隣接画像設定部81に供給される。なお、イントラ予測の場合、隣接画素値として、デブロックフィルタ71によりデブロックフィルタリングされていない画素値が用いられる。
隣接画素設定部81は、ローパスフィルタ設定部93により設定されたフィルタ係数を用いて、フレームメモリ72からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、フィルタ処理された隣接画素値を、予測画像生成部82に供給する。
予測画像生成部82は、現在処理されているイントラ予測モードがどのモードであるのかという情報を、予測モードバッファ91に供給する。予測画像生成部82は、隣接画素設定部81からのフィルタ処理された隣接画素値を用いて、予測モードバッファ91に供給したイントラ予測モードでの対象ブロックのイントラ予測を行い、予測画像を生成する。生成された予測画像は、イントラ予測モード情報とともに、最適予測モード判定部83に供給される。
最適予測モード判定部83には、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、予測画像生成部82により生成された予測画像と、そのイントラ予測モード情報が供給される。
最適予測モード判定部83は、供給された情報を用いて、予測画像を生成したイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして決定する。最適予測モード判定部83は、最適イントラ予測モードの予測画像と、対応するコスト関数値を予測画像選択部77に出力する。
また、最適予測モード判定部83は、予測画像選択部77により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。
予測モードバッファ91は、予測画像生成部82からのイントラ予測モード情報を格納する。量子化パラメータバッファ92は、レート制御部78からの量子化パラメータを格納する。
ローパスフィルタ設定部93は、予測モードバッファ91から対象ブロックのイントラ予測モード情報を読み出し、量子化パラメータバッファ92から対象ブロックに対する量子化パラメータを読み出す。ローパスフィルタ設定部93は、内蔵するフィルタ係数メモリ94に記憶されているフィルタ係数の中から、これらの情報に対応するフィルタ係数を設定し、設定したフィルタ係数を、隣接画素設定部81に供給する。
フィルタ係数メモリ94は、後述する図28の学習装置251において、トレーニング画像が用いられて学習されることにより得られた、量子化パラメータおよびイントラ予測モードに対応したフィルタ係数を記憶している。このフィルタ係数は、例えば、スライス毎に、次に説明するように算出されて記憶されたものである。
[最適フィルタ係数の算出の説明]
次に、図15を参照して、この隣接画素のフィルタ処理に用いられる、最適なフィルタ係数の算出方法について説明する。なお、図15の例においては、4×4画素の対象ブロックについて、垂直予測(vertical Prediction)を行う例が示されているが、以下の説明は、どのイントラ予測モードにも適用可能な場合を説明する。
式(14)乃至式(24)で上述した8×8画素のブロック単位のイントラ予測においては、隣接画素に対するローパスフィルタとして、{1,2,1}なる3タップのフィルタ係数が定義されているが、3タップの一般形として、{c0,c1,c2}を考えることとする。さらに、本発明においては、オフセット値として、第4のパラメータc3も導入される。
なお、以下の説明においては、この3タップのフィルタが、スライス毎に設定可能であるとするが、これに限定されず、例えば、シーケンス全体や、GOP毎に設定可能であってもよい。
図15の例において、akm(0≦k,m≦3)は、対象ブロックに含まれる画素の画素値、bm(-1≦m≦4)は、垂直予測に用いられる隣接画素の画素値である。
まず、隣接画素値b
mに、3タップのフィルタ処理が施されることにより、次の式(65)に示されるb’m(0≦m≦3)が生成される。
すなわち、フィルタ処理がなされ、フィルタ係数が用いられる場合、以下、特に言及しなくても、式(65)に示されるように、対応するオフセット値も用いられるものとする。換言するに、フィルタ係数とオフセット値は、フィルタ処理に用いられる係数である。同様に、フィルタ係数が符号化されて復号側に送られる場合、対応するオフセット値も符号化されて送られるものとする。
いま、イントラ予測モードがnであるときの予測画素値をp
ij(b’
m,n);0≦i,j≦3であるとすると、イントラ予測画素値は、図2乃至図14を参照して上述したように、予測画素は線形な式により生成されるため、次の式(66)が成り立つ。
このとき、a
ijを原画像画素値として、対象ブロックΩに対する予測2乗誤差は、次の式(67)で表される。
ここで、対象スライス内で、イントラ予測モードnとして符号化されるイントラブロックの集合を、Φで表すとして、Φに属するブロックに関する予測2乗誤差の総和は、次の式(68)で表される。
上述した式(68)において、Err(Ω∈Φ)を、c
0,c
1,c
2,c
3の関数、すなわち、Err(Ω∈Φ;c
0,c
1,c
2,c
3)とみなし、Err(Ω∈Φ;c
0,c
1,c
2,c
3)を最小とするようなc
0,c
1,c
2,c
3が対象スライスにおける最適なフィルタ係数の値ということになる。すなわち、次の式(69)が成り立つc
0,c
1,c
2,c
3を求めればよい。
つまり、式(69)により、次の式(70)に示される連立方程式が得られることになる。
行列を用いて、この式(70)を書きなおすと、式(71)となる。
この式(71)を解くことで、対象スライスに対する最適フィルタ係数およびオフセット値{c0,c1,c2,c3}を求めることができる。
なお、最適フィルタ係数およびオフセット値{c0,c1,c2,c3}は、式(70)の連立方程式を解くことにより、浮動小数点の値として求められることになるが、図1の画像符号化装置51と、対応する図22の画像復号装置151に適用する場合には、例えば、8ビットの係数に丸められる。
すなわち、フィルタ係数は浮動小数点であっても、例えば、フィルタ係数メモリ94においては、プロセッサのレジスタ長に応じて、nビット(nは整数)の値として保持される。
上述した方法と同様の方法を、他のイントラ予測モードにも適用することにより、他のイントラ予測モードにおいても、最適フィルタ係数を求めることができる。また、イントラ4×4予測モードのみならず、イントラ8×8予測モード、イントラ16×16予測モード、色差信号に対するイントラ予測モードに対しても、同様の方法により、最適フィルタ係数を求めることができる。
上記説明においては、それぞれのイントラ予測モードに対して1つのフィルタ係数を求めるとしたが、これに限らず、すべてのイントラ予測モードに対して1つだけフィルタ係数を求めるようにしてもよい。特に、図2乃至図14を参照して上述したイントラ予測モードは、Vertical(垂直)及びHorizontal(水平)モードに関しては、予測画素値をそのまま使うのに対し、その他のモードに関しては、予測画素の生成に、何らかの平均処理若しくは加重平均処理が行なわれるため、特性が異なる。このため、VerticalおよびHorizontalモードと、それ以外のモードという2つのクラス分類を行い、それぞれのクラスに対してフィルタ係数を算出することで、更なる符号化効率の向上が実現できる。また、例えば、輝度信号については、イントラ4×4予測モードに対して1つ、イントラ8×8予測モードに対して1つ、イントラ16×16予測モードに対して1つとしてもよい。色差信号に関しては、例えば、Cb/Crそれぞれに対して別途フィルタ係数を求めてもよい。
また、上記説明においては、ローパスフィルタ処理のためのフィルタ係数として、{c0,c1,c2}の3タップとしたが、3タップに限らず、何タップのフィルタを使用してもよい。すなわち、タップ数のフィルタ係数+オフセット値が求められる。ただし、タップ数の増加とともに、解くべき連立方程式の次数が増大する。
さらに、CIF(Common Intermediate Format)/QCIF(Quarter CIF),SD(Standard Definition),HD(High Definition)などといったように、画枠に応じて異なるフィルタ係数を用意しておき、それを適用することもできる。
また、上述した方法においては、イントラ予測残差(予測2乗誤差)を最小にすることにより、フィルタ係数の算出を行っている。ただし、フィルタ係数の算出方法は、これに限定されず、例えば、フィルタ係数を復号側に送る必要がある場合には、そのフィルタ係数を送るためのビットを含めた最適化を行ってもよい。
さらに、上述したフィルタ係数において、次の式(72)に示されるように、係数の対称性を仮定する。
C0 = C2
・・・(72)
すなわち、{c0,c1,c0}のように、フィルタ係数が、0位相に対する係数を中心にして、対称性を有するように算出される。これにより、上述した式(70)に示される3つの連立方程式を、2つに減らすことが可能である。この結果、演算量を減らすことができる。
以上の方法を用いて、入力画像に適切なフィルタ係数を設定し、適応的に隣接画素に対するローパスフィルタ処理を行うことにより、画像や量子化パラメータ、予測モードに適した予測画像を用いて符号化することが可能となる。これにより、符号化効率を向上させることができる。
上述した最適フィルタ係数の算出としては、以下の2通りの方法が考えられる。第1の方法は、符号化処理を行うに先立ち、トレーニングのための画像信号を用いて、予め、その画像信号全体を最適化するフィルタ係数を算出しておくオフライン処理である。このオフライン処理である学習処理については、図28を参照して後述され、その学習処理により算出されたフィルタ係数とオフセット値が、図14のフィルタ係数メモリ94に記憶されている。
第2の方法は、各スライスに対し、逐次最適なフィルタ係数を算出するオンライン処理である。この場合、算出されたフィルタ係数とオフセット値は復号側に送られる。なお、第2の方法であるオンライン処理を行う場合の例については、図20を参照して後述される。
[画像符号化装置の符号化処理の説明]
次に、図16のフローチャートを参照して、図1の画像符号化装置51の符号化処理について説明する。
ステップS11において、A/D変換部61は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ62は、A/D変換部61より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS13において、演算部63は、ステップS12で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部76から、イントラ予測する場合はイントラ予測部74から、それぞれ予測画像選択部77を介して演算部63に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS14において、直交変換部64は演算部63から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS15において、量子化部65は変換係数を量子化する。この量子化に際しては、後述するステップS25の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS16において、逆量子化部68は量子化部65により量子化された変換係数を量子化部65の特性に対応する特性で逆量子化する。ステップS17において、逆直交変換部69は逆量子化部68により逆量子化された変換係数を直交変換部64の特性に対応する特性で逆直交変換する。
ステップS18において、演算部70は、予測画像選択部77を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部63への入力に対応する画像)を生成する。ステップS19においてデブロックフィルタ71は、演算部70より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS20においてフレームメモリ72は、フィルタリングされた画像を記憶する。なお、フレームメモリ72にはデブロックフィルタ71によりフィルタ処理されていない画像も演算部70から供給され、記憶される。
ステップS21において、イントラ予測部74および動き予測・補償部76は、それぞれ画像の予測処理を行う。すなわち、ステップS21において、イントラ予測部74は、イントラ予測モードのイントラ予測処理を行う。動き予測・補償部76は、インター予測モードの動き予測・補償処理を行う。
ステップS21における予測処理の詳細は、図17を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部77に供給される。
なお、このとき、イントラ予測部74においては、イントラ予測処理に先立ち、隣接画素内挿フィルタ切替部75により設定されたフィルタ係数を用いて、各対象ブロックのイントラ予測に用いられる隣接画素に対して、フィルタ処理が施される。そして、イントラ予測部74においては、フィルタ処理が施された隣接画素を用いて、イントラ予測が行われて、予測画像が生成される。
ステップS22において、予測画像選択部77は、イントラ予測部74および動き予測・補償部76より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部77は、決定した最適予測モードの予測画像を選択し、演算部63,70に供給する。この予測画像が、上述したように、ステップS13,S18の演算に利用される。
なお、この予測画像の選択情報は、イントラ予測部74または動き予測・補償部76に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部74は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部66に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部76は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部66に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。すなわち、最適インター予測モードとして、インター予測モードによる予測画像が選択されているときには、動き予測・補償部76は、インター予測モード情報、動きベクトル情報、参照フレーム情報を可逆符号化部66に出力する。
ステップS23において、可逆符号化部66は量子化部65より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップS22において可逆符号化部66に入力された、イントラ予測部74からの情報、または、動き予測・補償部76からの情報、および、レート制御部78からの量子化パラメータなども符号化され、ヘッダ情報に付加される。
ステップS24において蓄積バッファ67は差分画像を圧縮画像として蓄積する。蓄積バッファ67に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS25においてレート制御部78は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化パラメータにより、量子化部65の量子化動作のレートを制御する。
量子化部65のレートの制御に用いられた量子化パラメータは、可逆符号化部66に供給され、上述したステップS23において、可逆符号化処理され、圧縮画像のヘッダ部に挿入される。また、この量子化パラメータは、隣接画素内挿フィルタ切替部75に供給され、上述したステップS21において、イントラ予測に先立って行われる、隣接画素に施すフィルタ処理に用いられるフィルタ係数の設定に用いられる。
[予測処理の説明]
次に、図17のフローチャートを参照して、図16のステップS21における予測処理を説明する。
画面並べ替えバッファ62から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ72から読み出され、スイッチ73を介してイントラ予測部74に供給される。
ステップS31において、イントラ予測部74は、供給された画像を用いて、処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
ステップS31におけるイントラ予測処理の詳細は、図18を参照して後述するが、この処理により、最適なフィルタ係数が設定され、設定されたフィルタ係数が用いられて、隣接画素に対してフィルタ処理が行われる。そして、フィルタ処理が行われた隣接画素が用いられて、イントラ予測が行われて、予測画像が生成される。
以上の処理が、候補となる全てのイントラ予測モードに対して行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出され、算出されたコスト関数値に基づいて、最適イントラ予測モードが決定される。生成された予測画像と最適イントラ予測モードのコスト関数値は、予測画像選択部77に供給される。
画面並べ替えバッファ62から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ72から読み出され、スイッチ73を介して動き予測・補償部76に供給される。これらの画像に基づいて、ステップS32において、動き予測・補償部76はインター動き予測処理を行う。すなわち、動き予測・補償部76は、フレームメモリ72から供給される画像を参照して、候補となる全てのインター予測モードの動き予測処理を行う。
ステップS32におけるインター動き予測処理の詳細は、図19を参照して後述するが、この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。
ステップS33において、動き予測・補償部76は、ステップS32において算出されたインター予測モードに対してのコスト関数値を比較し、最小値を与える予測モードを、最適インター予測モードとして決定する。そして、動き予測・補償部76は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部77に供給する。
[イントラ予測処理の説明]
次に、図18のフローチャートを参照して、図17のステップS31におけるイントラ予測処理を説明する。なお、図18の例においては、輝度信号の場合を例として説明する。
レート制御部78は、上述した図16のステップS25において、対象ブロックに対する量子化パラメータを供給してくる。量子化パラメータバッファ92は、ステップS41において、レート制御部78からの対象ブロックに対する量子化パラメータを取得し、格納する。
予測画像生成部82は、ステップS42において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードのうち、1つのイントラ予測モードを選択する。選択したイントラ予測モードの情報は、予測モードバッファ91に格納される。
ローパスフィルタ設定部93は、予測モードバッファ91からイントラ予測モードの情報を読み出し、量子化パラメータバッファ92から量子化パラメータ値を読み出す。そして、ローパスフィルタ設定部93は、ステップS43において、フィルタ係数メモリ94に記憶されている、スライス毎に算出されたフィルタ係数の中から、イントラ予測モードおよび量子化パラメータに対応するフィルタ係数を設定する。設定されたフィルタ係数は、隣接画素設定部81に供給される。
ステップS44において、隣接画素設定部81は、設定されたフィルタ係数を用いて、対象ブロックの隣接画素値に対してフィルタ処理を行い、フィルタ処理された隣接画素値を、予測画像生成部82に供給する。
ステップS43において、予測画像生成部82は、フィルタ処理された隣接画素値を用いて、ステップS42で選択されたイントラ予測モードで、対象ブロックのイントラ予測を行い、予測画像を生成する。
最適予測モード判定部83には、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、予測画像生成部82により生成された予測画像と、そのイントラ予測モード情報が供給される。
最適予測モード判定部83は、ステップS46において、供給された情報を用いて、予測画像を生成したイントラ予測モードに対してコスト関数値を算出する。ここで、コスト関数値としては、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて行う。これらのモードは、H.264/AVC方式における参照ソフトウエアであるJM(Joint Model)で定められている。
すなわち、High Complexity モードにおいては、ステップS45の処理として、候補となる全ての予測モードに対して、仮に符号化処理までが行われる。そして、次の式(73)で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
Cost(Mode) = D + λ・R ・・・(73)
Dは、原画像と復号画像の差分(歪)、Rは、直交変換係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
一方、Low Complexity モードにおいては、ステップS45の処理として、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報、フラグ情報などのヘッダビットまでが算出される。そして、次の式(74)で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
Cost(Mode) = D + QPtoQuant(QP)・Header_Bit ・・・(74)
Dは、原画像と復号画像の差分(歪)、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
Low Complexity モードにおいては、全ての予測モードに対して、予測画像を生成するのみで、符号化処理および復号処理を行う必要がないため、演算量が少なくて済む。
最適予測モード判定部83は、ステップS47において、全てのイントラ予測モードについての処理が終了したか否かを判定する。すなわち、ステップS47においては、4×4画素、8×8画素、および16×16画素の各イントラ予測モードすべてについて、ステップS42乃至S46の処理が行われたか否かが判定される。
ステップS47において、全てのイントラ予測モードについての処理が終了していないと判定された場合、処理は、ステップS42に戻り、それ以降の処理が繰り返される。
ステップS47において、全てのイントラ予測モードについての処理が終了されたと判定された場合、処理は、ステップS48に進む。最適予測モード判定部83は、ステップS48において、算出されたコスト関数値が最小値となるイントラ予測モードを、最適イントラ予測モードとして決定する。
最適イントラ予測モードの予測画像と、対応するコスト関数値は、予測画像選択部77に供給される。
そして、予測画像選択部77により最適イントラ予測モードで生成された予測画像が選択された場合、最適予測モード判定部83により、最適イントラ予測モードを示す情報は、可逆符号化部66に供給される。そして、可逆符号化部66において、符号化され、圧縮画像のヘッダ情報に付加される(上述した図16のステップS23)。
なお、フィルタ係数メモリ94に記憶されている、学習処理により算出されたフィルタ係数は、後述する図22の画像復号装置151にも同様に記憶させることにより、設定されたフィルタ係数を、圧縮画像のヘッダ情報に付加し、それを送ることは不要となる。
したがって、H.264/AVCの場合、量子化パラメータは、51通りあり、イントラ予測モードは、4×4または8×8については9通りあり、これらの組み合わせを考えると、51×9=459通りという膨大なフィルタ係数が必要となる。このように膨大なフィルタ係数に関する情報を復号側に送る必要がないので、係数情報のオーバヘッドを増大させることなく、処理を実現することができる。
[インター動き予測処理の説明]
次に、図19のフローチャートを参照して、図17のステップS32のインター動き予測処理について説明する。
動き予測・補償部76は、ステップS61において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、各インター予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
動き予測・補償部76は、ステップS62において、16×16画素乃至4×4画素からなる8種類の各インター予測モードについて、ステップS61で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、各インター予測モードでの予測画像が生成される。
動き予測・補償部76は、ステップS63において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して決定された動きベクトルについて、圧縮画像に付加するための動きベクトル情報を生成する。
生成された動きベクトル情報は、次のステップS64におけるコスト関数値算出の際にも用いられ、最終的に予測画像選択部77により対応する予測画像が選択された場合には、予測モード情報および参照フレーム情報とともに、可逆符号化部66へ出力される。
動き予測・補償部76は、ステップS64において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して、上述した式(73)または式(74)で示されるコスト関数値を算出する。ここで算出されたコスト関数値は、上述した図17のステップS34で最適インター予測モードを決定する際に用いられる。
次に、図20を参照して、最適フィルタ係数を算出する第2の方法としての、各スライスに対し、逐次最適なフィルタ係数を算出するオンライン処理を行う場合の例について説明する。
なお、この場合、各スライスに対して、符号化側で算出されたフィルタ係数を、復号側に送る必要があり、あまりに多くの場合わけされたフィルタ係数を送ることは、符号化効率の低下を招く。したがって、フィルタ係数は、スライスに対して1つだけ伝送されるか、各ブロックサイズ毎の予測モードのそれぞれに1つだけ伝送されるか、あるいは、水平予測、垂直予測、…といった予測モードの種類に対して1つだけ伝送される。
また、上述したオフライン処理の場合には、フィルタ係数を算出するためのパラメータとして、イントラ予測モードと量子化パラメータを用いる例を説明した。これに対して、オンライン処理の場合、フィルタ係数を算出するためのパラメータが多いと処理量が増えてしまうため、図20の例においては、イントラ予測モードのみをパラメータとした例を説明する。説明は省略するが、もちろん、量子化パラメータのみを用いてもよいし、両方のパラメータを用いることもできる。
[イントラ予測部および隣接画素内挿フィルタ切替部の他の構成例]
図20は、各スライスに対し、逐次最適なフィルタ係数を算出するオンライン処理を行う場合のイントラ予測部74および隣接画素内挿フィルタ切替部75の他の構成例を示すブロック図である。
図20の例の場合、イントラ予測部74と隣接画素内挿フィルタ切替部75との間には、スイッチ101が設けられており、スイッチ101のオンオフにより、図14の場合と異なり、イントラ予測部74は、2回イントラ予測を行う。すなわち、イントラ予測部74においては、スイッチ101がオフの状態で、H.264/AVCで定義されているイントラ予測が行われ、そのイントラ予測に適するフィルタ係数が算出される。そして、算出されたフィルタ係数の中から、スイッチ101がオンの状態で、隣接画素内挿フィルタ切替部75により設定されたフィルタ係数でのイントラ予測が行われる。
図20のイントラ予測部74は、隣接画像設定部111、予測画像生成部112、および最適予測モード判定部113により構成されている。
隣接画素内挿フィルタ切替部75は、予測モードバッファ121、最適フィルタ算出部122、およびローパスフィルタ設定部123により構成されている。
隣接画像設定部111には、フレームメモリ72からのイントラ予測の対象スライスのすべての対象ブロックの隣接画素値が供給される。図20の場合も、スイッチ73の図示は省略されている。なお、イントラ予測の場合、隣接画素値として、デブロックフィルタ71によりデブロックフィルタリングされていない画素値が用いられる。
隣接画素設定部111は、スイッチ101がオフ状態の場合、H.264/AVCで定義されているイントラ予測モードのみ、フィルタ係数を用いて、フレームメモリ72からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、予測画像生成部112に供給する。すなわち、式(14)乃至式(24)に上述した8×8画素予測モードの場合のみ、フィルタ処理が施された隣接画素値が、予測画像生成部112に供給される。それ以外の場合、フレームメモリ72からの対象ブロックの隣接画素値がそのまま、予測画像生成部112に供給される。
隣接画素設定部111は、スイッチ101がオン状態の場合、ローパスフィルタ設定部123から、フィルタ係数が供給される。よって、隣接画素設定部111は、ローパスフィルタ設定部123により設定されたフィルタ係数を用いて、フレームメモリ72からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、フィルタ処理された隣接画素値を、予測画像生成部112に供給する。
予測画像生成部112は、隣接画素設定部111からの隣接画素値を用いて、すべてのイントラ予測モードでの対象ブロックのイントラ予測を行い、予測画像を生成する。生成された予測画像は、イントラ予測モード情報とともに、最適予測モード判定部113に供給される。
最適予測モード判定部113には、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、予測画像生成部112により生成された予測画像と、そのイントラ予測モード情報が供給される。
最適予測モード判定部113は、供給された情報を用いて、予測画像を生成したイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして決定する。
最適予測モード判定部113は、スイッチ101がオフ状態の場合、最適イントラ予測モードの情報を予測モードバッファ121に供給する。最適予測モード判定部113は、スイッチ101がオン状態の場合、最適イントラ予測モードの予測画像と、対応するコスト関数値を予測画像選択部77に供給する。
また、最適予測モード判定部113は、予測画像選択部77により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。
予測モードバッファ121は、最適予測モード判定部113からのイントラ予測モード情報を格納する。
最適フィルタ算出部122には、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、フレームメモリ72からの対象ブロックの隣接画素値が供給される。最適フィルタ算出部122は、予測モードバッファ121から対象スライスに含まれる各ブロックのイントラ予測モードを読み出す。そして、最適フィルタ算出部122は、これらの情報を用いて、図15を参照して上述したように、対象スライスの各イントラ予測モードに対する最適なフィルタ係数を算出し、算出したフィルタ係数を、ローパスフィルタ設定部123に供給する。
ローパスフィルタ設定部123は、算出された対象スライスのフィルタ係数の中から、対象ブロックに対するフィルタ係数を設定し、スイッチ101の端子をオンにして、設定されたフィルタ係数を、隣接画素設定部111に供給する。また、ローパスフィルタ設定部123は、対象スライスのフィルタ係数を、可逆符号化部66に供給する。
[イントラ予測処理の他の説明]
次に、図21のフローチャートを参照して、図20のイントラ予測部74および隣接画素内挿フィルタ切替部75が行うイントラ予測処理を説明する。なお、このイントラ予測処理は、図17のステップS31におけるイントラ予測処理の他の例である。
まず、スイッチ101はオフ状態となっている。隣接画像設定部111には、フレームメモリ72からのイントラ予測の対象スライスのすべての対象ブロックの隣接画素値が供給される。隣接画素設定部111は、H.264/AVCで定義されている8×8画素のイントラ予測モードのみ、フィルタ係数を用いて、フレームメモリ72からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、予測画像生成部112に供給する。すなわち、他のイントラ予測モードの場合、フレームメモリ72からの対象ブロックの隣接画素値が、そのまま、予測画像生成部112に供給される。
予測画像生成部112は、ステップS101において、対象スライスに含まれるすべてのブロックに対して、イントラ予測処理を行う。すなわち、予測画像生成部112は、隣接画素設定部111からの対象ブロックの隣接画素値を用いて、各イントラ予測モードで、イントラ予測を行い、予測画像を生成する。
最適予測モード判定部113には、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、予測画像生成部112により生成された予測画像と、そのイントラ予測モード情報が供給される。
最適予測モード判定部113は、ステップS102において、供給された情報を用いて、予測画像を生成した全てのイントラ予測モードに対して、上述した式(73)または式(74)のコスト関数値を算出する。
最適予測モード判定部113は、ステップS103において、式(73)または式(74)のコスト関数を最小値とするイントラ予測モードを、最適イントラ予測モードとして決定し、決定したイントラ予測モードの情報を、予測モードバッファ121に供給する。
最適フィルタ算出部122には、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、フレームメモリ72からの対象ブロックの隣接画素値が供給される。最適フィルタ算出部122は、予測モードバッファ121から対象スライスに含まれる各ブロックのイントラ予測モードを読み出す。
そして、最適フィルタ算出部122は、ステップS104において、これらの情報を用いて、対象スライスの各イントラ予測モードに対して、対象スライス全体での残差を最小にするフィルタ係数を、最適なフィルタ係数として算出する。図15を参照して上述したように算出されたフィルタ係数は、ローパスフィルタ設定部123に供給される。
ローパスフィルタ設定部123は、算出された対象スライスのフィルタ係数の中から、対象ブロックに対するフィルタ係数を設定し、スイッチ101の端子をオンにして、設定されたフィルタ係数を、隣接画素設定部111に供給する。
隣接画素設定部111は、ステップS105において、ローパスフィルタ設定部123により設定されたフィルタ係数を用いて、フレームメモリ72からの対象ブロックの隣接画素値に対して、フィルタ処理を行う。
フィルタ処理された隣接画素値は、予測画像生成部112に供給される。予測画像生成部112は、ステップS106において、フィルタ処理された隣接画素値を用いて、対象スライスに含まれる、全てのブロックに対して、再びイントラ予測を行い、予測画像を生成する。生成された予測画像は、イントラ予測モード情報とともに、最適予測モード判定部113に供給される。
最適予測モード判定部113は、スイッチ101がオン状態の場合、最適イントラ予測モードの予測画像と、対応するコスト関数値を予測画像選択部77に供給する。
予測画像選択部77は、上述した図16のステップS22において、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定して、予測画像の選択情報を供給してくる。
この予測画像の選択情報に対応して、最適予測モード判定部113は、ステップS107において、最適イントラ予測モードの予測画像が選択されたか否かを判定する。ステップS107において、最適イントラ予測モードの予測画像が選択されたと判定された場合、処理は、ステップS108に進む。
ステップS108において、最適予測モード判定部113は、イントラ予測モードの情報を、可逆符号化部66に供給する。なお、対象スライスにおいて、まだ、フィルタ係数が供給されていない場合には、最適フィルタ算出部122からのフィルタ係数も可逆符号化部66に供給される。
ステップS107において、最適イントラ予測モードの予測画像が選択されていないと判定された場合、イントラ予測処理は終了される。
なお、上述したステップS104乃至S106の処理を繰り返すことにより、さらに最適化されたフィルタ係数を得ることも可能である。
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
[画像復号装置の構成例]
図22は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
画像復号装置151は、蓄積バッファ161、可逆復号部162、逆量子化部163、逆直交変換部164、演算部165、デブロックフィルタ166、画面並べ替えバッファ167、D/A変換部168、フレームメモリ169、スイッチ170、イントラ予測部171、隣接画素内挿フィルタ切替部172、動き予測・補償部173、およびスイッチ174により構成されている。
蓄積バッファ161は伝送されてきた圧縮画像を蓄積する。可逆復号部162は、蓄積バッファ161より供給された、図1の可逆符号化部66により符号化された情報を、可逆符号化部66の符号化方式に対応する方式で復号する。逆量子化部163は可逆復号部162により復号された画像を、図1の量子化部65の量子化方式に対応する方式で逆量子化する。逆直交変換部164は、図1の直交変換部64の直交変換方式に対応する方式で逆量子化部163の出力を逆直交変換する。
逆直交変換された出力は演算部165によりスイッチ174から供給される予測画像と加算されて復号される。デブロックフィルタ166は、復号された画像のブロック歪を除去した後、フレームメモリ169に供給し、蓄積させるとともに、画面並べ替えバッファ167に出力する。
画面並べ替えバッファ167は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ62により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部168は、画面並べ替えバッファ167から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
スイッチ170は、インター処理される画像と参照される画像をフレームメモリ169から読み出し、動き予測・補償部173に出力するとともに、イントラ予測に用いられる画像をフレームメモリ169から読み出し、イントラ予測部171に供給する。
イントラ予測部171には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が、可逆復号部162から供給される。イントラ予測部171は、これらの情報に基づき、隣接画素内挿フィルタ切替部172により設定されたフィルタ係数を用いて、隣接画素値に対してフィルタ処理およびイントラ予測を行うことで、予測画像を生成し、生成した予測画像を、スイッチ174に出力する。
隣接画素内挿フィルタ切替部172には、画像符号化装置51での符号化に応じて、ヘッダ情報を復号して得られたイントラ予測モードを示す情報と量子化パラメータの情報の少なくとも1つが、可逆復号部162から供給される。隣接画素内挿フィルタ切替部172は、図1の隣接画素内挿フィルタ切替部75と同じ、後述する図28の学習装置251において学習されることにより得られた、量子化パラメータおよびイントラ予測モードの少なくとも1つに対応したフィルタ係数を記憶している。
隣接画素内挿フィルタ切替部172は、可逆復号部162からの量子化パラメータおよびイントラ予測モードの少なくとも1つに対応するフィルタ係数を設定する。隣接画素内挿フィルタ切替部172は、設定したフィルタ係数を、イントラ予測部74に供給する。
なお、隣接画素内挿フィルタ切替部172においては、予めオフラインで学習されたフィルタ係数が記憶されている。ただし、図1の隣接画素内挿フィルタ切替部75において、オンラインでフィルタ係数が算出された場合には、そのフィルタ係数が例えば、スライス毎に送信されてくる。この場合、隣接画素内挿フィルタ切替部172においては、可逆復号部162により復号されるフィルタ係数が用いられる。
動き予測・補償部173には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報)が可逆復号部162から供給される。インター予測モードを示す情報が供給された場合、動き予測・補償部173は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。動き予測・補償部173は、インター予測モードにより生成された予測画像をスイッチ174に出力する。
スイッチ174は、動き予測・補償部173またはイントラ予測部171により生成された予測画像を選択し、演算部165に供給する。
なお、図1の画像符号化装置51においては、コスト関数に基づく予測モード判定のため、すべてのイントラ予測モードに対してイントラ予測処理が行われる。これに対して、この画像復号装置151においては、符号化されて送られてくるイントラ予測モードの情報に基づいてのみイントラ予測処理が行われる。
[イントラ予測部および隣接画素内挿フィルタ切替部の構成例]
図23は、イントラ予測部および隣接画素内挿フィルタ切替部の詳細な構成例を示すブロック図である。なお、図23の機能ブロックは、図14に示された画像符号化装置51のオフライン処理の場合の機能ブロックに対応するものである。
図23の例の場合、イントラ予測部171は、予測画像生成部181、および隣接画素設定部182により構成されている。隣接画素内挿フィルタ切替部172は、予測モードバッファ191、量子化パラメータバッファ192、およびローパスフィルタ設定部193により構成されている。なお、ローパスフィルタ設定部193には、フィルタ係数メモリ194が内蔵されている。
予測画像生成部181には、可逆復号部162からのイントラ予測モード情報、隣接画素設定部182からフィルタ処理された隣接画素値が供給される。予測画像生成部181は、供給された隣接画素値を用いて、可逆復号部162からのイントラ予測モードでのイントラ予測を行い、予測画像を生成し、生成した予測画像を、スイッチ174に供給する。
隣接画素設定部182には、フレームメモリ169からのイントラ予測の対象ブロックの隣接画素値が供給される。図23の場合、スイッチ170の図示は省略されているが、実際には、隣接画素値は、フレームメモリ169から、スイッチ170を介して隣接画像設定部182に供給される。
隣接画素設定部182は、ローパスフィルタ設定部193により設定されたフィルタ係数を用いて、フレームメモリ169からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、フィルタ処理された隣接画素値を、予測画像生成部181に供給する。
予測モードバッファ191は、可逆復号部162からのイントラ予測モード情報を格納する。量子化パラメータバッファ192は、可逆復号部162からの量子化パラメータを格納する。
ローパスフィルタ設定部193は、予測モードバッファ191から対象ブロックのイントラ予測モード情報を読み出し、量子化パラメータバッファ192から対象ブロックに対する量子化パラメータを読み出す。ローパスフィルタ設定部193は、内蔵するフィルタ係数メモリ194に記憶されているフィルタ係数の中から、これらの情報に対応するフィルタ係数を設定し、設定したフィルタ係数を、隣接画素設定部182に供給する。
フィルタ係数メモリ194は、図14のフィルタ係数メモリ94と同様に、後述する図28の学習装置251において学習されることにより得られた、量子化パラメータおよびイントラ予測モードに対応したフィルタ係数を記憶している。
このフィルタ係数は、例えば、スライス毎に、図15を参照して上述したように算出されて記憶されたものである。なお、フィルタ係数メモリ194においても、フィルタ係数は、プロセッサのレジスタ長に応じて、nビット(nは整数)の値として保持される。
[画像復号装置の復号処理の説明]
次に、図24のフローチャートを参照して、画像復号装置151が実行する復号処理について説明する。
ステップS131において、蓄積バッファ161は伝送されてきた画像を蓄積する。ステップS132において、可逆復号部162は、蓄積バッファ161から供給される圧縮画像を復号する。すなわち、図1の可逆符号化部66により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)、量子化パラメータの情報、およびフラグ情報なども復号される。
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部171および隣接画素内挿フィルタ切替部172に供給される。また、量子化パラメータの情報が復号された場合には、これも隣接画素内挿フィルタ切替部172に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き予測・補償部173に供給される。
ステップS133において、逆量子化部163は可逆復号部162により復号された変換係数を、図1の量子化部65の特性に対応する特性で逆量子化する。ステップS134において逆直交変換部164は逆量子化部163により逆量子化された変換係数を、図1の直交変換部64の特性に対応する特性で逆直交変換する。これにより図1の直交変換部64の入力(演算部63の出力)に対応する差分情報が復号されたことになる。
ステップS135において、演算部165は、後述するステップS141の処理で選択され、スイッチ174を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS136においてデブロックフィルタ166は、演算部165より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS137においてフレームメモリ169は、フィルタリングされた画像を記憶する。
ステップS138において、イントラ予測部171、および動き予測・補償部173は、可逆復号部162から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
すなわち、可逆復号部162からイントラ予測モード情報が供給された場合、イントラ予測部171は、イントラ予測モードのイントラ予測処理を行う。このとき、イントラ予測部171は、隣接画素内挿フィルタ切替部172により設定されたフィルタ係数を用いて、隣接画素に対してのフィルタ処理およびイントラ予測処理を行う。
ステップS138における予測処理の詳細は、図25を参照して後述するが、この処理により、イントラ予測部171により生成された予測画像、または動き予測・補償部173により生成された予測画像がスイッチ174に供給される。
ステップS139において、スイッチ174は予測画像を選択する。すなわち、イントラ予測部171により生成された予測画像、または動き予測・補償部173により生成された予測画像供給される。したがって、供給された予測画像が選択されて演算部165に供給され、上述したように、ステップS134において逆直交変換部164の出力と加算される。
ステップS140において、画面並べ替えバッファ167は並べ替えを行う。すなわち画像符号化装置51の画面並べ替えバッファ62により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS141において、D/A変換部168は、画面並べ替えバッファ167からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
[予測処理の説明]
次に、図25のフローチャートを参照して、図24のステップS138の予測処理を説明する。
予測画像生成部181は、ステップS171において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部162からイントラ予測モード情報が予測画像生成部181に供給されると、予測画像生成部181は、ステップS171において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS172に進む。
予測画像生成部181は、ステップS172において、可逆復号部162からのイントラ予測モード情報を受信、取得する。このとき、予測モードバッファ191にも、イントラ予測モード情報が供給され、格納される。
また、可逆復号部162から量子化パラメータの情報が量子化パラメータバッファ192に供給されると、量子化パラメータバッファ192は、ステップS173において、量子化パラメータを取得し、格納する。
ローパスフィルタ設定部193は、予測モードバッファ191から対象ブロックのイントラ予測モード情報を読み出し、量子化パラメータバッファ192から対象ブロックに対する量子化パラメータを読み出す。ローパスフィルタ設定部193は、ステップS174において、内蔵するフィルタ係数メモリ194に記憶されているスライス毎のフィルタ係数の中から、これらの情報に対応する、隣接画素に対するフィルタ係数を設定する。設定したフィルタ係数は、隣接画素設定部182に供給される。
隣接画素設定部182は、ステップS175において、ローパスフィルタ設定部193により設定されたフィルタ係数を用いて、フレームメモリ169からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、フィルタ処理された隣接画素値を、予測画像生成部181に供給する。
予測画像生成部181は、隣接画素設定部182から供給された隣接画素値を用いて、ステップS172で取得したイントラ予測モードでのイントラ予測を行い、予測画像を生成する。生成された予測画像は、スイッチ174に供給される。
一方、ステップS171において、イントラ符号化されていないと判定された場合、処理は、ステップS177に進む。
処理対象の画像がインター処理される画像である場合、可逆復号部162からインター予測モード情報、参照フレーム情報、動きベクトル情報が動き予測・補償部173に供給される。ステップS177において、動き予測・補償部173は、可逆復号部162からのインター予測モード情報、参照フレーム情報、動きベクトル情報などを取得する。
そして、動き予測・補償部173は、ステップS178において、インター動き予測を行う。すなわち、処理対象の画像がインター予測処理される画像である場合、必要な画像がフレームメモリ169から読み出され、スイッチ170を介して動き予測・補償部173に供給される。ステップS177において動き予測・補償部173は、ステップS176で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。生成した予測画像は、スイッチ174に出力される。
[イントラ予測部および隣接画素内挿フィルタ切替部の他の構成例]
図26は、イントラ予測部および隣接画素内挿フィルタ切替部の詳細な構成例を示すブロック図である。なお、図26の機能ブロックは、図20に示された画像符号化装置51のオンライン処理の場合の機能ブロックに対応するものである。
図26の例の場合、イントラ予測部171は、図23の予測画像生成部181、および隣接画素設定部182により構成されている。隣接画素内挿フィルタ切替部172は、図23の予測モードバッファ191、並びに、内挿フィルタバッファ201、およびローパスフィルタ設定部202により構成されている。なお、図26の例において、図23の場合と対応する部には、対応する符号が付されており、基本的に同様な処理を行うので、その説明は省略する。
図26の場合、画像符号化装置51から対象スライスについて算出されたフィルタ係数が符号化されて送られてくる。したがって、可逆復号部162は、それを他の情報とともに復号して、隣接画素内挿フィルタ切替部172の内挿フィルタバッファ201に供給してくる。
内挿フィルタバッファ201は、可逆復号部162からの対象スライスのフィルタ係数を取得し、格納する。
ローパスフィルタ設定部202は、予測モードバッファ191から対象ブロックのイントラ予測モード情報を読み出す。ローパスフィルタ設定部202は、内挿フィルタバッファ201に格納されている対象スライスのフィルタ係数の中から、読み出したイントラ予測モードに対応するフィルタ係数を読み出して、対象ブロックのフィルタ係数として設定する。設定されたフィルタ係数は、隣接画素設定部182に供給される。
[予測処理の他の説明]
次に、図27のフローチャートを参照して、図26のイントラ予測部171および隣接画素内挿フィルタ切替部172の場合の予測処理を説明する。なお、このイントラ予測処理は、図24のステップS138における予測処理の他の例である。また、図27のステップS181、S182、およびS185乃至S188の処理は、基本的に、図25のステップS171、S172、およびS175乃至S178と同様の処理を行うので、その詳細な説明は省略される。
予測画像生成部181は、ステップS181において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部162からイントラ予測モード情報が予測画像生成部181に供給されると、予測画像生成部181は、ステップ181において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS182に進む。
予測画像生成部181は、ステップS182において、可逆復号部162からのイントラ予測モード情報を受信、取得する。このとき、予測モードバッファ191にも、イントラ予測モード情報が供給され、格納される。
また、可逆復号部162から対象スライスのフィルタ係数の情報が内挿フィルタバッファ201に供給されると、内挿フィルタバッファ201は、ステップS183において、対象スライスのフィルタ係数を取得し、格納する。なお、このフィルタ係数は、スライス毎に供給される。
ローパスフィルタ設定部202は、予測モードバッファ191から対象ブロックのイントラ予測モード情報を読み出す。ローパスフィルタ設定部202は、ステップS184において、内挿フィルタバッファ201に格納された対象スライスのフィルタ係数の中から、対象ブロックのイントラ予測モードに対応する、隣接画素に対するフィルタ係数を設定する。設定したフィルタ係数は、隣接画素設定部182に供給される。
隣接画素設定部182は、ステップS185において、ローパスフィルタ設定部202により設定されたフィルタ係数を用いて、フレームメモリ169からの対象ブロックの隣接画素値に対して、フィルタ処理を施し、フィルタ処理された隣接画素値を、予測画像生成部181に供給する。
予測画像生成部181は、ステップS186において、隣接画素設定部182から供給された隣接画素値を用いて、ステップS172で取得したイントラ予測モードでのイントラ予測を行い、予測画像を生成する。生成された予測画像は、スイッチ174に供給される。
一方、ステップS181において、イントラ符号化されていないと判定された場合、処理は、ステップS187に進む。
ステップS187において、動き予測・補償部173は、可逆復号部162からのインター予測モード情報、参照フレーム情報、動きベクトル情報などを取得する。
動き予測・補償部173は、ステップS188において、インター動き予測を行う。この処理により、生成された予測画像は、スイッチ174に出力される。
以上、図1の画像符号化装置51および図22の画像復号装置151においては、イントラ予測に先立ち、イントラ予測に用いられる隣接画素に対して、画像に適応的に設定されたフィルタ係数を用いて、フィルタ処理が行われる。例えば、イントラ予測のモードや量子化パラメータに応じて、フィルタ係数が設定される。
これにより、画像やビットレートに応じたノイズ除去を行うことができる。その結果、予測効率を改善することができる。
図28は、本発明を適用した学習装置の一実施の形態の構成を表している。図28の例において、学習装置251は、トレーニング画像信号を用いて、フィルタ係数の学習処理を行う。
なお、トレーニング画像信号とは、フィルタ係数を求めるためのテスト画像のことであり、例えば、www.vqeg.orgにおいて取得可能な画像圧縮符号化の標準化で使われる標準シーケンスを用いてもよい。あるいは、また、各アプリケーションに応じた入力画像を用いてもよい。例えば、入力がカメラ信号である場合には、CCDやCMOSセンサを用いて撮影されたベースバンド信号を用いて学習を行ってもよい。
図28の学習装置251は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部76、予測画像選択部77、およびレート制御部78を備えている点が、図1の画像符号化装置51と共通している。
また、学習装置251は、用いられる信号として、トレーニング用の画像信号が用いられる点、並びに、隣接画素内挿フィルタ切替部75に代えて、隣接画素内挿フィルタ算出部261を備えている点が、図1の画像符号化装置51と異なる。
具体的には、学習装置251においては、Iピクチャに含まれるブロックのみが用いられて、学習が行われる。あるいは、学習装置251においては、BピクチャおよびPピクチャに含まれるイントラマクロブロック内のブロックのみが用いられて学習が行われる。前者の方が、後者よりも学習に要する演算量は少なくてすむ。また、前者の場合、Iピクチャに含まれるブロック求められた係数を、Iピクチャに含まれるブロックのみに適用してもよいし、BピクチャおよびPピクチャに含まれるイントラマクロブロックに対してもよい。
すなわち、学習装置251においては、イントラ予測部74によるイントラ予測のみによる学習が行われる。したがって、動き予測・補償部76は、実際には、機能しないものとする。
さらに、図29の隣接画素内挿フィルタ算出部261は、予測モードバッファ121、最適フィルタ算出部122、およびローパスフィルタ設定部123を備える点が図20の隣接画素内挿フィルタ切替部75と共通する。
これに対して、隣接画素内挿フィルタ算出部261は、フィルタ係数記憶部271が追加されている点と、レート制御部78から量子化パラメータが、最適フィルタ算出部122に供給されている点が、図20の隣接画素内挿フィルタ切替部75と異なる。
具体的に説明すると、図29の例においては、図20の例の場合と同様に、イントラ予測部74と隣接画素内挿フィルタ切替部75との間には、スイッチ101が設けられており、スイッチ101のオンオフにより、イントラ予測部74は、2回イントラ予測を行う。
すなわち、イントラ予測部74においては、スイッチ101がオフの状態で、H.264/AVCで定義されているイントラ予測が行われ、そのイントラ予測モードと、量子化パラメータに最適なフィルタ係数がスライス毎に算出される。この算出されたスライス毎のフィルタ係数は、フィルタ係数記憶部271に記憶される。そして、スイッチ101がオンの状態で、算出されたスライス毎のフィルタ係数の中から、隣接画素内挿フィルタ切替部75により設定されたフィルタ係数でのイントラ予測が行われる。
このフィルタ係数記憶部271に記憶されたフィルタ係数が、図1の画像符号化装置51のフィルタ係数メモリ94(図14)および図22の画像復号装置151のフィルタ係数メモリ194(図23)に、記録媒体やネットワークなどを介して記憶される。
[学習処理におけるイントラ予測処理の説明]
次に、図30のフローチャートを参照して、図28の学習装置251が行う学習処理の1処理としてのイントラ予測処理を説明する。なお、学習装置251としては、学習処理として、ステップS21の予測処理が図30のイントラ予測処理に入れ替わったことを除いて、図17の符号化処理と基本的に同様の処理が行われる。
また、図30のステップS201乃至S203、およびS206乃至S209は、図21のステップS101乃至S103、およびS105乃至S108と基本的に同様な処理を行うので、その説明は繰り返しになるので省略する。すなわち、図30のステップS204において、最適フィルタ算出部122は、対象スライスの各イントラ予測モードおよび対応する量子化パラメータに対して、対象スライス全体での残差を最小にするフィルタ係数を、最適なフィルタ係数として算出する。算出されたフィルタ係数は、フィルタ係数記憶部271に供給される。
ステップS205において、フィルタ係数記憶部271は、最適フィルタ算出部122から供給されたフィルタ係数を記憶する。
ローパスフィルタ設定部123は、フィルタ係数記憶部271に記憶された対象スライスのフィルタ係数の中から、対象ブロックに対するフィルタ係数を設定し、スイッチ101の端子をオンにして、設定されたフィルタ係数を、隣接画素設定部111に供給する。
これに対応して、ステップS206においては、設定されたフィルタ係数が用いられて、フレームメモリ72からの対象ブロックの隣接画素値に対して、フィルタ処理が行われる。
もちろん、図21の例の場合と同様に、上述したステップS204乃至S207の処理を繰り返すことにより、さらに最適化されたフィルタ係数を得ることも可能である。
以上のように、学習装置251においては、トレーニング画像信号が用いられて、実際に行われる符号化処理と同様な処理が行われ、その中で算出されたフィルタ係数が、フィルタ係数記憶部271される。したがって、最適なフィルタ係数を求めることができる。
このフィルタ係数記憶部271に記憶されたフィルタ係数が、図1の画像符号化装置51のフィルタ係数メモリ94(図14)および図22の画像復号装置151のフィルタ係数メモリ194(図23)に、記録媒体やネットワークなどを介して記憶される。
そして、画像符号化装置51においては、上述したように、Iピクチャに含まれるブロック求められた係数(あるいはBピクチャおよびPピクチャに含まれるイントラマクロブロック)が、Iピクチャに含まれるブロックのみに適用される。あるいは、Iピクチャに含まれるブロックだけでなく、BピクチャおよびPピクチャに含まれるイントラマクロブロックにも適用される。
これにより、図1の画像符号化装置51および図22の画像復号装置151において、高い符号化効率を実現することが可能となる。
なお、上述した図1の画像符号化装置51の直交変換部64および逆直交変換部69、並びに、図22の画像復号装置151の逆直交変換部164においては、H.264/AVCで定義されている直交変換・逆直交変換が行われる。これに代えて、図1の画像符号化装置51の直交変換部64および逆直交変換部69、並びに、図22の画像復号装置151の逆直交変換部164に、非特許文献1において提案されている直交変換・逆直交変換を適用することもできる。
これにより、非特許文献1において提案されている方式の符号化効率をさらに向上させることができる。
なお、上記説明においては、イントラ予測を行う例を説明したが、本発明は、非特許文献2で提案される2次予測におけるイントラ予測にも適用することができる。
<2.第2の実施の形態>
[画像符号化装置の他の構成例]
図31は、本発明を適用した画像処理装置としての画像符号化装置の他の実施の形態の構成を表している。
画像符号化装置351は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部76、予測画像選択部77、およびレート制御部78を備えている点は、図1の画像符号化装置51と共通している。
また、画像符号化装置351は、隣接画素内挿フィルタ切替部75が除かれている点、並びに、2次予測部361および隣接画素内挿フィルタ切替部362が追加されている点が、図1の画像符号化装置51と異なる。
すなわち、図31の例においては、イントラ予測部74は、H.264/AVCのイントラ予測を行う。
一方、動き予測・補償部76は、インター処理する画像と参照画像に基づいて、候補となる全てのインター予測モードの動きベクトルを検出し、動きベクトルに基づいて参照画像に補償処理を施し、予測画像を生成する。
動き予測・補償部76は、検出された動きベクトル情報、インター処理する画像の情報(アドレスなど)、およびインター処理する画像と生成された予測画像の差分である1次残差を、2次予測部361に供給する。
動き予測・補償部76は、2次予測部361からの2次残差を比較することで、2次予測における最適なイントラ予測モードを決定する。また、動き予測・補償部76は、2次残差と1次残差を比較することで、2次残差を符号化するか、または1次残差を符号化するかを決定する。なお、これらの処理は、候補となる全てのインター予測モードに対して行われる。
そして、動き予測・補償部76は、候補となる全てのインター予測モードに対してコスト関数値を算出する。このとき、1次残差および2次残差のうち、インター予測モード毎に決定された残差が用いられて、コスト関数値が算出される。動き予測・補償部76は、算出したコスト関数値のうち、最小値を与える予測モードを、最適インター予測モードとして決定する。
動き予測・補償部76は、最適インター予測モードで生成された予測画像(またはインターする画像と2次残差の差分)、およびそのコスト関数値を、予測画像選択部77に供給する。動き予測・補償部76は、予測画像選択部77により最適インター予測モードで生成された予測画像が選択された場合、最適インター予測モードを示す情報を可逆符号化部66に出力する。
このとき、動きベクトル情報、参照フレーム情報、2次予測を行うことを示す2次予測フラグ、および2次予測におけるイントラ予測モードの情報なども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部76からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
2次予測部361は、動き予測・補償部76からの動きベクトル情報とインター処理する画像の情報に基づいて、インター処理する対象の対象ブロックに隣接する対象隣接画素をフレームメモリ72から読み出す。また、2次予測部361は、動きベクトル情報により対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素をフレームメモリ72から読み出す。
2次予測部361は、2次予測処理を行う。2次予測処理とは、1次残差、および対象隣接画素と参照隣接画素の差分の間でイントラ予測を行い、2次差分情報(2次残差)を生成する処理である。
ここで、2次予測処理について、図32を参照して説明する。
図32の例においては、対象フレームと参照フレームが示されており、対象フレームには、対象ブロックAが示されている。
参照フレームと対象フレームにおいて対象ブロックAに対して動きベクトルmv(mv_x,mv_y)が求められた場合に、対象ブロックAと、対象ブロックAに動きベクトルmvで対応付けられるブロックの差分情報(残差)が算出される。
2次予測方式においては、対象ブロックAに関する差分情報だけでなく、対象ブロックAに隣接する隣接画素群Rと、隣接画素群Rに動きベクトルmvで対応付けられる隣接画素群R1との差分情報も算出される。
すなわち、対象ブロックAの左上の座標(x,y)から、隣接画素群Rの各座標が求められる。また、対象ブロックAに動きベクトルmvで対応付けられるブロックの左上の座標(x+mv_x,y+mv_y)から、隣接画素群R1の各座標が求められる。これらの座標値により、隣接画素群の差分情報が算出される。
2次予測方式においては、このように算出された対象ブロックに関する差分情報と、隣接画素に関する差分情報との間で、H.264/AVC方式におけるイントラ予測が行われ、これにより、2次差分情報が生成される。生成された2次差分情報が直交変換、量子化され、圧縮画像とともに符号化されて、復号側に送られる。
2次予測部361は、この2次予測に先立ち、隣接画素内挿フィルタ切替部362により設定されたフィルタ係数を用いて、イントラ予測に用いる対象隣接画素と参照隣接画素の差分に対して、フィルタ処理を行う。そして、2次予測部361は、フィルタ処理された対象隣接画素と参照隣接画素の差分を用いて、2次予測処理を行い、得られた2次差分情報(2次残差)を、動き予測・補償部76に出力する。
すなわち、2次予測部361は、図14に示したイントラ予測部74などを含むように構成されている。
隣接画素内挿フィルタ切替部362は、図1の隣接画素内挿フィルタ切替部75と基本的に同様に構成され、同様の処理を行う。すなわち、隣接画素内挿フィルタ切替部362は、2次予測部361からのイントラ予測モードの情報と、レート制御部78からの量子化パラメータに応じたフィルタ係数を設定し、設定したフィルタ係数を、2次予測部361に供給する。
なお、図31の画像符号化装置351の符号化処理は、以下のイントラ処理と動き予測処理が異なるだけであり、その他の処理は、図1の画像符号化装置51による図16の符号化処理と基本的に同様の処理であるので、その説明は省略する。
すなわち、図31の画像符号化装置351においては、イントラ処理として、H.264/AVC方式におけるイントラ予測が行われる。また、動き予測処理として、動き予測処理の際に、隣接画素内挿フィルタ切替部362により設定されたフィルタ係数が用いられて、2次差分情報が生成される。そして、1次差分情報と2次差分情報のうち、符号化効率のよいものが選択され、コスト関数値が比較されることにより最適インター予測モードが決定される。
この画像符号化装置351により符号化された圧縮画像を受け、それを復号する画像復号装置について図33を参照して説明する。
[画像復号装置の他の構成例]
図33は、本発明を適用した画像処理装置としての画像復号装置の他の実施の形態の構成を表している。
画像復号装置401は、蓄積バッファ161、可逆復号部162、逆量子化部163、逆直交変換部164、演算部165、デブロックフィルタ166、画面並べ替えバッファ167、D/A変換部168、フレームメモリ169、スイッチ170、イントラ予測部171、動き予測・補償部173、およびスイッチ174を備える点が、図22の画像復号装置151と共通している。
また、画像復号装置401は、隣接画素内挿フィルタ切替部172が除かれている点、並びに、2次予測部411、および隣接画素内挿フィルタ切替部412が追加されている点が、図22の画像復号装置151と異なっている。
すなわち、イントラ予測部171には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部162から供給される。イントラ予測部171は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ174に出力する。
動き予測・補償部173には、ヘッダ情報を復号して得られた情報のうち、予測モード情報、動きベクトル情報、参照フレーム情報などが可逆復号部162から供給される。また、動き予測・補償部173には、対象ブロックに対して2次予測処理が適用されている場合には、2次予測を行うことを示す2次予測フラグと、2次予測におけるイントラ予測モード情報も可逆復号部162から供給される。
動き予測・補償部173は、2次予測処理が適用されていると判定した場合、2次予測部411を制御し、2次予測におけるイントラ予測モード情報が示すイントラ予測モードで、2次予測を行わせる。
動き予測・補償部173は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。すなわち、対象ブロックの予測画像は、参照フレームにおいて、対象ブロックに動きベクトルで対応付けられる参照ブロックの画素値が用いられて生成される。そして、動き予測・補償部173は、生成された予測画像と2次予測部411からの予測差分値を加算して、それをスイッチ174に出力する。
2次予測部411は、フレームメモリ169から読み出される対象隣接画素と参照隣接画素の差分を用いて、2次予測を行う。2次予測部411は、この2次予測に先立ち、隣接画素内挿フィルタ切替部412により設定されたフィルタ係数を用いて、対象隣接画素と参照隣接画素の差分に対して、フィルタ処理を行う。そして、2次予測部411は、フィルタ処理された対象隣接画素と参照隣接画素の差分を用いて、2次予測処理を行い、得られた2次差分情報(2次残差)を、動き予測・補償部173に出力する。
すなわち、2次予測部411は、図26に示したイントラ予測部171を含むように構成されている。
隣接画素内挿フィルタ切替部412は、隣接画素内挿フィルタ切替部172と基本的に同様に構成される。すなわち、隣接画素内挿フィルタ切替部412は、可逆復号部162からの量子化パラメータおよびイントラ予測モードの少なくとも1つに対応するフィルタ係数を設定する。隣接画素内挿フィルタ切替部412は、設定したフィルタ係数を、2次予測部411に供給する。
なお、図33の画像復号装置401の符号化処理は、以下のイントラ処理と動き予測処理が異なるだけであり、その他の処理は、図22の画像復号装置151による図24の復号処理と基本的に同様の処理であるので、その説明は省略する。
すなわち、図33の画像復号装置401においては、イントラ処理として、H.264/AVC方式におけるイントラ予測が行われる。また、動き予測処理として、動き予測処理の際に、隣接画素内挿フィルタ切替部412により設定されたフィルタ係数が用いられて、2次予測(イントラ予測)が行われ、2次差分情報が生成される。
以上のような2次予測処理におけるイントラ予測にも、本発明を適用することができる。
なお、上記説明においては、イントラ予測に先立ち、イントラ予測に用いられる隣接画素に対して、画像に適応的に設定されたフィルタ係数を用いてフィルタ処理が行われる例を説明した。
ところで、イントラ予測方式に用いられる隣接画素に含まれるノイズは、画像コンテンツおよび量子化パラメータ等の符号化条件により異なる。このため、例えば、H.264/AVC方式において行われるフィルタ処理を施すことにより、符号化効率が向上するブロックと、そうでないブロックが存在する。
それにも拘わらず、H.264/AVC方式においては、マクロブロックに対して、8×8ブロックベースのイントラ予測が行われる際、全てのブロックに対して一様にフィルタ処理が行われていたため、これにより符号化効率が低下するブロックが発生していた。
そこで、次に、イントラ予測に用いられる隣接画素に対するフィルタ処理をオン/オフする場合の例について説明する。
<3.第3の実施の形態>
[画像符号化装置の他の構成例]
図34は、本発明を適用した画像処理装置としての画像符号化装置の他の実施の形態の構成を表している。
画像符号化装置451は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部76、予測画像選択部77、およびレート制御部78を備えている点は、図1の画像符号化装置51と共通している。
また、画像符号化装置451は、隣接画素内挿フィルタ切替部75が、隣接画素内挿フィルタ制御部461に入れ替わっている点が、図1の画像符号化装置51と異なる。
すなわち、隣接画素内挿フィルタ制御部461は、H.264/AVC方式においては、8×8ブロックベースのイントラ予測が行われる際、全てのブロックに対して一様に行われていた隣接画素に対するフィルタ処理を、onまたはoffする制御を行う。なお、H.264/AVC方式においては、8×8ブロックベースのイントラ予測についてのみフィルタ処理が行われていたが、画像符号化装置451においては、イントラ4×4、イントラ16×16についても行われる。
隣接画素内挿フィルタ制御部461からのフィルタ処理のon/offの制御信号は、イントラ予測部74に供給される。
イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像とフレームメモリ72から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。この際、イントラ予測部74においては、イントラ予測に先立ち、隣接画素内挿フィルタ制御部461からの制御信号に応じてフィルタ処理をonまたはoffして、イントラ予測が行われ、結果的に、算出されるコスト関数値の小さい方が採用される。
さらに、イントラ予測部74は、このフィルタ処理のonまたはoffを示すフラグを生成する。このフラグ情報は、予測画像選択部77により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報とともに、可逆符号化部66に供給される。
[イントラ予測部の構成例]
図35は、図34のイントラ予測部74の詳細な構成例を示すブロック図である。図35の例の場合、イントラ予測部74は、予測画像生成部471、コスト関数値生成部472、並びにモード及びon/off判定部473により構成されている。
予測画像生成部471には、フレームメモリ72からのイントラ予測の対象ブロックの隣接画素値が供給される。図35の場合、スイッチ73の図示は省略されているが、実際には、隣接画素値は、フレームメモリ72から、スイッチ73を介して予測画像生成部471に供給される。なお、イントラ予測の場合、隣接画素値として、デブロックフィルタ71によりデブロックフィルタリングされていない画素値が用いられる。
予測画像生成部471は、隣接画素内挿フィルタ制御部461からの制御信号に基づいて、隣接画素値に対するフィルタ処理を行い、あるいは、フィルタ処理を行わずに、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。この制御信号が示す隣接画素内挿フィルタ制御部461によるon/offの制御は、図36乃至図38を参照して後述するように、ブロック単位またはマクロブロック単位で行われる。
予測画像生成部471は、生成した予測画像画素値と、そのイントラ予測モードの情報を、コスト関数値生成部472に供給する。
コスト関数値生成部472には、画面並べ替えバッファ62から原画像画素値が供給される。コスト関数値生成部472は、原画像画素値と予測画像画素値を用いて、フィルタ処理onまたはoffの場合の、各イントラ予測モードに対するコスト関数値を算出する。コスト関数値生成部472は、算出したコスト関数値、予測画像画素値、およびイントラ予測モードの情報を、モード及びon/off判定部473に供給する。
モード及びon/off判定部473は、コスト関数値生成部472からのコスト関数値を用いて、最適イントラ予測モードと、フィルタ処理をonまたはoffのどちらに設定するかを決定し、フィルタ処理のonまたはoffを示すon/offフラグ情報を生成する。
モード及びon/off判定部473は、最適イントラ予測モードの予測画像画素値を予測画像選択部77に供給する。予測画像選択部77により最適イントラ予測モードの予測画像が選択された場合、モード及びon/off判定部473は、最適イントラ予測モードを示す情報と、対応するon/offフラグ情報を可逆符号化部66に供給する。
なお、画像符号化装置451による処理は、以下に説明するイントラ予測処理以外は、図1の画像符号化装置51の処理と同様の処理を行うため、その説明は繰り返しになるので省略される。
次に、図36のフローチャートを参照して、ブロック単位でonまたはoffの制御が行われる場合の図34のイントラ予測部74のイントラ予測処理について説明する。なお、この処理は、図17のステップS31のイントラ予測処理の他の例であり、図36の例においては、イントラ4×4を例に説明する。また、以下、フィルタ処理on/offを、単にフィルタon/offとも称する。
ステップS401において、コスト関数値生成部472は、対象ブロックについて、図3または図4に示した9種類のそれぞれのイントラ予測モードに対するコスト関数値を生成する。
すなわち、予測画像生成部471には、フレームメモリ72からのイントラ予測の対象ブロックの隣接画素値が供給される。予測画像生成部471は、図3または図4に示した9種類のそれぞれのイントラ予測モードに対するイントラ予測を行い、対象ブロックの予測画像を生成する。
このとき、隣接画素内挿フィルタ制御部461から、隣接画素に対するフィルタ処理を行わない制御信号が供給され、予測画像生成部471は、隣接画素に対するフィルタ処理を行わずに、イントラ予測を行う。なお、ここでは、隣接画素に対するフィルタ処理を行う制御信号が供給されるようにしてもよい。ただし、例えば、9つのモードのうち、Verticalには行うが、Horizontalには行わないなど異なる制御をするのではなく、行うか行わないかは、9つのモードに対して同一の制御を行うものとする。また、ここでは、全てのモードに対してフィルタ処理を行わないとしたほうが、演算量は少なくて済む。
予測画像生成部471は、生成した予測画像画素値と、そのイントラ予測モードの情報を、コスト関数値生成部472に供給する。コスト関数値生成部472は、画面並べ替えバッファ62からの原画像画素値と予測画像画素値を用いて、フィルタoffの場合の、各イントラ予測モードに対して、上述した式(73)または式(74)で示されるコスト関数値を算出する。コスト関数値生成部472は、算出したコスト関数値、予測画像画素値、およびイントラ予測モードの情報を、モード及びon/off判定部473に供給する。
ステップS402において、モード及びon/off判定部473は、コスト関数値生成部472からのコスト関数値を用いて、対象ブロックについて最適なイントラ予測モードを選択する。選択されたイントラ予測モードの情報は、隣接画素内挿フィルタ制御部461に供給される。
ステップS403において、隣接画素内挿フィルタ制御部461は、コスト関数値生成部472に、選択されたイントラ予測モードに対して、フィルタonおよびoffのコスト関数値を生成させる。なお、ステップS401でフィルタoffのコスト関数値は生成されているので、実際には、ステップS403においては、フィルタonのコスト関数値が生成される。
すなわち、隣接画素内挿フィルタ制御部461は、予測画像生成部471に、フィルタonの制御信号と、選択されたイントラ予測モードの情報を供給する。予測画像生成部471は、選択されたイントラ予測モードに用いられる隣接画素値に対するフィルタ処理を行い、選択されたイントラ予測モードで、イントラ予測を行い、対象ブロックの予測画像を生成する。
予測画像生成部471は、生成した予測画像画素値と、選択されたイントラ予測モードの情報を、コスト関数値生成部472に供給する。コスト関数値生成部472は、画面並べ替えバッファ62からの原画像画素値と予測画像画素値を用いて、フィルタonの場合の、選択されたイントラ予測モードに対して、上述した式(73)または式(74)で示されるコスト関数値を算出する。コスト関数値生成部472は、算出したコスト関数値、および予測画像画素値を、モード及びon/off判定部473に供給する。
ステップS404において、モード及びon/off判定部473は、選択されたイントラ予測モードについてのフィルタonおよびoffのコスト関数値を比較し、対象ブロックについて、フィルタon/offを決定する。すなわち、フィルタonのコスト関数値が小さい場合は、対象ブロックについてフィルタonを決定し、フィルタoffのコスト関数値が小さい場合には、対象ブロックについてフィルタoffを決定する。そして、モード及びon/off判定部473は、決定された方の予測画像値を、予測画像選択部77に供給する。
ステップS405において、モード及びon/off判定部473は、対象ブロックについて、ステップS404で決定されたonまたはoffを示すon/offフラグを生成する。例えば、フィルタonの場合、on/offフィルタの値は、1とされる。フィルタoffの場合、on/offフィルタの値は、0とされる。
生成されたon/offフラグ情報は、上述した図16のステップS22でイントラ予測モードの予測画像が選択された場合に、最適イントラ予測モードを示す情報とともに、可逆符号化部66に供給される。そして、供給されたこれらの情報は、図16のステップS23において、符号化され、圧縮画像のヘッダに付加されて、復号側に送信される。
次に、図37のフローチャートを参照して、ブロック単位でonまたはoffの制御が行われる場合の図34のイントラ予測部74のイントラ予測処理の他の例について説明する。図37の例の場合も、イントラ4×4を例に説明する。
ステップS421において、コスト関数値生成部472は、対象ブロックについて、それぞれのイントラ予測モードに対して、フィルタのonおよびoffによるコスト関数値を生成する。
すなわち、予測画像生成部471には、フレームメモリ72からのイントラ予測の対象ブロックの隣接画素値が供給される。予測画像生成部471は、図3または図4に示した9種類のそれぞれのイントラ予測モードに対するイントラ予測を行い、対象ブロックの予測画像を生成する。
このとき、まず、隣接画素内挿フィルタ制御部461から、隣接画素に対するフィルタ処理を行わない制御信号が供給され、予測画像生成部471は、隣接画素に対するフィルタ処理を行わずに、各イントラ予測モードに対するイントラ予測を行い、予測画像を生成する。さらに、隣接画素内挿フィルタ制御部461から、隣接画素に対するフィルタ処理を行う制御信号が供給され、予測画像生成部471は、隣接画素に対するフィルタ処理を行って、各イントラ予測モードに対するイントラ予測を行い、予測画像を生成する。
予測画像生成部471は、フィルタonおよびoffの各イントラ予測モードの情報と、対応する予測画像画素値を、コスト関数値生成部472に供給する。コスト関数値生成部472は、画面並べ替えバッファ62からの原画像画素値と予測画像画素値を用いて、フィルタ処理offの場合、onの場合それぞれの、各イントラ予測モードに対して、上述した式(73)または式(74)で示されるコスト関数値を算出する。コスト関数値生成部472は、算出したフィルタ処理on、offの各場合のコスト関数値、予測画像画素値、およびイントラ予測モードの情報を、モード及びon/off判定部473に供給する。
ステップS422において、モード及びon/off判定部473は、コスト関数値生成部472からのコスト関数値を用いて、対象ブロックについて、それぞれのイントラ予測モードに対して、フィルタをonするかoffするかを決定する。
そして、さらに、ステップS423において、モード及びon/off判定部473は、フィルタonまたはoffが決定された各イントラ予測モードの中から、対象ブロックについての最適なイントラ予測モードを選択する。
ステップS424において、モード及びon/off判定部473は、選択したイントラ予測モードのフィルタの状態(onかoff)を示すon/offフラグを生成する。生成されたon/offフラグ情報は、上述した図16のステップS22でイントラ予測モードの予測画像が選択された場合に、最適イントラ予測モードを示す情報とともに、可逆符号化部66に供給される。そして、供給されたこれらの情報は、図16のステップS23において、符号化され、圧縮画像のヘッダに付加されて、復号側に送信される。
次に、図38のフローチャートを参照して、マクロブロック単位でonまたはoffの制御が行われる場合の図34のイントラ予測部74のイントラ予測処理について説明する。なお、この処理は、図17のステップS31のイントラ予測処理の他の例であり、図38の例においても、イントラ4×4を例に説明する。
ステップS451において、隣接画素内挿フィルタ制御部461は、マクロブロック全体に対するフィルタをoffまたはonに固定する。いまの場合、隣接画素内挿フィルタ制御部461は、フィルタをoffに固定し、フィルタoffの制御信号を、予測画像生成部471に供給する。フィルタの固定は、onでもoffでもよいが、offに固定した方が、より少ない演算量により実現することが可能になる。
イントラ予測部74は、ステップS452において、それぞれのブロックに対してイントラ予測モードを決定する。すなわち、予測画像生成部471には、フレームメモリ72からのイントラ予測の対象ブロックの隣接画素値が供給される。予測画像生成部471は、図3または図4に示した9種類のそれぞれのイントラ予測モードに対するイントラ予測を行い、対象ブロックの予測画像を生成する。
このとき、隣接画素内挿フィルタ制御部461から、隣接画素に対するフィルタ処理を行わない制御信号が供給され、予測画像生成部471は、隣接画素に対するフィルタ処理を行わずに、イントラ予測を行い、予測画像を生成する。予測画像生成部471は、生成した予測画像画素値と、そのイントラ予測モードの情報を、コスト関数値生成部472に供給する。
コスト関数値生成部472は、画面並べ替えバッファ62からの原画像画素値と予測画像画素値を用いて、フィルタoffの場合の、各イントラ予測モードに対して、上述した式(73)または式(74)で示されるコスト関数値を算出する。コスト関数値生成部472は、算出したコスト関数値、予測画像画素値、およびイントラ予測モードの情報を、モード及びon/off判定部473に供給する。
モード及びon/off判定部473は、コスト関数値生成部472からのコスト関数値を用いて、それぞれのブロックについて最適なイントラ予測モードを決定する。決定されたイントラ予測モードの情報は、隣接画素内挿フィルタ制御部461に供給される。
ステップS453において、隣接画素内挿フィルタ制御部461は、コスト関数値生成部472に、マクロブロック全体に対して、フィルタon及びoffのコスト関数値を生成させる。なお、マクロブロック内の各ブロックの最適なイントラ予測モード(すなわち、マクロブロック全体)についてのフィルタoffのコスト関数値は、ステップS452で生成されている。したがって、実際には、ステップS453においては、マクロブロック全体に対してのフィルタonのコスト関数値が生成される。
すなわち、隣接画素内挿フィルタ制御部461は、予測画像生成部471に、フィルタonの制御信号と、各ブロックについてそれぞれ決定されたイントラ予測モードの情報を供給する。予測画像生成部471は、決定されたイントラ予測モードに用いられる隣接画素値に対するフィルタ処理を行い、決定されたイントラ予測モードで、イントラ予測を行い、対象ブロックの予測画像を生成する。
予測画像生成部471は、生成した予測画像画素値と、決定されたイントラ予測モードの情報を、コスト関数値生成部472に供給する。コスト関数値生成部472は、画面並べ替えバッファ62からの原画像画素値と予測画像画素値を用いて、フィルタ処理onの場合の、決定されたイントラ予測モードに対して、上述した式(73)または式(74)で示されるコスト関数値を算出する。コスト関数値生成部472は、算出したフィルタonおよびoffの場合のコスト関数値、および予測画像画素値を、モード及びon/off判定部473に供給する。
ステップS454において、モード及びon/off判定部473は、コスト関数値生成部472からのフィルタonおよびoffの場合のマクロブロック内のすべてのブロックのコスト関数値を比較して、マクロブロック全体に対して、フィルタon/offのどちらを適用するかを決定する。
ステップS455において、モード及びon/off判定部473は、マクロブロック全体に対して、ステップS454で決定されたonまたはoffを示すon/offフラグを生成する。生成されたon/offフラグ情報は、マクロブロック毎に、可逆符号化部66に供給される。そして、供給されたこれらの情報は、ステップS23において、符号化され、圧縮画像のヘッダに付加されて、復号側に送信される。
以上のように、フィルタのon/off(onまたはoff)の制御は、ブロック単位で行うこともできるし、マクロブロック単位で行うこともできる。なお、ブロック単位でon/offを制御することにより、イントラ予測処理による予測精度を向上させることが可能であるが、各ブロックに対するフラグ情報を伝送するのに必要な情報量が増大してしまう。これに対して、マクロブロック単位で制御する場合、予測精度の向上はブロック単位で行うよりも低いが、フラグ情報は各マクロブロックに1つで済むので、フラグによる情報量の増大を少なくすることができる。
なお、上記説明においては、輝度信号の例を説明したが、色差信号に対するイントラ予測にも用いることができる。また、制御するフィルタ処理におけるフィルタ係数については、H.264/AVC方式における{1,2,1}//4という3タップのものに限らず、任意のタップ長の任意の係数や、図1の画像符号化装置51で設定されるフィルタ係数にも適用することができる。
すなわち、フィルタonの場合には、図1の画像符号化装置51で設定されるフィルタ係数によるフィルタ処理が行われるとすることも可能である。
この画像符号化装置451により符号化された圧縮画像を受け、それを復号する画像復号装置について図39を参照して説明する。
[画像復号装置の他の構成例]
図39は、本発明を適用した画像処理装置としての画像復号装置の他の実施の形態の構成を表している。
画像復号装置501は、蓄積バッファ161、可逆復号部162、逆量子化部163、逆直交変換部164、演算部165、デブロックフィルタ166、画面並べ替えバッファ167、D/A変換部168、フレームメモリ169、スイッチ170、イントラ予測部171、動き予測・補償部173、およびスイッチ174を備える点が、図22の画像復号装置151と共通している。
また、画像復号装置501は、隣接画素内挿フィルタ切替部172が、隣接画素内挿フィルタ制御部511に入れ替わっている点が、図22の画像復号装置151と異なる。
すなわち、イントラ予測部171には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が、可逆復号部162から供給される。イントラ予測部171は、情報が示すイントラ予測モードによるイントラ予測を行うことで、予測画像を生成し、生成した予測画像を、スイッチ174に出力する。このとき。イントラ予測に先立ち、イントラ予測部171は、隣接画素内挿フィルタ制御部511からの制御信号に応じて隣接画素値に対してフィルタ処理を行う(あるいは、行わない)。
隣接画素内挿フィルタ制御部511には、画像符号化装置451での符号化に応じて、マクロブロック毎あるいはブロック毎に、on/offフラグ情報が可逆復号部162から供給される。隣接画素内挿フィルタ制御部511は、供給されたon/offフラグ情報に応じて、フィルタ処理を行うか、行わないことを示す制御信号を、イントラ予測部171に供給する。
なお、図34の画像符号化装置451においては、フィルタがonの場合とoffの場合の両方を試し、コスト関数値により、より高い符号化効率を与えると判定された方を選択し、イントラ予測処理が行われる。これに対して、この画像復号装置501においては、符号化されて送られてくるon/offフラグの情報に基づいてフィルタonまたはoffが制御されて、イントラ予測処理が行われる。
[イントラ予測部および隣接画素内挿フィルタ制御部の構成例]
図40は、イントラ予測部および隣接画素内挿フィルタ制御部の詳細な構成例を示すブロック図である。
図40の例の場合、イントラ予測部171は、予測モードバッファ521、予測画像生成部522により構成されている。隣接画素内挿フィルタ制御部511は、フラグバッファ531、および制御信号発生部532により構成されている。
予測モードバッファ521には、可逆復号部162からのイントラ予測モード情報が供給される。予測画像生成部522には、フレームメモリ169からのイントラ予測の対象ブロックの隣接画素値が供給される。図40の場合も、スイッチ170の図示は省略されているが、実際には、隣接画素値は、フレームメモリ169から、スイッチ170を介して予測画像生成部522に供給される。
予測画像生成部522は、予測モードバッファ521からの対象ブロックに対するイントラ予測モード情報を読み出し、対象ブロックについて、読み出したイントラ予測モードのイントラ予測を行い、予測画像を生成する。このイントラ予測に先立ち、予測画像生成部522は、制御信号発生部532からの制御信号に応じて、フレームメモリ169からの隣接画像画素値にフィルタ処理を行う。
フラグバッファ531には、マクロブロック毎またはブロック毎にon/offフラグ情報が可逆復号部162から供給される。制御信号発生部532は、フラグバッファ531から対応するon/offフラグを読み出し、ブロック毎に、フィルタ処理を行うか行わないかを示す制御信号を生成し、生成した制御信号を予測画像生成部522に供給する。
なお、画像復号装置501による処理は、以下に説明する予測処理以外は、図22の画像復号装置151の処理と同様の処理を行うため、その説明は繰り返しになるので省略される。
[予測処理の説明]
次に、図41のフローチャートを参照して、図39の画像復号装置501の予測処理について説明する。なお、この処理は、図24のステップS138の予測処理の他の例である。
予測画像生成部522は、ステップS501において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部162からイントラ予測モード情報が予測モードバッファ521に供給され、予測画像生成部522がそれを読み出す。これに対応して、予測画像生成部522は、ステップS501において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS502に進む。
予測画像生成部522は、ステップS502において、予測モードバッファ521のイントラ予測モード情報を取得する。
また、可逆復号部162からon/offフラグの情報がフラグバッファ531に供給されると、フラグバッファ531は、ステップS503において、on/offフラグを取得し、格納する。
制御信号発生部532は、対象ブロックに対応するon/offフラグを、フラグバッファ531から読み出し、ステップS504において、on/offフラグが1であるか否かを判定する。ステップS504において、on/offフラグが1である、すなわち、フィルタ処理がonであると判定された場合、制御信号発生部532は、予測画像生成部522に、フィルタ処理を行わせるための制御信号を供給する。
この制御信号に対応して、予測画像生成部522は、ステップS505において、フィルタ係数を用いて隣接画素に対してフィルタ処理を施す。そして、ステップS506において、予測画像生成部522は、フィルタ処理を施した隣接画素値を用いて、イントラ予測を行い、予測画像を生成する。
一方、ステップS504において、on/offフラグが1ではない、すなわち、フィルタ処理がoffであると判定された場合、ステップS505のフィルタ処理はスキップされ、処理は、ステップS506に進む。
ステップS506において、予測画像生成部522は、フレームメモリ169からの隣接画像画素値を用いて、イントラ予測を行い、予測画像を生成する。
ステップS506において生成された予測画像は、スイッチ174に供給される。
一方、ステップS501において、イントラ符号化されていないと判定された場合、処理は、ステップS507に進む。
動き予測・補償部173は、ステップS507において、インター動き予測を行う。すなわち、処理対象の画像がインター予測処理される画像である場合、必要な画像がフレームメモリ169から読み出され、スイッチ170を介して動き予測・補償部173に供給される。ステップS508において動き予測・補償部173は、ステップS507で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。生成した予測画像は、スイッチ174に出力される。
以上のように、画像符号化装置451および画像復号装置501においては、イントラ予測に用いられる隣接画素に対するフィルタ処理のonまたはoffを制御し、符号化効率が低下するブロックに対しては、フィルタ処理を行わないようにした。これにより符号化効率を向上させることができる。
なお、上記説明においては、イントラ予測を行う例を説明したが、図32を参照して上述した2次予測におけるイントラ予測にも、フィルタ処理のonまたはoffの制御を適用することができる。
<4.第4の実施の形態>
[画像符号化装置の他の構成例]
図42は、本発明を適用した画像処理装置としての画像符号化装置の他の実施の形態の構成を表している。
画像符号化装置551は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部76、予測画像選択部77、およびレート制御部78を備えている点は、図34の画像符号化装置451と共通している。
また、画像符号化装置551は、隣接画素内挿フィルタ制御部461が除かれている点、並びに、図31の2次予測部361、および隣接画素内挿フィルタ制御部561が追加されている点が、図34の画像符号化装置451と異なる。
すなわち、図42の例においては、イントラ予測部74は、H.264/AVCのイントラ予測を行う。
一方、動き予測・補償部76は、インター処理する画像と参照画像に基づいて、候補となる全てのインター予測モードの動きベクトルを検出し、動きベクトルに基づいて参照画像に補償処理を施し、予測画像を生成する。
動き予測・補償部76は、検出された動きベクトル情報、インター処理する画像の情報(アドレスなど)、およびインター処理する画像と生成された予測画像の差分である1次残差を、2次予測部361に供給する。
動き予測・補償部76は、2次予測部361からの2次残差を比較することで、2次予測における最適なイントラ予測モードを決定する。また、動き予測・補償部76は、2次残差と1次残差を比較することで、2次残差を符号化するか、または1次残差を符号化するかを決定する。なお、これらの処理は、候補となる全てのインター予測モードに対して行われる。
そして、動き予測・補償部76は、候補となる全てのインター予測モードに対してコスト関数値を算出する。このとき、1次残差および2次残差のうち、インター予測モード毎に決定された残差が用いられて、コスト関数値が算出される。動き予測・補償部76は、算出したコスト関数値のうち、最小値を与える予測モードを、最適インター予測モードとして決定する。
動き予測・補償部76は、最適インター予測モードで生成された予測画像(またはインターする画像と2次残差の差分)、およびそのコスト関数値を、予測画像選択部77に供給する。動き予測・補償部76は、予測画像選択部77により最適インター予測モードで生成された予測画像が選択された場合、最適インター予測モードを示す情報を可逆符号化部66に出力する。
このとき、動きベクトル情報、参照フレーム情報、2次予測を行うことを示す2次予測フラグ、2次予測におけるイントラ予測モードの情報、および2次予測におけるon/ofフラグ情報なども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部76からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
2次予測部361は、動き予測・補償部76からの動きベクトル情報とインター処理する画像の情報に基づいて、インター処理する対象の対象ブロックに隣接する対象隣接画素をフレームメモリ72から読み出す。また、2次予測部361は、動きベクトル情報により対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素をフレームメモリ72から読み出す。
2次予測部361は、図32を参照して上述した2次予測処理を行う。2次予測処理とは、1次残差、および対象隣接画素と参照隣接画素の差分の間でイントラ予測を行い、2次差分情報(2次残差)を生成する処理である。
ただし、図42の2次予測部361は、この2次予測に先立ち、隣接画素内挿フィルタ制御部561からの制御信号に応じて、イントラ予測に用いる対象隣接画素と参照隣接画素の差分に対して、フィルタ処理を行う(あるいは行わない)。そして、2次予測部361は、フィルタ処理された(あるいはフィルタ処理なしの)対象隣接画素と参照隣接画素の差分を用いて、2次予測処理を行い、得られた2次差分情報(2次残差)を、動き予測・補償部76に出力する。このとき、2次予測部361は、フィルタ処理を行うこと、または行わないことを示すon/offフラグ情報も、動き予測・補償部76に出力する。
すなわち、2次予測部361は、図35に示したイントラ予測部74を含むように構成されている。
隣接画素内挿フィルタ制御部561は、図34の隣接画素内挿フィルタ制御部461と基本的に同様に構成され、同様の処理を行う。すなわち、隣接画素内挿フィルタ制御部561は、ブロック単位またはマクロブロック単位でフィルタ処理を行うか、行わないかを制御する制御信号を、2次予測部361に供給する。
なお、図42の画像符号化装置551の符号化処理は、以下のイントラ処理と動き予測処理が異なるだけであり、その他の処理は、図34の画像符号化装置451による符号化処理(すなわち、図16の符号化処理)と基本的に同様の処理であるので、その説明は省略する。
すなわち、図42の画像符号化装置551においては、イントラ処理として、H.264/AVC方式におけるイントラ予測が行われる。また、動き予測処理として、動き予測処理の際に、隣接画素内挿フィルタ制御部561からの制御信号に応じてフィルタ処理が制御されて、フィルタ処理された(あるいはフィルタ処理されない)2次差分情報が生成される。そして、1次差分情報と2次差分情報のうち、符号化効率のよいものが選択され、コスト関数値が比較されることにより最適インター予測モードが決定される。
この画像符号化装置551により符号化された圧縮画像を受け、それを復号する画像復号装置について図43を参照して説明する。
[画像復号装置の他の構成例]
図43は、本発明を適用した画像処理装置としての画像復号装置の他の実施の形態の構成を表している。
画像復号装置601は、蓄積バッファ161、可逆復号部162、逆量子化部163、逆直交変換部164、演算部165、デブロックフィルタ166、画面並べ替えバッファ167、D/A変換部168、フレームメモリ169、スイッチ170、イントラ予測部171、動き予測・補償部173、およびスイッチ174を備える点が、図39の画像復号装置501と共通している。
また、画像復号装置601は、隣接画素内挿フィルタ制御部511が除かれている点、並びに、図33の2次予測部411、および隣接画素内挿フィルタ制御部611が追加されている点が、図39の画像復号装置501と異なっている。
すなわち、イントラ予測部171には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部162から供給される。イントラ予測部171は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ174に出力する。
動き予測・補償部173には、ヘッダ情報を復号して得られた情報のうち、予測モード情報、動きベクトル情報、参照フレーム情報などが可逆復号部162から供給される。また、動き予測・補償部173には、対象ブロックに対して2次予測処理が適用されている場合には、2次予測を行うことを示す2次予測フラグと、2次予測におけるイントラ予測モード情報も可逆復号部162から供給される。
動き予測・補償部173は、2次予測処理が適用されていると判定した場合、2次予測部411を制御し、2次予測におけるイントラ予測モード情報が示すイントラ予測モードで、2次予測を行わせる。
動き予測・補償部173は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。すなわち、対象ブロックの予測画像は、参照フレームにおいて、対象ブロックに動きベクトルで対応付けられる参照ブロックの画素値が用いられて生成される。そして、動き予測・補償部173は、生成された予測画像と2次予測部411からの予測差分値を加算して、それをスイッチ174に出力する。
2次予測部411は、フレームメモリ169から読み出される対象隣接画素と参照隣接画素の差分を用いて、2次予測を行う。ただし、図43の2次予測部411は、隣接画素内挿フィルタ制御部611からフィルタ処理を行うことを制御する制御信号を受けた場合、この2次予測に先立ち、対象隣接画素と参照隣接画素の差分に対して、フィルタ処理を行う。そして、2次予測部411は、フィルタ処理された対象隣接画素と参照隣接画素の差分を用いて、2次予測処理を行い、得られた2次差分情報(2次残差)を、動き予測・補償部173に出力する。
なお、隣接画素内挿フィルタ制御部611からフィルタ処理を行わないことを制御する制御信号を受けた場合、2次予測部411は、フィルタ処理を行わず、対象隣接画素と参照隣接画素の差分を用いて、2次予測処理を行う。
すなわち、2次予測部411は、図40に示したイントラ予測部171を含むように構成されている。
隣接画素内挿フィルタ制御部611は、図39の隣接画素内挿フィルタ制御部511と基本的に同様に構成され、基本的に同様の処理を行う。すなわち、隣接画素内挿フィルタ制御部611には、ヘッダ情報を復号して得られた情報のうち、on/offフラグ情報が可逆復号部162から供給される。隣接画素内挿フィルタ制御部611は、on/offフラグ情報に応じて、2次予測部411に隣接画素のフィルタ処理を行わせる、または行わせない制御信号を供給する。
なお、図43の画像復号装置601の復号処理は、以下のイントラ処理と動き予測処理が異なるだけであり、その他の処理は、図39の画像復号装置501による復号処理(すなわち、図24の復号処理)と基本的に同様の処理であるので、その説明は省略する。
すなわち、図43の画像復号装置601においては、イントラ処理として、H.264/AVC方式におけるイントラ予測が行われる。また、動き予測処理として、動き予測処理の際に、隣接画素内挿フィルタ制御部611からの制御信号に応じてフィルタ処理がなされて、2次予測(イントラ予測)が行われ、2次差分情報が生成される。
以上のような2次予測処理におけるイントラ予測にも、フィルタ処理のonまたはoffの制御を適用することができる。
なお、上記説明においては、マクロブロックの大きさが、16×16画素の場合について説明してきたが、本発明は、特許文献3に記載の拡張されたマクロブロックサイズに対しても適用することが可能である。
図44は、拡張されたマクロブロックサイズの例を示す図である。特許文献3では、マクロブロックサイズが32×32画素に拡張されている。
図44の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図44の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図44の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
すなわち、32×32画素のマクロブロックは、図44の上段に示される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画素のブロックでの処理が可能である。
このような階層構造を採用することにより、拡張されたマクロブロックサイズにおいては、16×16画素のブロック以下に関してH.264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
以上のように提案される拡張されたマクロブロックサイズにも、本発明のフィルタ係数の設定、算出、またはフィルタ処理のオンオフの制御を適用することができる。
以上においては、符号化方式としてH.264/AVC方式を用いるようにしたが、本発明はこれに限らず、隣接画素を用いた予測(例えば、イントラ予測や2次予測)を行う、その他の符号化方式/復号方式を適用することができる。
なお、本発明は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図45は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804により相互に接続されている。
バス804には、さらに、入出力インタフェース805が接続されている。入出力インタフェース805には、入力部806、出力部807、記憶部808、通信部809、およびドライブ810が接続されている。
入力部806は、キーボード、マウス、マイクロフォンなどよりなる。出力部807は、ディスプレイ、スピーカなどよりなる。記憶部808は、ハードディスクや不揮発性のメモリなどよりなる。通信部809は、ネットワークインタフェースなどよりなる。ドライブ810は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア811を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部808に記憶されているプログラムを入出力インタフェース805及びバス804を介してRAM803にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア811に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア811をドライブ810に装着することにより、入出力インタフェース805を介して、記憶部808にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部809で受信し、記憶部808にインストールすることができる。その他、プログラムは、ROM802や記憶部808に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置51、351、451、および551や画像復号装置151、401、501、および601は、任意の電子機器に適用することができる。以下にその例について説明する。
図46は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図46に示されるテレビジョン受像機1300は、地上波チューナ1313、ビデオデコーダ1315、映像信号処理回路1318、グラフィック生成回路1319、パネル駆動回路1320、および表示パネル1321を有する。
地上波チューナ1313は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ1315に供給する。ビデオデコーダ1315は、地上波チューナ1313から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路1318に供給する。
映像信号処理回路1318は、ビデオデコーダ1315から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路1319に供給する。
グラフィック生成回路1319は、表示パネル1321に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路1320に供給する。また、グラフィック生成回路1319は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路1320に供給するといった処理も適宜行う。
パネル駆動回路1320は、グラフィック生成回路1319から供給されたデータに基づいて表示パネル1321を駆動し、番組の映像や上述した各種の画面を表示パネル1321に表示させる。
表示パネル1321はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路1320による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機1300は、音声A/D(Analog/Digital)変換回路1314、音声信号処理回路1322、エコーキャンセル/音声合成回路1323、音声増幅回路1324、およびスピーカ1325も有する。
地上波チューナ1313は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ1313は、取得した音声信号を音声A/D変換回路1314に供給する。
音声A/D変換回路1314は、地上波チューナ1313から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路1322に供給する。
音声信号処理回路1322は、音声A/D変換回路1314から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路1323に供給する。
エコーキャンセル/音声合成回路1323は、音声信号処理回路1322から供給された音声データを音声増幅回路1324に供給する。
音声増幅回路1324は、エコーキャンセル/音声合成回路1323から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ1325から出力させる。
さらに、テレビジョン受像機1300は、デジタルチューナ1316およびMPEGデコーダ1317も有する。
デジタルチューナ1316は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ1317に供給する。
MPEGデコーダ1317は、デジタルチューナ1316から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ1317は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路1322に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路1318に供給する。また、MPEGデコーダ1317は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU1332に供給する。
テレビジョン受像機1300は、このように映像パケットをデコードするMPEGデコーダ1317として、上述した画像復号装置151、401、501、または601を用いる。したがって、MPEGデコーダ1317は、画像復号装置151および401の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を切り替えて、隣接画素のフィルタ処理を行う。あるいは、MPEGデコーダ1317は、画像復号装置501および601の場合と同様に、on/offフラグに基づき、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
MPEGデコーダ1317から供給された映像データは、ビデオデコーダ1315から供給された映像データの場合と同様に、映像信号処理回路1318において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路1319において、生成された映像データ等が適宜重畳され、パネル駆動回路1320を介して表示パネル1321に供給され、その画像が表示される。
MPEGデコーダ1317から供給された音声データは、音声A/D変換回路1314から供給された音声データの場合と同様に、音声信号処理回路1322において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路1323を介して音声増幅回路1324に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ1325から出力される。
また、テレビジョン受像機1300は、マイクロホン1326、およびA/D変換回路1327も有する。
A/D変換回路1327は、音声会話用のものとしてテレビジョン受像機1300に設けられるマイクロホン1326により取り込まれたユーザの音声の信号を受信する。A/D変換回路1327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路1323に供給する。
エコーキャンセル/音声合成回路1323は、テレビジョン受像機1300のユーザ(ユーザA)の音声のデータがA/D変換回路1327から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路1323は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1324を介してスピーカ1325より出力させる。
さらに、テレビジョン受像機1300は、音声コーデック1328、内部バス1329、SDRAM(Synchronous Dynamic Random Access Memory)1330、フラッシュメモリ1331、CPU1332、USB(Universal Serial Bus) I/F1333、およびネットワークI/F1334も有する。
A/D変換回路1327は、音声会話用のものとしてテレビジョン受像機1300に設けられるマイクロホン1326により取り込まれたユーザの音声の信号を受信する。A/D変換回路1327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック1328に供給する。
音声コーデック1328は、A/D変換回路1327から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス1329を介してネットワークI/F1334に供給する。
ネットワークI/F1334は、ネットワーク端子1335に装着されたケーブルを介してネットワークに接続される。ネットワークI/F1334は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック1328から供給された音声データを送信する。また、ネットワークI/F1334は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子1335を介して受信し、それを、内部バス1329を介して音声コーデック1328に供給する。
音声コーデック1328は、ネットワークI/F1334から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路1323に供給する。
エコーキャンセル/音声合成回路1323は、音声コーデック1328から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1324を介してスピーカ1325より出力させる。
SDRAM1330は、CPU1332が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ1331は、CPU1332により実行されるプログラムを記憶する。フラッシュメモリ1331に記憶されているプログラムは、テレビジョン受像機1300の起動時などの所定のタイミングでCPU1332により読み出される。フラッシュメモリ1331には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ1331には、CPU1332の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ1331は、例えばCPU1332の制御により、そのMPEG-TSを、内部バス1329を介してMPEGデコーダ1317に供給する。
MPEGデコーダ1317は、デジタルチューナ1316から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機1300は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ1317を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機1300は、リモートコントローラ1351から送信される赤外線信号を受光する受光部1337も有する。
受光部1337は、リモートコントローラ1351からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU1332に出力する。
CPU1332は、フラッシュメモリ1331に記憶されているプログラムを実行し、受光部1337から供給される制御コードなどに応じてテレビジョン受像機1300の全体の動作を制御する。CPU1332とテレビジョン受像機1300の各部は、図示せぬ経路を介して接続されている。
USB I/F1333は、USB端子1336に装着されたUSBケーブルを介して接続される、テレビジョン受像機1300の外部の機器との間でデータの送受信を行う。ネットワークI/F1334は、ネットワーク端子1335に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機1300は、MPEGデコーダ1317として画像復号装置151、401、501、または601を用いることにより、符号化効率を向上することができる。その結果として、テレビジョン受像機1300は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高速に、より高精細な復号画像を得て、表示することができる。
図47は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
図47に示される携帯電話機1400は、各部を統括的に制御するようになされた主制御部1450、電源回路部1451、操作入力制御部1452、画像エンコーダ1453、カメラI/F部1454、LCD制御部1455、画像デコーダ1456、多重分離部1457、記録再生部1462、変復調回路部1458、および音声コーデック1459を有する。これらは、バス1460を介して互いに接続されている。
また、携帯電話機1400は、操作キー1419、CCD(Charge Coupled Devices)カメラ1416、液晶ディスプレイ1418、記憶部1423、送受信回路部1463、アンテナ1414、マイクロホン(マイク)1421、およびスピーカ1417を有する。
電源回路部1451は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機1400を動作可能な状態に起動する。
携帯電話機1400は、CPU、ROMおよびRAM等でなる主制御部1450の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機1400は、マイクロホン(マイク)1421で集音した音声信号を、音声コーデック1459によってデジタル音声データに変換し、これを変復調回路部1458でスペクトラム拡散処理し、送受信回路部1463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1400は、その変換処理により得られた送信用信号を、アンテナ1414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機1400は、アンテナ1414で受信した受信信号を送受信回路部1463で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部1458でスペクトラム逆拡散処理し、音声コーデック1459によってアナログ音声信号に変換する。携帯電話機1400は、その変換して得られたアナログ音声信号をスピーカ1417から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機1400は、操作キー1419の操作によって入力された電子メールのテキストデータを、操作入力制御部1452において受け付ける。携帯電話機1400は、そのテキストデータを主制御部1450において処理し、LCD制御部1455を介して、画像として液晶ディスプレイ1418に表示させる。
また、携帯電話機1400は、主制御部1450において、操作入力制御部1452が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機1400は、その電子メールデータを、変復調回路部1458でスペクトラム拡散処理し、送受信回路部1463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1400は、その変換処理により得られた送信用信号を、アンテナ1414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機1400は、基地局から送信された信号を、アンテナ1414を介して送受信回路部1463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1400は、その受信信号を変復調回路部1458でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機1400は、復元された電子メールデータを、LCD制御部1455を介して液晶ディスプレイ1418に表示する。
なお、携帯電話機1400は、受信した電子メールデータを、記録再生部1462を介して、記憶部1423に記録する(記憶させる)ことも可能である。
この記憶部1423は、書き換え可能な任意の記憶媒体である。記憶部1423は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機1400は、撮像によりCCDカメラ1416で画像データを生成する。CCDカメラ1416は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部1454を介して、画像エンコーダ1453で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
携帯電話機1400は、このような処理を行う画像エンコーダ1453として、上述した画像符号化装置51、351、451、または551を用いる。したがって、画像エンコーダ1453は、画像符号化装置51および351の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を設定して、隣接画素のフィルタ処理を行う。あるいは、画像エンコーダ1453は、画像符号化装置451および551の場合と同様に、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
なお、携帯電話機1400は、このとき同時に、CCDカメラ1416で撮像中にマイクロホン(マイク)1421で集音した音声を、音声コーデック1459においてアナログデジタル変換し、さらに符号化する。
携帯電話機1400は、多重分離部1457において、画像エンコーダ1453から供給された符号化画像データと、音声コーデック1459から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機1400は、その結果得られる多重化データを、変復調回路部1458でスペクトラム拡散処理し、送受信回路部1463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1400は、その変換処理により得られた送信用信号を、アンテナ1414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機1400は、CCDカメラ1416で生成した画像データを、画像エンコーダ1453を介さずに、LCD制御部1455を介して液晶ディスプレイ1418に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機1400は、基地局から送信された信号を、アンテナ1414を介して送受信回路部1463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1400は、その受信信号を変復調回路部1458でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機1400は、多重分離部1457において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機1400は、画像デコーダ1456において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部1455を介して液晶ディスプレイ1418に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ1418に表示される。
携帯電話機1400は、このような処理を行う画像デコーダ1456として、上述した画像復号装置151、401、501、または601を用いる。したがって、画像デコーダ1456は、画像復号装置151および401の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を切り替えて、隣接画素のフィルタ処理を行う。あるいは、画像デコーダ1456は、画像復号装置501および601の場合と同様に、on/offフラグに基づき、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
このとき、携帯電話機1400は、同時に、音声コーデック1459において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ1417より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機1400は、受信した簡易ホームページ等にリンクされたデータを、記録再生部1462を介して、記憶部1423に記録する(記憶させる)ことも可能である。
また、携帯電話機1400は、主制御部1450において、撮像されてCCDカメラ1416で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機1400は、赤外線通信部1481で赤外線により外部の機器と通信することができる。
携帯電話機1400は、画像エンコーダ1453として画像符号化装置51、351、451、または551を用いることにより、例えばCCDカメラ1416において生成された画像データを符号化して生成する符号化データの符号化効率を向上させることができる。結果として、携帯電話機1400は、符号化効率のよい符号化データ(画像データ)を、他の装置に提供することができる。
また、携帯電話機1400は、画像デコーダ1456として画像復号装置151、401、501、または601を用いることにより、精度の高い予測画像を生成することができる。その結果として、携帯電話機1400は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、表示することができる。
なお、以上において、携帯電話機1400が、CCDカメラ1416を用いるように説明したが、このCCDカメラ1416の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機1400は、CCDカメラ1416を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機1400として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機1400と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機1400の場合と同様に、画像符号化装置51、351、451、または551および画像復号装置151、401、501、または601を適用することができる。
図48は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図48に示されるハードディスクレコーダ(HDDレコーダ)1500は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ1500は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ1500は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ1500は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ1560に供給し、モニタ1560の画面にその画像を表示させる。また、ハードディスクレコーダ1500は、モニタ1560のスピーカよりその音声を出力させることができる。
ハードディスクレコーダ1500は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ1560に供給し、モニタ1560の画面にその画像を表示させる。また、ハードディスクレコーダ1500は、モニタ1560のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図48に示されるように、ハードディスクレコーダ1500は、受信部1521、復調部1522、デマルチプレクサ1523、オーディオデコーダ1524、ビデオデコーダ1525、およびレコーダ制御部1526を有する。ハードディスクレコーダ1500は、さらに、EPGデータメモリ1527、プログラムメモリ1528、ワークメモリ1529、ディスプレイコンバータ1530、OSD(On Screen Display)制御部1531、ディスプレイ制御部1532、記録再生部1533、D/Aコンバータ1534、および通信部1535を有する。
また、ディスプレイコンバータ1530は、ビデオエンコーダ1541を有する。記録再生部1533は、エンコーダ1551およびデコーダ1552を有する。
受信部1521は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部1526に出力する。レコーダ制御部1526は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ1528に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部1526は、このとき、ワークメモリ1529を必要に応じて使用する。
通信部1535は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部1535は、レコーダ制御部1526により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部1522は、チューナより供給された信号を、復調し、デマルチプレクサ1523に出力する。デマルチプレクサ1523は、復調部1522より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ1524、ビデオデコーダ1525、またはレコーダ制御部1526に出力する。
オーディオデコーダ1524は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部1533に出力する。ビデオデコーダ1525は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ1530に出力する。レコーダ制御部1526は、入力されたEPGデータをEPGデータメモリ1527に供給し、記憶させる。
ディスプレイコンバータ1530は、ビデオデコーダ1525またはレコーダ制御部1526より供給されたビデオデータを、ビデオエンコーダ1541により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部1533に出力する。また、ディスプレイコンバータ1530は、ビデオデコーダ1525またはレコーダ制御部1526より供給されるビデオデータの画面のサイズを、モニタ1560のサイズに対応するサイズに変換する。ディスプレイコンバータ1530は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ1541によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部1532に出力する。
ディスプレイ制御部1532は、レコーダ制御部1526の制御のもと、OSD(On Screen Display)制御部1531が出力したOSD信号を、ディスプレイコンバータ1530より入力されたビデオ信号に重畳し、モニタ1560のディスプレイに出力し、表示させる。
モニタ1560にはまた、オーディオデコーダ1524が出力したオーディオデータが、D/Aコンバータ1534によりアナログ信号に変換されて供給されている。モニタ1560は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部1533は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部1533は、例えば、オーディオデコーダ1524より供給されるオーディオデータを、エンコーダ1551によりMPEG方式でエンコードする。また、記録再生部1533は、ディスプレイコンバータ1530のビデオエンコーダ1541より供給されるビデオデータを、エンコーダ1551によりMPEG方式でエンコードする。記録再生部1533は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部1533は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部1533は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部1533は、デコーダ1552によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部1533は、復号したオーディオデータをD/A変換し、モニタ1560のスピーカに出力する。また、記録再生部1533は、復号したビデオデータをD/A変換し、モニタ1560のディスプレイに出力する。
レコーダ制御部1526は、受信部1521を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ1527から最新のEPGデータを読み出し、それをOSD制御部1531に供給する。OSD制御部1531は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部1532に出力する。ディスプレイ制御部1532は、OSD制御部1531より入力されたビデオデータをモニタ1560のディスプレイに出力し、表示させる。これにより、モニタ1560のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ1500は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部1535は、レコーダ制御部1526に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部1526に供給する。レコーダ制御部1526は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部1533に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部1526および記録再生部1533が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部1526は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ1530に供給する。ディスプレイコンバータ1530は、ビデオデコーダ1525から供給されるビデオデータと同様に、レコーダ制御部1526から供給されるビデオデータを処理し、ディスプレイ制御部1532を介してモニタ1560に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部1526が、復号したオーディオデータを、D/Aコンバータ1534を介してモニタ1560に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部1526は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ1527に供給する。
以上のようなハードディスクレコーダ1500は、ビデオデコーダ1525、デコーダ1552、およびレコーダ制御部1526に内蔵されるデコーダとして画像復号装置151、401、501、または601を用いる。したがって、ビデオデコーダ1525、デコーダ1552、およびレコーダ制御部1526に内蔵されるデコーダは、画像復号装置151および401の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を切り替えて、隣接画素のフィルタ処理を行う。あるいは、ビデオデコーダ1525、デコーダ1552、およびレコーダ制御部1526に内蔵されるデコーダは、画像復号装置501および601の場合と同様に、on/offフラグに基づき、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
したがって、ハードディスクレコーダ1500は、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ1500は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部1533のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、モニタ1560に表示させることができる。
また、ハードディスクレコーダ1500は、エンコーダ1551として画像符号化装置51、351、451、または551を用いる。したがって、エンコーダ1551は、画像符号化装置51および351の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を設定して、隣接画素のフィルタ処理を行う。あるいは、エンコーダ1551は、画像符号化装置451および551の場合と同様に、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
したがって、ハードディスクレコーダ1500は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ1500は、ハードディスクの記憶領域をより効率よく使用することができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ1500について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ1500の場合と同様に、画像符号化装置51、351、451、および551並びに画像復号装置151、401、501、および601を適用することができる。
図49は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
図49に示されるカメラ1600は、被写体を撮像し、被写体の画像をLCD1616に表示させたり、それを画像データとして、記録メディア1633に記録したりする。
レンズブロック1611は、光(すなわち、被写体の映像)を、CCD/CMOS1612に入射させる。CCD/CMOS1612は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部1613に供給する。
カメラ信号処理部1613は、CCD/CMOS1612から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部1614に供給する。画像信号処理部1614は、コントローラ1621の制御の下、カメラ信号処理部1613から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ1641で例えばMPEG方式により符号化したりする。画像信号処理部1614は、画像信号を符号化して生成した符号化データを、デコーダ1615に供給する。さらに、画像信号処理部1614は、オンスクリーンディスプレイ(OSD)1620において生成された表示用データを取得し、それをデコーダ1615に供給する。
以上の処理において、カメラ信号処理部1613は、バス1617を介して接続されるDRAM(Dynamic Random Access Memory)1618を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM1618に保持させる。
デコーダ1615は、画像信号処理部1614から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD1616に供給する。また、デコーダ1615は、画像信号処理部1614から供給された表示用データをLCD1616に供給する。LCD1616は、デコーダ1615から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ1620は、コントローラ1621の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス1617を介して画像信号処理部1614に出力する。
コントローラ1621は、ユーザが操作部1622を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス1617を介して、画像信号処理部1614、DRAM1618、外部インタフェース1619、オンスクリーンディスプレイ1620、およびメディアドライブ1623等を制御する。FLASH ROM1624には、コントローラ1621が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ1621は、画像信号処理部1614やデコーダ1615に代わって、DRAM1618に記憶されている画像データを符号化したり、DRAM1618に記憶されている符号化データを復号したりすることができる。このとき、コントローラ1621は、画像信号処理部1614やデコーダ1615の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部1614やデコーダ1615が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部1622から画像印刷の開始が指示された場合、コントローラ1621は、DRAM1618から画像データを読み出し、それを、バス1617を介して外部インタフェース1619に接続されるプリンタ1634に供給して印刷させる。
さらに、例えば、操作部1622から画像記録が指示された場合、コントローラ1621は、DRAM1618から符号化データを読み出し、それを、バス1617を介してメディアドライブ1623に装着される記録メディア1633に供給して記憶させる。
記録メディア1633は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア1633は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ1623と記録メディア1633を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース1619は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ1634と接続される。また、外部インタフェース1619には、必要に応じてドライブ1631が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア1632が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM1624にインストールされる。
さらに、外部インタフェース1619は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ1621は、例えば、操作部1622からの指示に従って、DRAM1618から符号化データを読み出し、それを外部インタフェース1619から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ1621は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース1619を介して取得し、それをDRAM1618に保持させたり、画像信号処理部1614に供給したりすることができる。
以上のようなカメラ1600は、デコーダ1615として画像復号装置151、401、501、または601を用いる。したがって、デコーダ1615は、画像復号装置151および401の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を切り替えて、隣接画素のフィルタ処理を行う。あるいは、デコーダ1615は、画像復号装置501および601の場合と同様に、on/offフラグに基づき、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
したがって、カメラ1600は、精度の高い予測画像を生成することができる。その結果として、カメラ1600は、例えば、CCD/CMOS1612において生成された画像データや、DRAM1618または記録メディア1633から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、LCD1616に表示させることができる。
また、カメラ1600は、エンコーダ1641として画像符号化装置51、351、451、または551を用いる。したがって、エンコーダ1641は、画像符号化装置51および351の場合と同様に、イントラ予測に先立ち、量子化パラメータや予測モードに応じてフィルタ係数を設定して、隣接画素のフィルタ処理を行う。あるいは、エンコーダ1641は、画像符号化装置451および551の場合と同様に、イントラ予測に先立って行われる隣接画素のフィルタ処理をする、しないを制御する。これにより、符号化効率を向上することができる。
したがって、カメラ1600は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ1600は、DRAM1618や記録メディア1633の記憶領域をより効率よく使用することができる。
なお、コントローラ1621が行う復号処理に画像復号装置151、401、501、または601の復号方法を適用するようにしてもよい。同様に、コントローラ1621が行う符号化処理に画像符号化装置51、351、451、または551の符号化方法を適用するようにしてもよい。
また、カメラ1600が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、画像符号化装置51、351、451、または551および画像復号装置151、401、501、または601は、上述した装置以外の装置やシステムにも適用可能である。