(57)【要約】【課題】エンコード側で異なった方式のパディング処理を行った場合でも、デコード側でノイズを発生することなく正常にデコードを行うことが可能な画像復号装置を提供する。【解決手段】画像復号装置１００は、カウンタ回路(１２１〜１２３、１２５〜１２７)と、判定回路(１２４、１２８)と、第１の記憶回路(１３１、１３４)と、設定手段(１３２、１３３、１３５及び１３６)とを備える。判定回路は、カウンタ回路で算出したX及びYの出力をX及びYの上限値と比較し、カウントしたX及びYが画面境界の内部か外部かを判定し、外部であればX及びYの上限値に対応した参照画像の画素値をはみ出し部分の画素値とする。設定手段は、第１の記憶回路からの画像サイズを所定の処理領域サイズの倍数に切り上げた値と第１の記憶回路の値とを外部信号に基づいて切り替えてX及びYの上限値として判定回路に設定する。【選択図】図１
2009100041.tif 000002
【特許請求の範囲】
【請求項１】
現在の画像データと過去の参照画像データとの差分データが圧縮されたビットストリームを入力し、復号処理する画像復号装置であって、
画面境界の外側にはみ出す領域を参照画像として用いるため、参照画像読出し用のX座標及びY座標を算出するカウンタ回路と、
前記カウンタ回路で算出したX座標及びY座標の出力をX座標及びY座標の上限値と比較することによって、前記カウント回路で算出したX座標及びY座標が画面境界の内部か外部かを判定し、外部であれば前記X座標及びY座標の上限値に対応した参照画像データの値をはみ出し部分の画素値として決定する判定回路と、
前記ビットストリーム中に含まれる画像サイズを記憶する第１の記憶回路と、
前記第１の記憶回路から出力される画像サイズを入力し、該画像サイズを所定の処理領域サイズの倍数に切り上げた値を生成し、その生成値と前記第１の記憶回路の記憶値とを外部信号に基づいて切り替えて前記X座標及びY座標の上限値として前記判定回路に設定する設定手段と、
を具備したことを特徴とする画像復号装置。
【請求項２】
前記設定手段は、
前記第１の記憶回路から出力される画像サイズを入力し、該画像サイズを所定の処理領域サイズの倍数に切り上げた値を生成して記憶する第２の記憶回路と、
前記第１の記憶回路の記憶値と前記第２の記憶回路の記憶値とを外部信号に基づいて切り替えて、前記X座標及びY座標の上限値として前記判定回路に出力するセレクタ回路と、
を具備したことを特徴とする請求項１に記載の画像復号装置。
【請求項３】
前記設定手段は、
前記第１の記憶回路に記憶された画像サイズを読み出す第１のインタフェース回路と、
前記第１のインタフェース回路にて読み出された前記画像サイズを入力し、該画像サイズを所定の処理領域サイズの倍数に切り上げた値を生成する演算回路と、
前記演算回路から出力可能な演算前の画像サイズ又は演算後の切り上げ値の一方を、外部信号に基づいて前記X座標及びY座標の上限値として読出し可能な第２のインタフェース回路と、
前記第２のインタフェース回路にて前記X座標及びY座標の上限値として読み出された値を、前記判定回路に設定する設定回路と、
を具備したことを特徴とする請求項１に記載の画像復号装置。
【請求項４】
前記設定手段は、
前記第１の記憶回路に記憶された画像サイズを読み出すインタフェース回路と、
前記インタフェース回路にて読み出された前記画像サイズを入力し、該画像サイズを所定の処理領域サイズの倍数に切り上げた値を生成する演算回路と、を具備し、
前記第１の記憶回路の記憶値と前記演算回路の生成値のいずれか一方が外部信号に基づき前記インタフェース回路を用いて前記第１の記憶回路に書き込まれた状態とされ、該第１の記憶回路から前記X座標及びY座標の上限値として前記判定回路に設定されることを特徴とする請求項１に記載の画像復号装置。
【請求項５】
前記外部信号は、
前記ビットストリーム中に含まれるエンコーダ情報を読み出すことによって選択信号として作成され、Ｘ座標及びＹ座標の上限値を切り替えるのに用いられることを特徴とする請求項１乃至４のいずれか１つに記載の画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮された画像データの復号処理において、エンコード側で異なった種類のパディング処理が行われても、デコード側でノイズを発生することなくデコードを行えるようにした画像復号装置に関するものである。
【背景技術】
【０００２】
ISO/IEC 14496 (以下「MPEG-4」と呼ぶ)には、参照画像の一部を予測画素値として用いる際に、画面境界をはみ出す部分を参照画像として用いることが許容されており、その機能は非制限動きベクトル、或いは、画面外動きベクトル(Unrestricted Motion Vector)と呼ばれている。画面境界からはみ出す部分には元々画素値が存在しないため、画面内の画素値を画面外へ外挿する処理が必要でありこの外挿処理のことを「パディング」と呼んでいる。パディング処理についてはMPEG-4の規格書Part2の7.6.1.節に定義されている。
【０００３】
ただし、このパディング処理に関しては、MPEG-4規格の記述にも曖昧な部分があり、国内外に流通している多くのMPEG-4から派生したビデオコーデック(video codec)の実装状態に不統一が生ずる原因となっている。
【０００４】
具体的に述べると、画面サイズが１６の倍数でない場合(有効画像領域の境界とマクロブロック境界とが一致しない場合)、パディング処理で外挿する際に参照するのは、有効画像領域の端の値（ビットストリーム中に含まれている有効画像領域の水平方向画面サイズ(video_object_layer_width)および垂直方向画面サイズ(video_object_layer_height)の値）なのか、マクロブロック境界の端の値(上記の有効画像領域の端の値を１６の倍数に切り上げたもの)なのかという点である。
【０００５】
ISO/IEC 14496-5(Reference software)に含まれるソースコードが「有効画像領域を境界」として処理していることから、MPEG-4規格としては有効画像領域の端を外挿するのが正しいとみなされることが多いものの、そうでない処理系も数多く存在する。処理系によっては、画面の水平方向と垂直方向とで外挿方法が異なるものまで存在するなど、MPEG-4規格の認識不足から実装された方式に依存するものになっていることも多い。
【０００６】
そのため、ビットストリームを作成したエンコーダと、再生するデコーダとでパディング方式が異なると、再生が予期した通りには行われず、画面上にノイズが発生することになる。
【０００７】
例えば、ストリームは、３６０×１５４(水平方向／垂直方向とも１６の倍数でない)サイズのもので、エンコーダはマクロブロック境界をパディングする方式でストリームを生成している場合、マクロブロック境界をパディングする方式を採用したデコーダで再生した結果では、正常な再生が行われ、有効画像領域でパディングする方式のデコーダで再生した結果では、画面の一部が正常に再生できずノイズが発生する。
【０００８】
このようにノイズが発生する条件は以下の２つの条件(1)，(2)が共に成り立った場合である。  
(1)水平方向または垂直方向の画面サイズが１６の倍数でない場合（水平，垂直どちらでも独立して発生し得る）
(2)画面外動きベクトルが使われていて、１６の倍数でない画面右端の外または画面下端の外を参照している場合
なお、画面の左端と上端では画面境界とマクロブロック境界とが一致しているため、ノイズが発生しない。
【０００９】
この現象の発生はノイズが発生するストリームの存在にも起因しており、そのようなストリームであれば常に再現性よく発生する。そして、ノイズが発生した画像が参照画像として再利用されると、画面の端だけでなく中央付近にまでノイズが伝播することもある。
【００１０】
以上述べたように、既存のMPEG-4処理系ではパディング方式として実装した状態で、条件によって画面上に目視可能なノイズが発生する可能性があった。
【００１１】
例えば、特許文献１には、形状情報の符号化によって得られた探索区間情報を用いて、オブジェクトの境界が存在しないブロックの探索を省略したので、パディング処理における画素の探索領域を限定して、演算量を削減することができ、高速処理を実現する動画像復号システムが開示されている。
【００１２】
また、特許文献２には、パターン判定ブロックが、形状信号から、VOP(video object planeの略)外の画素とその一方または両方に位置するVOP境界画素とからなるパターンを抽出し、抽出されたパターン内のVOP外の画素に対して、両側のVOP境界画素の平均値または一方側のVOP境界画素の画像データがメモリに書き込まれる結果、パディング処理を高速に行うことができるパディング演算回路が開示されている。
【００１３】
しかしながら、特許文献１及び２には、エンコーダ側でパディング処理が異なった方式で行われた場合でも、デコーダ側でノイズを発生することなく正常にデコードを行える手段については全く述べられていない。
【特許文献１】特開２００３−２２４８５３号公報
【特許文献２】特開２００１−３０９３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
そこで、本発明は上記の問題に鑑み、エンコード側で異なった方式のパディング処理を行った場合でも、デコード側でノイズを発生することなく正常にデコードを行うことが可能な画像復号装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１５】
本願発明の一態様によれば、現在の画像データと過去の参照画像データとの差分データが圧縮されたビットストリームを入力し、復号処理する画像復号装置であって、画面境界の外側にはみ出す領域を参照画像として用いるため、参照画像読出し用のX座標及びY座標を算出するカウンタ回路と、前記カウンタ回路で算出したX座標及びY座標の出力をX座標及びY座標の上限値と比較することによって、前記カウント回路で算出したX座標及びY座標が画面境界の内部か外部かを判定し、外部であれば前記X座標及びY座標の上限値に対応した参照画像データの値をはみ出し部分の画素値として決定する判定回路と、 前記ビットストリーム中に含まれる画像サイズを記憶する第１の記憶回路と、前記第１の記憶回路から出力される画像サイズを入力し、該画像サイズを所定の処理領域サイズの倍数に切り上げた値を生成し、その生成値と前記第１の記憶回路の記憶値とを外部信号に基づいて切り替えて前記X座標及びY座標の上限値として前記判定回路に設定する設定手段と、を具備したことを特徴とする画像復号装置が提供される。
【発明の効果】
【００１６】
本発明によれば、エンコード側で異なった方式のパディング処理を行った場合でも、デコード側でノイズを発生することなく正常にデコードを行うことが可能な画像復号装置を提供することができる。
【発明を実施するための最良の形態】
【００１７】
発明の実施の形態について図面を参照して説明する。  
図１以降で本発明の実施形態を説明する前に、異なった２つのパディング処理について説明する。
【００１８】
図５は画面サイズが１６の倍数でない場合に起こり得る、異なった２つの方式のパディング処理を説明する図である。  
図５において、(a)は参照画像における有効画像領域(実線部分)、及びマクロブロック境界(右端及び下端の点線部分)を示し、(b)は(a)の参照画像の右端の拡大図を示し、(c)は有効画像領域の端の値を外挿した状態を示し、(d)はマクロブロック境界の端の値を外挿した状態を示している。
【００１９】
○／□／△は画素位置を表している。有効画像領域の端の値を外挿する第１の方式の場合は「○の５」が、マクロブロック境界の端の値を外挿する第２の方式の場合には「□の３」が外側に延長されていることが分かる。なお、図５(b)で、有効画像領域をはみ出した部分でかつマクロブロック境界内にある□の１，２，３の値は有効画像領域内の○の端の値を切り上げることによって得られた値である。  
図５は画面水平方向(以下、Ｘ方向)へのはみ出しのみを表しているが、垂直方向(以下、Ｙ方向)に関しても同様である。
【００２０】
［第１の実施形態］
図１は本発明の第１の実施形態の画像復号装置のブロック図を示している。  
図１において、画像復号装置１００は、MPEG-4形式に基づく動画像圧縮方式で圧縮されたビットストリームの復号を行うものである。
【００２１】
画像復号装置１００は、現在の画像データと過去の参照画像データとの差分データが圧縮符号化されたビットストリームを入力し復号処理する機能と、画面境界をはみ出す部分を参照画像として用いる画面外動きベクトル(Unrestricted Motion Vector)の動き補償機能と、画面境界を有効画像領域の端とするか所定の処理領域(例えばマクロブロック)境界の端とするかを切り替えて２つのパディング方式に対応可能にする機能と、を備えている。
【００２２】
画像復号装置１００は、ストリームメモリ１０１と、メモリインタフェース(mem.I/Fと略記)１０２と、可変長符号復号器（VLDと略記）１０３と、AC/DC予測器(AC/DC pred.と略記)１０４と、逆量子化器(IQと略記)１０５と、逆離散コサイン変換器(IDCTと略記)１０６と、メモリインタフェース(mem.I/Fと略記)１０７と、予測誤差用メモリ１０８と、参照画像用メモリ１０９と、メモリインタフェース(mem.I/Fと略記)１１０と、メモリインタフェース(mem.I/F)と略記１１５と、復号画像用メモリ１１６と、動き補償部（MCと略記）１２０と、水平方向画面サイズレジスタ(vol_widthと略記)１３１と、水平方向画面サイズを１６の倍数に切り上げて保持する１６倍数切上げ水平方向レジスタ(MBX×16と略記)１３２と、Ｘ方向セレクタ回路１３３と、垂直方向画面サイズレジスタ(vol_height)１３４と、垂直方向画面サイズを１６の倍数に切り上げて保持する１６倍数切上げ垂直方向レジスタ(MBY×16と略記)１３５と、Ｙ方向セレクタ回路１３６と、を備えている。
【００２３】
動き補償部１２０は、1/2画素・1/4画素動き補償器(H/Q-pel.と略記)１１１と、前方向／後方向動き補償器(F/Bと略記)１１２と、加算器１１３と、画素値レジスタ１１４と、Ｘ方向カウンタ(X_counterと略記)１２１と、＋１加算器１２２と、ループ回路(loopと略記)１２３と、２つの入力のうち小さい方をＸ方向参照画像メモリ読出し用アドレスとして出力するＸ方向コンパレータ１２４と、Ｙ方向カウンタ(Y_counterと略記)１２５と、＋１加算器１２６と、ループ回路(loopと略記)１２７と、２つの入力のうち小さい方をＹ方向参照画像メモリ読出し用アドレスとして出力するＹ方向コンパレータ１２８と、を備えている。
【００２４】
以上の構成において、現在の画像データと過去の参照画像データとの差分データが圧縮符号化されたビットストリームを入力し復号処理する機能を備えた回路１０１〜１１６はMPEG-4のビデオデコーダに相当する部分である。まず、この回路１０１〜１１６における、MPEG-4ビデオストリームの復号化手順を以下に説明する。
【００２５】
ストリームメモリ１０１に記録されている、圧縮されたMPEG-4ビデオストリームはメモリインタフェース１０２を介して可変長符号復号器１０３で解読され、AC/DC予測器１０４および逆量子化器１０５でAC/DC予測および逆量子化された後に逆離散コサイン変換器１０６にて逆離散コサイン変換され、予測誤差データとしてメモリインタフェース１０７を介して予測誤差用メモリ１０８に保存される。
【００２６】
一方、参照画像用メモリ１０９に記憶した過去の画像をメモリインタフェース１１０を介して参照画像として取り出し、1/2画素・1/4画素動き補償器１１１および前方向／後方向動き補償器１１２にて1/2画素もしくは1/4画素の内挿フィルタ処理および前方向／後方向の平均化処理を施しておき、この結果を予測誤差用メモリ１０８からの予測誤差データと加算器１１３にて加算することによって復号された画素値が画素値レジスタ１１４に保持される。この復号化された画素値がメモリインタフェース１１５を介して復号画像用メモリ１１６に記憶される。
【００２７】
なお、図中のメモリ１０１，１０８，１０９，１１６は、方式や構成を限定したものではなく、SRAMを用途毎に分割して実装したものであっても良いし、１つのDRAMを共有する形(但しメモリインタフェースも修正する必要がある)であっても良い。
【００２８】
次に、画面境界をはみ出す部分を参照画像として用いる画面外動きベクトル(Unrestricted Motion Vector)の動き補償機能を備えた動き補償部１２０における、回路１２１〜１２８の構成及び作用について説明する。  
動き補償部１２０のうち、Ｘ方向カウンタ１２１と、＋１加算器１２２と、Ｘ方向ループ回路１２３と、２つの入力のうち小さい方をＸ方向参照画像メモリ読出し用アドレスとして出力するＸ方向コンパレータ１２４と、Ｙ方向カウンタ１２５と、＋１加算器１２６と、Ｙ方向ループ回路１２７と、２つの入力のうち小さい方をＹ方向参照画像メモリ読出し用アドレスとして出力するＹ方向コンパレータ１２８とは、画面外動きベクトル(Unrestricted Motion Vector)を実現するためのカウンタ回路と判定回路とを構成している。
【００２９】
更に詳しくは、Ｘ方向カウンタ１２１と＋１加算器１２２とＸ方向ループ回路１２３とＹ方向カウンタ１２５と＋１加算器１２６とＹ方向ループ回路１２７とは、カウンタ回路を構成し、Ｘ方向コンパレータ１２４とＹ方向コンパレータ１２８とは、判定回路を構成している。
【００３０】
Ｘ方向カウンタ１２１と＋１加算器１２２とＸ方向ループ回路１２３はＸ方向のカウンタ回路を構成し、Ｘ方向コンパレータ１２４はＸ方向の判定回路を構成し、Ｙ方向カウンタ(Y_counter)１２５と＋１加算器１２６とＹ方向ループ回路(loop)１２７はＹ方向のカウンタ回路を構成し、Ｙ方向コンパレータ１２８はＹ方向の判定回路を構成している。
【００３１】
Ｘ方向及びＹ方向のカウンタ回路は、画面境界の外側にはみ出す領域を参照画像として用いるため、参照画像読出し用のX座標及びY座標を算出する。  
Ｘ方向及びＹ方向の判定回路は、カウンタ回路で算出したX座標及びY座標の出力をX座標及びY座標の上限値と比較することによって、カウント回路で算出したX座標及びY座標が画面境界の内部か外部かを判定し、外部であればX座標及びY座標の上限値に対応した参照画像データの値をはみ出し部分の画素値として決定する。
【００３２】
参照画像を読み込むのために、Ｘ方向カウンタ１２１とＹ方向カウンタ１２５(通常はマクロブロック単位で処理するため１６×１６の２重ループ)が必要であり、Ｘ方向及びＹ方向のカウンタ１２１及び１２５それぞれのカウンタ値とＸ座標及びＹ座標それぞれの上限値とを比較するＸ方向及びＹ方向のコンパレータ１２４及び１２８を備え、Ｘ座標及びＹ座標それぞれについてカウンタ値と上限値とを比較し、それらの小さい方の値をＸ方向及びＹ方向の参照画像読出し用のアドレスとして用いて参照画像用メモリ１０９から参照画像データを読み出すことにより、画面外へアクセスしたときの参照値が自動的に画面境界の境界値(画素値)で外挿される。これについては後に図２及び図４を参照して説明する。
【００３３】
なお、図１では、画面の上限(右端と下端)のみを外挿の対象としている。画面の下限(左端と上端)については、本発明の実施形態と関係ないが、カウンタ値と上限値との小さい方(MIN)を計算しているコンパレータ部分を、カウンタ値と下限値との大きい方(MAX)を計算するコンパレータ部分とすれば、画面の下限(左端と上端)を越えた画面外への外挿を行うことができる。
【００３４】
次に、画面境界を有効画像領域の端とするか所定の処理領域(例えばマクロブロック)境界の端とするかを切り替えて２つのパディング方式に対応可能にする機能を備えた回路１３１〜１３６の構成及び作用について説明する。  
Ｘ方向画面サイズ(有効画像領域のＸ方向の幅)記憶レジスタ(vol_widthと略記)１３１と、Ｘ方向画面サイズを１６の倍数に切り上げて保持する１６倍数切上げＸ方向レジスタ(MBX×16と略記)１３２と、Ｘ方向セレクタ回路１３３と、Ｙ方向画面サイズ(有効画像領域のＹ方向の高さ)記憶レジスタ(vol_heightと略記)１３４と、Ｙ方向画面サイズを１６の倍数に切り上げて保持する１６倍数切上げＹ方向レジスタ(MBY×16と略記)１３５と、Ｙ方向セレクタ回路１３６とは、第１の記憶回路と設定手段とを構成している。
【００３５】
更に詳しくは、Ｘ方向画面サイズ記憶レジスタ１３１とＹ方向画面サイズ記憶レジスタ１３４は第１の記憶回路を構成し、１６倍数切上げＸ方向レジスタ１３２とＸ方向セレクタ回路１３３と１６倍数切上げＹ方向レジスタ１３５とＹ方向セレクタ回路１３６は設定手段を構成している。なお、１６倍数切上げＸ方向レジスタ１３２と１６倍数切上げＹ方向レジスタ１３５は、第２の記憶回路を構成し、Ｘ方向セレクタ回路１３３とＹ方向セレクタ回路１３６は、セレクタ回路を構成している。
【００３６】
第１の記憶回路は、ビットストリーム中に含まれる有効画像領域の画像サイズを記憶する。  
設定手段は、第１の記憶回路から出力される画像サイズを入力し、該画像サイズを所定の処理領域(例えばマクロブロック)サイズの倍数に切り上げた値を生成し、その生成値と第１の記憶回路の記憶値とを外部信号に基づいて切り替えてX座標及びY座標の上限値として判定回路に設定する。
【００３７】
第２の記憶回路は、第１の記憶回路から出力される画像サイズを入力し、該画像サイズを所定の処理領域(例えばマクロブロック)サイズの倍数に切り上げた値を生成して記憶する。  
Ｘ方向及びＹ方向のセレクタ回路は、第１の記憶回路の記憶値と第２の記憶回路の記憶値とを外部信号に基づいて切り替えて、X座標及びY座標の上限値として判定回路に出力する。
【００３８】
Ｘ座標及びＹ座標の上限値は、MPEG-4ビットストリーム中から得ることが可能なものであり、以下の２通りの場合がある。  
(1)有効画像領域のＸ方向画面サイズ(video_object_layer_width)とＹ方向画面サイズ(video_object_layer_height)の値を上限値とする場合（第１のパディング方式に対応）。
【００３９】
(2) (1)の値を１６の倍数に切り上げたものを上限値とする場合（第２のパディング方式に対応）。
【００４０】
ビットストリーム中に含まれる画像サイズの値を上限値としてそのまま利用すれば(1)の方式にな。一方、多くのデコーダでは内部でマクロブロック(ＭＢ)数をカウントしており、そのマクロブロック・カウンタの値から逆算（具体的にはＸ方向及びＹ方向それぞれのマクロブロック数×１６を計算）して上限値として用いると(2)の方式になる。この(1),(2)どちらの値を上限値として、動き補償部１２０の判定回路であるコンパレータに供給するかによって、デコーダでのパディング処理が２つの方式のどちらになるかが決定(設定)される。
【００４１】
そこで、本発明の第１の実施形態では、エンコーダによってエンコードされたストリームデータがいずれのパディング方式であっても、デコーダではエンコード側で設定したパディング方式に対応して２組のＸ座標及びＹ座標の上限値の一組を動き補償部１２０の判定回路に供給することによって、パディング方式の不対応に基づくノイズ発生を無くすことができる。
【００４２】
この第１の実施形態では、２種類のパディング方式それぞれに対応した上限値を算出し、それらをセレクタ回路１３３および１３６を用いて外部からの選択信号で切り替え可能にしている。この選択信号は、外部のホストコントローラ(図示略)から供給されていてもよいし、またユーザによる機器の設定操作で切り替えてもよいし、或いは、機器毎に使用する上限値が異なる場合には、機器毎に個別の値に固定してもよい。また、図１ではX方向とY方向の選択信号は共通になっているが、別々の選択信号にしてもよい。
【００４３】
次に、図２乃至図４を参照して、圧縮された差分画像データを復号する場合に、参照画像用メモリ１０９に記憶された１画面分の参照画像データをマクロブロック(ＭＢ)単位で読み出す動作、及び、画面内の画素値を画面外へ外挿する際の画素値の読出し動作について説明する。ここでは、１画面のＸ方向及びＹ方向のサイズが１６の倍数でない場合、例えば、水平(Ｘ)×垂直(Ｙ)のサイズ(画素数)が７３０×５００である場合について説明する。
【００４４】
図２は参照画像用メモリ１０９内の１画面分の参照画像データ及びその画像データに対して１マクロブロック（１６×１６画素）単位で画像データを読み出す動作を示し、図３は１マクロブロックの画像データの読出しスキャン動作を示している。
【００４５】
例えば、７３０×５００の画面上で１マクロブロック（１６×１６画素）単位の画像データを、画面上の上からマクロブロック単位で順次に１段目を左隅から右隅まで読み出していき、次に２段目を左隅から右隅まで順次に読み出していく場合には、図２の画面の左上部分の或る所に位置するマクロブロックＭＢの先頭位置(ＭＢの左上隅の画素に対応した位置)の開始アドレスが例えば１２０００番地であったとすると、そのすぐ１行下の画素の番地は画面の水平画素数分の７３０だけ番地が増加するので、１２７３０番地である。しかしながら、この１マクロブロック分の画像データを読み出すときは、１画面全体における番地を順次指定して読み出すのではなくて、図３に示すように例えばＹ方向の画素数で上から１７番目(１６画素＋１画素に相当)の先頭画素を含む１マクロブロックにつき、Ｘ方向のアドレスを０〜１５番地としＹ方向のアドレスを０〜１５番地として定め、まずＹをＹ＝１７に固定してＸを１画素ずつ増して０〜１５番地まで画素値を読んでいき、Ｘが１５まで行くとＸを０に戻してＹを１増やし、ここでＹ＝１８に固定したままＸを再び１ずつ増していき１５まで増やす。これをカウンタ回路で繰り返し計算すれば、１６×１６の１マクロブロック内の全ての画素位置は順次アドレスが読めて、このアドレスが参照画像用メモリ１０９へ順次送られそのメモリ１０９から画像データを画素単位で１６×１６だけ順次読み出すことができる。  
以上の読出し動作の説明は、マクロブロックＭＢが１画面内の或る位置に設定された場合であった。
【００４６】
次に、マクロブロックＭＢが画面上のアドレス位置を順次Ｘ方向に移動していき画面の右端からはみ出した状態となった(このはみ出しは、有効画像領域の水平方向画面サイズが１６の倍数でないために生ずる)場合に、画面境界の外側にはみ出す領域を参照画像として用いるために、画面内の画素を画面外へ外挿する読出し動作について図２及び図４を参照して説明する。
【００４７】
図２に示すように、例えばＹ方向の画素数で上から１７番目の先頭画素を含むマクロブロックＭＢに注目して、そのマクロブロックＭＢを画面左端の位置(このときの左端の画素位置を０番地とする)から順次Ｘ方向に移動してアドレスを読み込んでいき、マクロブロックＭＢが画面の右端からはみ出した位置となったときに、Ｙ方向の１７番目の画素行につき画面左端を０番地とすると画面右端の画素位置のアドレス(言い換えればＸ方向の上限値)は７２９番地である。そこで、図４に示すように、Ｘ方向カウンタ回路１２１-1(図１のＸカウンタ１２１，＋１加算器１２２及びループ回路１２３に相当)の行方向の画素位置に対応したカウント値と、画面のＸ方向の行方向アドレス０〜７２９の最大値である７２９とを２つの入力として比較するコンパレータ１２４を設けて、一方の入力であるカウンタ回路１２１-1のカウント値が７２９以下であれば小さい方の値即ちそのカウンタ回路１２１-1のカウント値(０〜７２９までの値)を選択し、一方の入力であるカウンタ回路１２１-1のカウント値が７３０以上(具体的には７３０，７３１，７３２，７３３……と増加していった場合)であれば常に小さい方の値であるもう一方の入力７２９を選択して出力する。従って、コンパレータ１２４の一方の入力であるカウンタ回路１２１-1のカウント値が７３０，７３１，７３２，７３３……と増加していった場合でも、コンパレータ１２４の出力、すなわち、画面外の外挿に必要な読出しアドレスとしては常にコンパレータ１２４のもう一方の入力である７２９，７２９，７２９……が指定されて、Ｘ＝７２９としてメモリインタフェース１１０に供給される。
【００４８】
一方、Ｙ方向のアドレスについても、コンパレータ１２８の一方の入力端にはＹ方向カウンタ１２５のカウント値(０〜４９９までの値)が入力され、もう一方の入力端には画面の列方向アドレス０〜４９９の最大値４９９が入力され、コンパレータ１２８の出力として小さい方の値(カウント値が４９９のときはその値、カウント値が４９９を越えるときは４９９)が出力される。
【００４９】
つまり、図４のコンパレータ１２８の一方の入力であるＹ方向カウンタ回路１２５-1でカウント値が５００，５０１，５０２，５０３…と増加していった場合でも、コンパレータ１２８の出力、すなわち画面外の外挿に必要な読出しアドレスとしては常にコンパレータ１２８のもう一方の入力である４９９，４９９，４９９…が指定されて、Ｙ＝４９９としてインタフェース１１０に供給される。
【００５０】
メモリインタフェース１１０では、アドレス計算するときに下記の式（１）を用いてマクロブロックごとに読出しアドレスを計算する。コンパレータ１２４から出力されるＸの値は０〜７２９であり、コンパレータ１２８から出力されるＹの値は０〜４９９である。先頭(開始)アドレスはマクロブロックＭＢの左上隅の画素のアドレスである。
【００５１】
先頭(開始)アドレス＋Ｙ×７３０＋Ｘ         …（１）
を計算すれば、参照画像用メモリ１０９の１マクロブロック分の参照画像データの読出しアドレスを求めて、マクロブロックごとに参照画像データとして読み出すことができる。しかも、画面境界(画面右端及び下端)をはみ出す部分を参照画像データとして利用する際に、画面内の画素値を画面外へ外挿するパディング処理を行うことができる。
【００５２】
なお、通常のMPEG-4ビットストリームではエンコーダに関する情報はユーザデータ(USER_DATA)と呼ばれる領域に格納されていることが多い。そこで、デコーダ側で、このストリームのユーザデータ領域からエンコーダ情報(パディング方式を示す情報を含む)を取得しそのエンコーダ情報のパディング方式の種類に応じた外部信号としての選択信号(例えば‘1’又は‘0’)を生成してセレクタ回路１３３及び１３６に供給することによって、Ｘ座標及びＹ座標の上限値を切り替えるようにすれば、自動的に最適なパディング方式が選択されノイズの無いデコードが可能になる。
【００５３】
第１の実施形態によれば、エンコード側での２種類のパディング方式が存在するために、エンコーダで異なったパディング方式を採用した場合でも、デコーダではエンコーダ側のパディング方式に対応したデコードを行うことができ、パディング方式の違いに基づくデコード時のノイズ発生を解消することが可能となる。しかも、画面外動きベクトルの動き補償を行うことが可能な画像復号装置を構成し、さらに、例えば、１６倍数切上げＸ方向レジスタ(MBX×16)１３２と、セレクタ回路１３３と、Ｙ方向画面サイズ記憶レジスタ(vol_height)１３４と、１６倍数切上げＹ方向レジスタ(MBY×16)１３５と、セレクタ回路１３６とを従来の復号装置に追加すればよいので、復号装置への付加回路は少なく、回路面積や動作速度への影響は極めて少なくて済む。
【００５４】
［第２の実施形態］
図６は本発明の第２の実施形態の画像復号装置のブロック図を示している。  
図１の第１の実施形態の画像復号装置１００は、Ｘ方向画面サイズ記憶レジスタ(vol_widthと略記)１３１とＹ方向画面サイズ記憶レジスタ(vol_heightと略記)１３４とで構成される第１の記憶回路と、１６倍数切上げＸ方向レジスタ(MBX×16と略記)１３２と１６倍数切上げＹ方向レジスタ(MBY×16と略記)１３５とで構成される第２の記憶回路と、Ｘ方向セレクタ回路１３３とＹ方向セレクタ回路１３６とで構成されるセレクタ回路とを備え、２種類のＸ座標及びＹ座標の上限値を外部からの選択信号に応じて切替え可能とすることによってデコード側でのパディング方式をエンコード側のパディング方式に対応して切替え可能に設定できるものであった。
【００５５】
これに対して、図６の第２の実施形態に示す画像復号装置１００Ａは、Ｘ方向画面サイズ記憶レジスタ(vol_width)１３１とＹ方向画面サイズ記憶レジスタ(vol_height)１３４とで構成される第１の記憶回路と、この第１の記憶回路に記憶されたＸ方向及びＹ方向の画像サイズを読み出す第１のインタフェース回路１４１と、この第１のインタフェース回路１４１にて読み出されたＸ方向及びＹ方向の画像サイズを入力し、該画像サイズをマクロブロックサイズの倍数に切り上げた値を生成する演算回路を含むコントローラ１４２と、このコントローラ１４２内の演算回路から、外部信号に基づいて、演算前の画像サイズ又は演算後の切り上げ値のどちらか一方を、X座標及びY座標の上限値として読出すことが可能な第２のインタフェース回路１４３と、この第２のインタフェース回路１４３にてX座標及びY座標の上限値として読み出された値を、判定回路であるＸ方向及びＹ方向のコンパレータ１２４及び１２８それぞれの一方の入力端に入力する設定回路としてのＸ上限値設定レジスタ１３７及びＹ上限値設定レジスタ１３８とを備え、２種類のX座標及びY座標の上限値を切替え可能とすることによってデコード側でのパディング方式をエンコード側のパディング方式に対応して切替え可能に設定できるものである。それ以外は、図１の第１の実施形態と同様である。
【００５６】
この第２の実施形態では、外部にホストコントローラなどのコントローラ１４２がありソフトウェア制御が可能な場合に、X座標及びY座標の上限値を切替え可能に設定するための設定手段を、第１の実施形態とは異なる構成としたものである。Ｘ方向及びＹ方向画面サイズ記憶レジスタ１３１，１３４を外部のコントローラ１４２から読み出し可能にし、さらにX座標及びY座標の上限値を設定するためのＸ及びＹ上限値設定レジスタ１３７，１３８を別途設けて、それらを外部のコントローラから書き込み可能にしておく。外部のコントローラ１４２は外部信号に基づいてＸ方向及びＹ方向画面サイズの記憶レジスタ１３１，１３４を一度読み出して、２種類のパディング方法のうちどちらのパディング方法を使用するかを決定した上で、Ｘ及びＹ上限値設定レジスタ１３７，１３８に値を書き込む。
【００５７】
第２の実施形態によれば、ソフトウェア的な手法を用いることにより、第１の実施形態に比べてセレクタ２個分だけハードウェア量を削減できる。さらに、上限値として任意の値が設定可能であるため、現状の２種類のパディング方式とは異なるパディング境界(例えば８の倍数に切り上げるなど)を設定するようなストリームが将来出現したとしても対応可能となり、汎用性を備えた画像復号装置を提供できる。
【００５８】
［第３の実施形態］
図７は本発明の第３の実施形態の画像復号装置のブロック図を示している。  
図７の第３の実施形態に示す画像復号装置１００Ｂは、Ｘ方向画面サイズ記憶レジスタ(vol_width)１３１ＡとＹ方向画面サイズ記憶レジスタ(vol_height)１３４Ａとで構成される第１の記憶回路と、この第１の記憶回路に記憶されたＸ方向及びＹ方向画像サイズを読み出すインタフェース回路１５２と、このインタフェース回路１５２にて読み出されたＸ方向及びＹ方向画像サイズを入力し、該画像サイズをマクロブロックサイズの倍数に切り上げた値を生成する演算回路を含むコントローラ１５１とを備え、外部信号に基づいて、第１の記憶回路の記憶値とコントローラ１５１内の演算回路の生成値のいずれか一方がインタフェース回路１５２を用いて第１の記憶回路に書き込まれた状態とされ、X座標及びY座標の上限値として判定回路としてのＸ方向及びＹ方向コンパレータ１２４，１２８に設定されるもので、２種類のＸ及びＹ上限値を切替え可能とすることによってデコード側でのパディング方式をエンコード側のパディング方式に対応して切替え可能に設定できる。それ以外は、図１の第１の実施形態と同様である。
【００５９】
この第３の実施形態では、第２の実施形態をさらに改良したものである。Ｘ方向及びＹ方向画面サイズ(video_object_layer_width/height)の値はMPEG-4の文法上一度読み出してしまえば、その後のデコード動作中においては画面外動きベクトル(Unrestricted Motion Vector)の処理以外には使われない(さらに後段の表示の際に使用される)。よって、Ｘ方向及びＹ方向画面サイズ記憶レジスタ１３１Ａ，１３４Ａを外部のコントローラ１５１からマクロブロックサイズの倍数に切り上げた値に書き換え可能にし、Ｘ及びＹ上限値の設定レジスタと共用することが可能である。この方式においては、Ｘ方向及びＹ方向画面サイズ記憶レジスタ１３１Ａ，１３４Ａに対する、可変長符号復号器１０３からのＸ方向及びＹ方向画面サイズの読み出しと、外部のコントローラ１５１からの切り上げた値の書き込みが競合しないようにする必要がある。
【００６０】
また、処理系によっては、Ｘ方向及びＹ方向画面サイズの読み出しを可変長符号復号器１０３でハードウェア的に行うのではなく、コントローラ１５１からソフトウェア的に行うこともできる。この場合は、図７において可変長符号復号器１０３からＸ方向及びＹ方向画面サイズ記憶レジスタ１３１Ａ，１３４Ａへ引かれている２本の線が不要となり、記憶レジスタに対する読出しと書き込みの競合を心配する必要はない。
【００６１】
第３の実施形態によれば、第１及び第２の実施形態と同様に、デコード側でのパディング方式をエンコード側のパディング方式に応じて切り替えることができ、パディング処理の不対応によるノイズ発生を無くす効果が、より少ないハードウェアで実現可能となる。
【００６２】
尚、第１乃至第３の実施形態における選択信号およびコントローラによる書き込みすべき設定値はビットストリームを生成したエンコーダがどちらのパディング方式を採用しているかにより決定されるべきものである。MPEG-4ビットストリームではエンコーダに関する情報はユーザデータ(USER_DATA)領域に格納されていることが多い。従って、このユーザデータ領域からエンコーダ情報(パディング方式を示す情報を含む)を取得しその情報のパディング内容に応じてＸ及びＹの上限値を決定すれば、ユーザが意識することなく自動的に最適なパディング方式が選択されノイズの無いデコードが可能になる。このパディング方式の自動選択の手法は第１乃至第３の実施形態のどれとも組合せて実行が可能である。また、エンコーダ情報を読み取る領域はビットストリームにおけるユーザデータ領域に限定されるものではない。
【００６３】
図８及び図９は図６及び図７の第２及び第３の実施形態に適用されるインタフェース回路例のブロック図を示している。  
図８はインタフェース回路の一実施例を示している。  
図８において、コントローラ１４２（又は１５１）は、制御用バスを構成する３つのバス（データ線(data)、アドレス線(adr)及びリード／ライト線(R/W)）を介して画像復号装置１００Ａ（又は１００Ｂ）に接続している。画像復号装置１００Ａ（又は１００Ｂ）は可変長符号復号器(VLD)１０３及び動き補償部(MC)１２０を含み、かつ制御用バスと接続するセレクタ１５５やレジスタ１５６を含んでいる。制御用バスはインタフェース回路を構成しており、図６のインタフェース回路１４１，１４３、又は、図７のインタフェース回路１５２に対応するものである。
【００６４】
一方、コントローラ１４２（又は１５１）は、ブリッジ１６１を介してグローバルバスに接続している。グローバルバスには、ＤＲＡＭなどのメモリ１６２が接続している。  
ブリッジ１６１にはローカルメモリ用バスが接続しており、ローカルメモリ用バスにはＤＭＡコントローラ(DMACと略記)１６３及び複数のローカルメモリ１６４が接続している。
【００６５】
図８の構成においては、コントローラ１４２（又は１５１）は、画像復号装置１００Ａ（又は１００Ｂ）専用のコントローラであり、コントローラ１４２（又は１５１）に接続した制御用バスを含むインタフェース回路には、アクセス競合に基づく衝突回避のための制御手段としてのアービトレーション(調停機能)は不要である。
【００６６】
図９はインタフェース回路の他の実施例を示している。  
図９において、グローバルバス上には、コントローラ１４２（又は１５１）、ＤＲＡＭなどのメモリ１７２及びＨＤＤコントローラなどの周辺回路１７３などが接続してる。また、グローバルバスは、ブリッジ１７１を介して画像復号装置１００Ａ（又は１００Ｂ）に接続している。ブリッジ１７１はプロトコルの違いを吸収するものであり、グローバルバスのプロトコルと制御用バスのプロトコルとを変換する機能を備えている。ブリッジ１７１はインタフェース回路を構成しており、図６のインタフェース回路１４１，１４３、又は、図７のインタフェース回路１５２に対応するものである。  
図９の構成では、ブリッジ１７１によるインタフェース回路は、コントローラ１４２（又は１５１）を含む多数のデバイスが接続される汎用のグローバルバスに接続しているので、アクセス競合に基づく衝突回避のための制御手段としてアービトレーション(調停機能)が必要とされる。
【図面の簡単な説明】
【００６７】
【図１】本発明の第１の実施形態の画像復号装置のブロック図。
【図２】参照画像用メモリに記憶された１画面分の参照画像データをマクロブロック(１６×１６画素)単位で読み出す動作、及び、画面内の画素値を画面外へ外挿する際の画素値の読出し動作について説明する図。
【図３】１マクロブロックの画像データの読出しスキャン動作を示す図。
【図４】画面内の画素を画面外へ外挿する読出し動作について説明するためのブロック図。
【図５】画面サイズが１６の倍数でない場合に起こり得る、異なった２つの方式のパディング処理を説明する図。
【図６】本発明の第２の実施形態の画像復号装置のブロック図。
【図７】本発明の第３の実施形態の画像復号装置のブロック図。
【図８】図６及び図７の第２及び第３の実施形態に適用されるインタフェース回路の一実施例のブロック図。
【図９】図６及び図７の第２及び第３の実施形態に適用されるインタフェース回路の他の実施例のブロック図。
【符号の説明】
【００６８】
１０８…予測誤差用メモリ
１０９…参照画像用メモリ
１１６…復号画像用メモリ
１３１…水平方向画面サイズレジスタ(第１の記憶回路)
１３２…１６倍数切上げ水平方向レジスタ(第２の記憶回路)
１３４…垂直方向画面サイズレジスタ(第１の記憶回路)
１３５…１６倍数切上げ垂直方向レジスタ(第２の記憶回路)
１３３…Ｘ方向セレクタ回路
１３６…Ｙ方向セレクタ回路
１２４…Ｘ方向コンパレータ(判定回路)
１２８…Ｙ方向コンパレータ(判定回路)
１２１…Ｘ方向カウンタ
１２５…Ｙ方向カウンタ
【図１】
2009100041.tif 000003
【図２】
2009100041.tif 000004
【図３】
2009100041.tif 000005
【図４】
2009100041.tif 000006
【図５】
2009100041.tif 000007
【図６】
2009100041.tif 000008
【図７】
2009100041.tif 000009
【図８】
2009100041.tif 000010
【図９】
2009100041.tif 000011